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

📄 gsgsgzxm.pas

📁 有需要的同仁载回去慢慢研究
💻 PAS
字号:
unit GSGSGZXM;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Buttons, ComCtrls, Grids, DBGrids,comobj;

type
  TFrmGsGzxmTj = class(TForm)
    GroupBox5: TGroupBox;
    Label5: TLabel;
    Label1: TLabel;
    Label2: TLabel;
    DBGrid2: TDBGrid;
    CbDept: TComboBox;
    DTPDate1: TDateTimePicker;
    DTPDate2: TDateTimePicker;
    BtnAppend: TBitBtn;
    BtnExit: TBitBtn;
    BitBtn1: TBitBtn;
    procedure FormShow(Sender: TObject);
    procedure BtnAppendClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure CbDeptChange(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
  private
    MyBmno : Array of String;
  public
    { Public declarations }
  end;

var
  FrmGsGzxmTj: TFrmGsGzxmTj;

implementation

uses GSMAIN, DGSDM;

{$R *.DFM}

procedure TFrmGsGzxmTj.FormShow(Sender: TObject);
var
  i:integer;
begin
  CbDept.Items.Clear;
  with DM_GSGL do
  begin
    if QryTemp.Active=true then
      QryTemp.Close;
    QryTemp.SQL.Clear;
    QryTemp.SQL.Add('SELECT DISTINCT *');
    QryTemp.SQL.Add('FROM 部门信息');
    QryTemp.SQL.Add('WHERE len(部门编号) = 2');
    QryTemp.Open;
    SetLength(MyBmno,QryTemp.RecordCount);
    i := 0;
    while (not QryTemp.Eof) do
    begin
      MyBmno[i] := QryTemp.FieldByName('部门编号').AsString;
      CbDept.Items.Add(QryTemp.FieldByName('部门名称').AsString+'('+MyBmno[i]+')');
      QryTemp.Next;
      i := i+1;
    end;
  end;
  if (CbDept.Items.Count > 0) Then
    CbDept.ItemIndex := 0;

  DateSeparator := '-';
  DTPDate1.DateTime := Now-7;
  DTPDate2.DateTime := Now;
  CbDeptChange(Sender);
end;

procedure TFrmGsGzxmTj.BtnAppendClick(Sender: TObject);
begin
  if CbDept.Items.Count=0 Then
  begin
    MessageDlg('请先选择部门。',mtError, [mbYes],0);
    exit;
  end;
  with DM_GSGL do
  begin
    if (QryGsGzxmTj.Active = True) Then
      QryGsGzxmTj.Close;
    QryGsGzxmTj.ParamByName('mydepno').AsString := MyBmno[CbDept.ItemIndex]+'%';
    QryGsGzxmTj.ParamByName('mydate1').AsString := FormatDateTime('yyyymmdd',DtpDate1.Date);
    QryGsGzxmTj.ParamByName('mydate2').AsString := FormatDateTime('yyyymmdd',DtpDate2.Date);
    QryGsGzxmTj.Open;
  end;
end;

procedure TFrmGsGzxmTj.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  with DM_GSGL do
  begin
    if QryGzxmByBm.Active=True then
      QryGzxmByBm.Close;
    if QryGsGzxmTj.Active=True then
      QryGsGzxmTj.Close;
    if QryTemp.Active=True then
      QryTemp.Close;
  end;
end;

procedure TFrmGsGzxmTj.CbDeptChange(Sender: TObject);
begin
  with DM_GSGL do
  begin
    if QryGzxmByBm.Active=true then
      QryGzxmByBm.Close;
    QryGzxmByBm.Prepare;
    if CbDept.Items.Count=0 then
      QryGzxmByBm.ParamByName('pbmbh').AsString:='nobm'
    else
      QryGzxmByBm.ParamByName('pbmbh').AsString:=Copy(MyBmno[CbDept.ItemIndex],1,2);
    QryGzxmByBm.Open;
  end;
end;

procedure TFrmGsGzxmTj.BitBtn1Click(Sender: TObject);
var
  i:integer;
  xls :OleVariant;
begin
  if ((DM_GSGL.QryGsGzxmTj.active=false) or (DM_GSGL.QryGsGzxmTj.RecordCount=0)) then
  begin
    MessageDlg('没有数据,输出失败!',mtError, [mbYes],0);
    Exit;
  end;
  xls:=CreateOleObject('Excel.Application');
  xls.WorkBooks.add;
  xls.Visible:=true;
  xls.cells(1,1):=CbDept.Items[CbDept.ItemIndex];
  xls.cells(1,2):='从'+FormatDateTime('yyyymmdd',DtpDate1.Date)+'到'+FormatDateTime('yyyymmdd',DtpDate2.Date);
  xls.cells(2,1):='人员类别';
  xls.cells(2,2):='工作项目';
  xls.cells(2,3):='总工时';
  xls.cells(2,4):='正常上班';
  xls.cells(2,5):='延长加班';
  xls.cells(2,6):='休息日加班';
  xls.cells(2,7):='节日加班';
  i:=3;
  with DM_GSGL do
  begin
    QryGsGzxmTj.First;
    while not QryGsGzxmTj.Eof do
    begin
      xls.cells(i,1):=QryGsGzxmTj.Fieldbyname('人员类别').asstring;
      xls.cells(i,2):=QryGsGzxmTj.Fieldbyname('工作项目').asstring;
      xls.cells(i,3):=QryGsGzxmTj.Fieldbyname('总工时').asstring;
      xls.cells(i,4):=QryGsGzxmTj.Fieldbyname('正常上班').asstring;
      xls.cells(i,5):=QryGsGzxmTj.Fieldbyname('延长加班').asstring;
      xls.cells(i,6):=QryGsGzxmTj.Fieldbyname('休息日加班').asstring;
      xls.cells(i,7):=QryGsGzxmTj.Fieldbyname('节日加班').asstring;
      i:=i+1;
      QryGsGzxmTj.Next;
    end;
  end;
  i:=i+1;
end;


end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -