⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tcourserewardunit.pas

📁 DELPHI计算机科学系教务管理系统,带论文设计,不错的参考
💻 PAS
📖 第 1 页 / 共 2 页
字号:
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 + -