📄 tcourserewardunit.pas
字号:
unit TCourseRewardUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, Grids, DBGrids, ComObj,DateUtils,Buttons, ExtCtrls,
DB, ADODB;
type
TTCourseRewardForm = class(TForm)
Panel3: TPanel;
Label18: TLabel;
Label19: TLabel;
Label20: TLabel;
Label22: TLabel;
btnFind: TBitBtn;
btnReport: TButton;
Button1: TButton;
ComboBox1: TComboBox;
cbmonth: TComboBox;
edtyear: TEdit;
ComboBox3: TComboBox;
Panel1: TPanel;
BitBtn4: TBitBtn;
BitBtn5: TBitBtn;
BitBtn6: TBitBtn;
BitBtn7: TBitBtn;
Panel4: TPanel;
DBGrid1: TDBGrid;
ADOQuery1: TADOQuery;
DataSource1: TDataSource;
Panel2: TPanel;
Label15: TLabel;
Label2: TLabel;
Label6: TLabel;
Label7: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
edttrmemo: TEdit;
edttrstandard: TEdit;
edttremuneration: TEdit;
edttrtaxrate: TEdit;
edttrtax: TEdit;
edttrwages: TEdit;
DtrDTP: TDateTimePicker;
Panel5: TPanel;
Label3: TLabel;
edttcname: TEdit;
Label17: TLabel;
cbtcout: TCheckBox;
Label4: TLabel;
edttcpost: TEdit;
Label5: TLabel;
edttcdepartment: TEdit;
edttclessoncount: TEdit;
Label8: TLabel;
Label16: TLabel;
edttrtime: TEdit;
ADOQuery2: TADOQuery;
BitBtn3: TBitBtn;
BitBtn2: TBitBtn;
procedure Button1Click(Sender: TObject);
procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormShow(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure BitBtn5Click(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure BitBtn7Click(Sender: TObject);
procedure BitBtn6Click(Sender: TObject);
procedure ADOQuery1AfterScroll(DataSet: TDataSet);
procedure btnFindClick(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure btnReportClick(Sender: TObject);
private
procedure GridMouseWheel(Sender: TObject; Shift: TShiftState;
WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
procedure ControlTheEnablePro(isSaved: Boolean);//控制按钮面板的Enable属性
function GetUno: string;
//***********************************************************
procedure CopyDbDataToExcel(Args: array of const); // DbDataToExcel
{ Private declarations }
public
{ Public declarations }
end;
TControlAccess = class(TControl);
var
TCourseRewardForm: TTCourseRewardForm;
trmonth:string;
flag:integer;
temptrno,temptcno,temptcno2:string;
count1,count2:integer;
implementation
uses FAFANGUnit, DataModul, public_unit,TCourseRewardFormUnit;
{$R *.dfm}
procedure TTCourseRewardForm.Button1Click(Sender: TObject);
begin
fafangForm.ShowModal;
CopyDbDataToExcel([DBGrid1]);
end;
procedure TTCourseRewardForm.ControlTheEnablePro(isSaved: Boolean);
begin
if isSaved = true then
begin
panel4.Enabled:=true; Panel2.Enabled:=false;
panel5.Enabled:=false;
BitBtn3.Enabled:=true; BitBtn2.Enabled:=true;
BitBtn4.Enabled:=true; BitBtn7.Enabled:=true;
BitBtn5.Enabled:=false; BitBtn6.Enabled:=false;
cbtcout.Enabled:=false;
edttcname.Enabled:=false; edttclessoncount.Enabled:=false;
DtrDTP.Enabled:=false;
edttcpost.Enabled:=false; edttcdepartment.Enabled:=false;
edttrtime.Enabled:=false; edttrstandard.Enabled:=false;
edttrmemo.Enabled:=false;
edttrwages.Enabled:=false;
edttrtaxrate.Enabled:=false; edttremuneration.Enabled:=false;
edttrtax.Enabled:=false; edttrtaxrate.Enabled:=false;
//********************************************************
end
else
begin
panel4.Enabled:=false; Panel2.Enabled:=true;
BitBtn3.Enabled:=false; BitBtn2.Enabled:=false;
BitBtn4.Enabled:=false; BitBtn7.Enabled:=false;
BitBtn5.Enabled:=true; BitBtn6.Enabled:=true;
DtrDTP.Enabled:=true;
edttrstandard.Enabled:=true;
edttrmemo.Enabled:=true;
edttrwages.Enabled:=true;
edttrtaxrate.Enabled:=true; edttremuneration.Enabled:=true;
edttrtax.Enabled:=true; edttrtaxrate.Enabled:=true;
//********************************************************
end;
end;
procedure TTCourseRewardForm.CopyDbDataToExcel(Args: array of const);
var
iCount, jCount: Integer;
XLApp: Variant;
Sheet: Variant;
I: Integer;
qzw1: Variant;
term,year:string;
tmonth :integer;
begin
begin
Screen.Cursor := crHourGlass;
if not VarIsEmpty(XLApp) then
begin
XLApp.DisplayAlerts := False;
XLApp.Quit;
VarClear(XLApp);
end;
try
XLApp := CreateOleObject('Excel.Application');
except
Screen.Cursor := crDefault;
Exit;
end;
XLApp.WorkBooks.Add;
XLApp.SheetsInNewWorkbook := High(Args) + 1;
for I := Low(Args) to High(Args) do
begin
XLApp.WorkBooks[1].WorkSheets[I+1].Name :='课酬发放表';
Sheet := XLApp.Workbooks[1].WorkSheets['课酬发放表'];
if not TDBGrid(Args[I].VObject).DataSource.DataSet.Active then
begin
Screen.Cursor := crDefault;
Exit;
end;
TDBGrid(Args[I].VObject).DataSource.DataSet.first;
for iCount := 0 to TDBGrid(Args[I].VObject).Columns.Count - 1 do
Sheet.Cells[4, iCount + 1] :=TDBGrid(Args[I].VObject).Columns.Items[iCount].Title.Caption;
jCount := 4;
while not TDBGrid(Args[I].VObject).DataSource.DataSet.Eof do
begin
for iCount := 0 to TDBGrid(Args[I].VObject).Columns.Count - 1 do
Sheet.Cells[jCount + 1, iCount + 1] := TDBGrid(Args[I].VObject).Columns.Items[iCount].Field.AsString;
Inc(jCount);
TDBGrid(Args[I].VObject).DataSource.DataSet.Next;
end;
XLApp.Cells[jCount + 2, 1].Value :=' 经办人:'+fafangForm.edttrjbren.Text +' 审核人:'+fafangForm.edttrshren.Text +' 部门负责人签字:'+ fafangForm.edttrfzren.Text ;
// 控制表头
//*********************************************
//合并单元格 根据DBgrid的 记录数来 决定 单元格第二个列 值
qzw1:=Sheet.Range['A1','q1'];
qzw1.Merge;
// 更改 Excel 标题栏:
if adoquery1.FieldByName('tbool').AsString='是' then
XLApp.Caption := ' 外聘教师课酬表'
else
if adoquery1.FieldByName('tbool').AsString='否' then
XLApp.Caption := ' 课酬表';
year:=copy(adoquery1.FieldByName('tctime').AsString,1,4);
tmonth:=monthof(strtodate(adoquery1.FieldByName('tctime').AsString));
if (1< tmonth) and ( tmonth <9 ) then
begin
if adoquery1.FieldByName('tbool').AsString='是' then
begin
term:= '第二学期';
XLApp.Cells[1,1].Value := ' '+adoquery1.FieldByName('tcdepartment').AsString + ' 教师课酬发放表 '+inttostr(strtoint(year)-1)+' 至 '+year+' 学年'+term+' 外聘教师课酬表';
end
else
if adoquery1.FieldByName('tbool').AsString='否' then
begin
term:= '第二学期';
XLApp.Cells[1,1].Value := ' '+adoquery1.FieldByName('tcdepartment').AsString + ' 教师课酬发放表 '+inttostr(strtoint(year)-1)+' 至 '+year+' 学年'+term+' 课酬表';
end;
end
else
begin
if adoquery1.FieldByName('tbool').AsString='是' then
begin
term:= '第一学期';
XLApp.Cells[1,1].Value := ' '+adoquery1.FieldByName('tcdepartment').AsString + ' 教师课酬发放表 '+year+' 至 '+inttostr(strtoint(year)+1)+' 学年'+term+' 外聘教师课酬表';
end
else
if adoquery1.FieldByName('tbool').AsString='否' then
begin
term:= '第一学期';
XLApp.Cells[1,1].Value := ' '+adoquery1.FieldByName('tcdepartment').AsString + ' 教师课酬发放表 '+year+' 至 '+inttostr(strtoint(year)+1)+' 学年'+term+' 课酬表';
end;
end;
//设置指定列的名称,以第2列为例:
XLApp.Cells[2,1].Value :='月份:';
XLApp.Cells[2,2].Value := tmonth;
XLApp.Cells[2,3].Value :=' 月';
XLApp.Cells[2,12].Value := '发放日期';
XLApp.Cells[2,13].Value :=datetostr(fafangForm.DateTimePicker1.Date);
// XLApp.ActiveSheet.Rows[2].Font.Bold := True;
XLApp.ActiveSheet.Rows[4].Font.Bold := True;
XLApp.ActiveSheet.Rows[2].Font.size := 15;
//设置第一行字体属性:
XLApp.ActiveSheet.Rows[1].Font.Name := '隶书';
XLApp.ActiveSheet.Rows[1].Font.Color := clblack;
XLApp.ActiveSheet.Rows[1].Font.Bold := True;
XLApp.ActiveSheet.Rows[1].Font.size := 20;
//设置指定行的高度(单位:磅)(1磅=0.035厘米),以第1行为例:
XLApp.ActiveSheet.Rows[1].RowHeight := 1/0.035; // 1厘米
//设置指定列的宽度(单位:字符个数),以第一列为例:
//XLApp.ActiveSheet.Columns[1].ColumnsWidth := 10;
//***************************************************************
XlApp.Visible := True;
end;
Screen.Cursor := crDefault;
end;
end;
function TTCourseRewardForm.GetUno: string;
var
UnoQry: TADOQuery;
id: string;
begin
UnoQry := TADOQuery.Create(self);
with Unoqry do
begin
Connection := dm.ADOConnection1;
sql.Text := 'select max(trno) as id from TCourseReward';
Open;
id := fieldbyName('id').AsString;
if id='' then
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -