📄 gsgsgzxm.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 + -