📄 gztj.pas
字号:
unit gztj;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, DBCtrls, ComCtrls, ExtCtrls, Db, Grids, DBGrids, Series,
TeEngine, TeeProcs, Chart;
type
Tgztjb = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
Panel1: TPanel;
Label1: TLabel;
Edit1: TEdit;
UpDown1: TUpDown;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Edit2: TEdit;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Label5: TLabel;
Edit3: TEdit;
Label6: TLabel;
Edit4: TEdit;
DBGrid1: TDBGrid;
DataSource1: TDataSource;
DataSource2: TDataSource;
DataSource3: TDataSource;
ComboBox1: TComboBox;
Label7: TLabel;
Button7: TButton;
DBGrid2: TDBGrid;
TabSheet3: TTabSheet;
Panel2: TPanel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Edit5: TEdit;
UpDown2: TUpDown;
Edit6: TEdit;
Button9: TButton;
Button10: TButton;
Button11: TButton;
ComboBox3: TComboBox;
DBListBox2: TDBListBox;
DBListBox1: TDBListBox;
Label15: TLabel;
Label16: TLabel;
Chart1: TChart;
Series1: TAreaSeries;
Series2: TFastLineSeries;
Series3: TPieSeries;
DBGrid4: TDBGrid;
Panel3: TPanel;
Label17: TLabel;
Label18: TLabel;
Label20: TLabel;
Label23: TLabel;
Edit9: TEdit;
UpDown3: TUpDown;
Edit10: TEdit;
Button1: TButton;
Button5: TButton;
Button6: TButton;
Button12: TButton;
ComboBox5: TComboBox;
DataSource4: TDataSource;
Button8: TButton;
Edit7: TEdit;
Edit8: TEdit;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
RadioButton3: TRadioButton;
Edit11: TEdit;
Edit12: TEdit;
Edit13: TEdit;
treeview1: TTreeView;
TreeView2: TTreeView;
dbgrid7: TDBGrid;
procedure Edit3KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Edit8KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure DBGrid3DblClick(Sender: TObject);
procedure DBGrid2DblClick(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure ComboBox5DropDown(Sender: TObject);
procedure ComboBox1DropDown(Sender: TObject);
procedure ComboBox7DropDown(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure Button11Click(Sender: TObject);
procedure Edit7KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure RadioButton1Click(Sender: TObject);
procedure RadioButton2Click(Sender: TObject);
procedure RadioButton3Click(Sender: TObject);
procedure Edit6Click(Sender: TObject);
procedure ComboBox3DropDown(Sender: TObject);
procedure ComboBox4DropDown(Sender: TObject);
procedure DBGrid5DblClick(Sender: TObject);
procedure dbgrid7DblClick(Sender: TObject);
procedure treeview1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Edit11Enter(Sender: TObject);
procedure Edit2Enter(Sender: TObject);
procedure Edit11Exit(Sender: TObject);
procedure Edit2Exit(Sender: TObject);
procedure TreeView2KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Edit12Enter(Sender: TObject);
procedure Edit12Exit(Sender: TObject);
procedure DBGrid2DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
procedure dbgrid7KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure DBGrid2KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Edit13Enter(Sender: TObject);
procedure Edit13Exit(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
i_key13:boolean;
end;
var
gztjb: Tgztjb;
implementation
uses datamodule, jggztjreport, bmgzreport;
{$R *.DFM}
procedure Tgztjb.ComboBox5DropDown(Sender: TObject);
var
ggjsstr:string;
begin
combobox5.Clear;
ggjsstr:='select a_gzcm from ggjs where extract(year from a_date)='+edit1.text;
ggjsstr:=ggjsstr+' group by a_gzcm';
with datamodule1.ggjss do
begin
close;
sql.clear;
sql.add(ggjsstr);
prepare;
open
end;
while not datamodule1.ggjss.Eof do
begin
if datamodule1.ggjss.FieldByName('a_gzcm').asstring<>'' then
combobox5.Items.Add(datamodule1.ggjss.fieldbyname('a_gzcm').asstring);
datamodule1.ggjss.next;
end;
end;
procedure Tgztjb.Edit3KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
yggbstr:string;
begin
if inttostr(key)='13' then
begin
yggbstr:='select *from yggb where a_number like ';
yggbstr:=yggbstr+''''+'%'+edit3.text+'%'+''''+' or a_name like ';
yggbstr:=yggbstr+''''+'%'+edit4.text+'%'+'''';
with datamodule1.yggb do
begin
close;
sql.clear;
sql.add(yggbstr);
prepare;
open;
end;
if datamodule1.yggb.Eof then
showmessage('查无此人')
else
dbgrid2.visible:=true;
end;
end;
procedure Tgztjb.Edit8KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
yggbstr:string;
begin
if inttostr(key)='13' then
begin
yggbstr:='select *from yggb where a_number like ';
yggbstr:=yggbstr+''''+'%'+edit3.text+'%'+''''+' or a_name like ';
yggbstr:=yggbstr+''''+'%'+edit4.text+'%'+'''';
with datamodule1.yggb do
begin
close;
sql.clear;
sql.add(yggbstr);
prepare;
open;
end;
if datamodule1.yggb.Eof then
showmessage('查无此人')
else
dbgrid7.visible:=true;
end;
end;
procedure Tgztjb.DBGrid3DblClick(Sender: TObject);
begin
edit11.text:=datamodule1.rsbm.fieldbyname('a_bm').asstring;
edit2.text:=datamodule1.rsbm.fieldbyname('a_bz').asstring;
end;
procedure Tgztjb.DBGrid2DblClick(Sender: TObject);
begin
edit11.text:=datamodule1.yggb.fieldbyname('a_bm').asstring;
edit2.text:=datamodule1.yggb.fieldbyname('a_bz').asstring;
edit3.text:=datamodule1.yggb.fieldbyname('a_number').asstring;
edit4.text:=datamodule1.yggb.fieldbyname('a_name').asstring;
dbgrid2.visible:=false;
end;
procedure Tgztjb.Button1Click(Sender: TObject);
var
gztjstr,ggjsstr,gzgnstr:string;
i_month:integer;
begin
ggjsstr:='select *from ggjs where a_gzcm='+''''+combobox1.text+'''';
if combobox5.text='' then
showmessage('请先选择要统计的工资项目')
else
begin
if edit12.text<>'' then
begin
gzgnstr:='select a_bm,a_bz,a_number,a_name from gzgn where extract(year from a_date)='+edit9.text;
gzgnstr:=gzgnstr+' and a_bm='+''''+edit12.text+''''+' and a_bz='+''''+edit10.text+'''';
gzgnstr:=gzgnstr+' group by a_bm,a_bz,a_number,a_name';
end
else
begin
gzgnstr:='select a_bm,a_bz,a_number,a_name from gzgn where extract(year from a_date)='+edit9.text;
//gzgnstr:=gzgnstr+' and a_bm='+''''+combobox2.text+''''+' and a_bz='+''''+edit2.text+'''';
gzgnstr:=gzgnstr+' group by a_bm,a_bz,a_number,a_name';
end;
with datamodule1.gzgns do //查哪几条要的记录
begin
close;
sql.clear;
sql.add(gzgnstr);
prepare;
open
end;
if datamodule1.gztj.recordcount>0 then
begin
datamodule1.gztj.close;
datamodule1.gztj.open;
while not datamodule1.gztj.eof do
begin
datamodule1.gztj.delete;
datamodule1.gztj.next;
end;
end;
if datamodule1.gztj.recordcount>0 then
begin
datamodule1.gztj.First;
datamodule1.gztj.Delete;
end;
while not datamodule1.gzgns.eof do
begin
datamodule1.gztj.append;
datamodule1.gztj.fieldbyname('a_bm').asstring:=datamodule1.gzgns.fieldbyname('a_bm').asstring;
datamodule1.gztj.fieldbyname('a_bz').asstring:=datamodule1.gzgns.fieldbyname('a_bz').asstring;
datamodule1.gztj.fieldbyname('a_name').asstring:=datamodule1.gzgns.fieldbyname('a_name').asstring;
datamodule1.gztj.fieldbyname('a_number').asstring:=datamodule1.gzgns.fieldbyname('a_number').asstring;
i_month:=1;
while i_month<=12 do
begin
ggjsstr:='select *from ggjs where extract(year from a_date)='+edit9.text;
ggjsstr:=ggjsstr+' and extract(month from a_date)='+inttostr(i_month);
ggjsstr:=ggjsstr+' and a_gzcm='+''''+combobox5.text+'''';
with datamodule1.ggjss do
begin
close;
sql.clear;
sql.add(ggjsstr);
prepare;
open;
end;
gzgnstr:='select *from gzgn where extract(year from a_date)='+edit9.text;
gzgnstr:=gzgnstr+' and extract(month from a_date)='+inttostr(i_month);
gzgnstr:=gzgnstr+' and a_number='+''''+datamodule1.gzgns.fieldbyname('a_number').asstring+'''';
with datamodule1.gzgnss do
begin
close;
sql.Clear;
sql.Add(gzgnstr);
prepare;
open;
end;
if datamodule1.ggjss.Eof then//没有此工资项目
begin
datamodule1.gztj.fieldbyname('a_mon'+inttostr(i_month)).asfloat:=0.00;
end
else
begin
datamodule1.gztj.fieldbyname('a_mon'+inttostr(i_month)).asfloat:=datamodule1.gzgnss.fieldbyname(datamodule1.ggjss.fieldbyname('a_smdm').asstring).asfloat;
end;
i_month:=i_month+1;
end;
datamodule1.gztj.post;
datamodule1.gzgns.Next;
end; //while
gztjstr:='select sum(a_mon1) as a_mon1,sum(a_mon2) as a_mon2,sum(a_mon3) as a_mon3,sum(a_mon4) as a_mon4,sum(a_mon5) as a_mon5,sum(a_mon6) as a_mon6,';
gztjstr:=gztjstr+'sum(a_mon7) as a_mon7,sum(a_mon8) as a_mon8,sum(a_mon9) as a_mon9,sum(a_mon10) as a_mon10,sum(a_mon11) as a_mon11,sum(a_mon12) as a_mon12,';
gztjstr:=gztjstr+'a_bm,a_bz from gztj group by a_bm,a_bz';
with datamodule1.gztjs do
begin
close;
sql.clear;
sql.add(gztjstr);
prepare;
open;
end;
datasource4.DataSet.close;
datasource4.dataset.open;
end;//else
end;
procedure Tgztjb.Button5Click(Sender: TObject);
var
gztjstr,ggjsstr,gzgnstr:string;
i_month:integer;
begin
ggjsstr:='select *from ggjs where a_gzcm='+''''+combobox1.text+'''';
if combobox5.text='' then
showmessage('请先选择要统计的工资项目')
else
begin
if edit12.text<>'' then
begin
gzgnstr:='select a_bm,a_bz,a_number,a_name from gzgn where extract(year from a_date)='+edit9.text;
gzgnstr:=gzgnstr+' and a_bm='+''''+edit12.text+''''+' and a_bz='+''''+edit10.text+'''';
gzgnstr:=gzgnstr+' group by a_bm,a_bz,a_number,a_name';
end
else
begin
gzgnstr:='select a_bm,a_bz,a_number,a_name from gzgn where extract(year from a_date)='+edit9.text;
//gzgnstr:=gzgnstr+' and a_bm='+''''+combobox2.text+''''+' and a_bz='+''''+edit2.text+'''';
gzgnstr:=gzgnstr+' group by a_bm,a_bz,a_number,a_name';
end;
with datamodule1.gzgns do //查哪几条要的记录
begin
close;
sql.clear;
sql.add(gzgnstr);
prepare;
open
end;
if datamodule1.gztj.recordcount>0 then
begin
datamodule1.gztj.close;
datamodule1.gztj.open;
while not datamodule1.gztj.eof do
begin
datamodule1.gztj.delete;
datamodule1.gztj.next;
end;
end;
if datamodule1.gztj.recordcount>0 then
begin
datamodule1.gztj.First;
datamodule1.gztj.Delete;
end;
while not datamodule1.gzgns.eof do
begin
datamodule1.gztj.append;
datamodule1.gztj.fieldbyname('a_bm').asstring:=datamodule1.gzgns.fieldbyname('a_bm').asstring;
datamodule1.gztj.fieldbyname('a_bz').asstring:=datamodule1.gzgns.fieldbyname('a_bz').asstring;
datamodule1.gztj.fieldbyname('a_name').asstring:=datamodule1.gzgns.fieldbyname('a_name').asstring;
datamodule1.gztj.fieldbyname('a_number').asstring:=datamodule1.gzgns.fieldbyname('a_number').asstring;
i_month:=1;
while i_month<=12 do
begin
ggjsstr:='select *from ggjs where extract(year from a_date)='+edit9.text;
ggjsstr:=ggjsstr+' and extract(month from a_date)='+inttostr(i_month);
ggjsstr:=ggjsstr+' and a_gzcm='+''''+combobox5.text+'''';
with datamodule1.ggjss do
begin
close;
sql.clear;
sql.add(ggjsstr);
prepare;
open;
end;
gzgnstr:='select *from gzgn where extract(year from a_date)='+edit9.text;
gzgnstr:=gzgnstr+' and extract(month from a_date)='+inttostr(i_month);
gzgnstr:=gzgnstr+' and a_number='+''''+datamodule1.gzgns.fieldbyname('a_number').asstring+'''';
with datamodule1.gzgnss do
begin
close;
sql.Clear;
sql.Add(gzgnstr);
prepare;
open;
end;
if datamodule1.ggjss.Eof then//没有此工资项目
begin
datamodule1.gztj.fieldbyname('a_mon'+inttostr(i_month)).asfloat:=0.00;
end
else
begin
datamodule1.gztj.fieldbyname('a_mon'+inttostr(i_month)).asfloat:=datamodule1.gzgnss.fieldbyname(datamodule1.ggjss.fieldbyname('a_smdm').asstring).asfloat;
end;
i_month:=i_month+1;
end;
datamodule1.gztj.post;
datamodule1.gzgns.Next;
end; //while
gztjstr:='select sum(a_mon1) as a_mon1,sum(a_mon2) as a_mon2,sum(a_mon3) as a_mon3,sum(a_mon4) as a_mon4,sum(a_mon5) as a_mon5,sum(a_mon6) as a_mon6,';
gztjstr:=gztjstr+'sum(a_mon7) as a_mon7,sum(a_mon8) as a_mon8,sum(a_mon9) as a_mon9,sum(a_mon10) as a_mon10,sum(a_mon11) as a_mon11,sum(a_mon12) as a_mon12,';
gztjstr:=gztjstr+'a_bm,a_bz from gztj group by a_bm,a_bz';
with datamodule1.gztjs do
begin
close;
sql.clear;
sql.add(gztjstr);
prepare;
open;
end;
bmgzreportb.QRLabel1.caption:=edit9.text;
bmgzreportb.QRLabel4.caption:=combobox5.text;
bmgzreportb.QuickRep1.Preview;
datasource4.DataSet.close;
datasource4.dataset.open;
end;//else
end;
procedure Tgztjb.Button6Click(Sender: TObject);
begin
datamodule1.gzgnss.Edit;
dbgrid1.columns.Items[5].Field.value:=0.5;
dbgrid1.Columns.EndUpdate ;
end;
procedure Tgztjb.Button7Click(Sender: TObject);
var
ggjsstr,gzgnstr:string;
i_month:integer;
begin
ggjsstr:='select *from ggjs where a_gzcm='+''''+combobox1.text+'''';
if combobox1.text='' then
showmessage('请先选择要统计的工资项目')
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -