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

📄 gztj.pas

📁 2004090611144625767.rar 资源名称:通用工资管理
💻 PAS
📖 第 1 页 / 共 3 页
字号:
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 + -