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

📄 gzprint.pas

📁 2004090611144625767.rar 资源名称:通用工资管理
💻 PAS
📖 第 1 页 / 共 4 页
字号:
unit gzprint;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Grids, DBGrids, StdCtrls, ComCtrls, ExtCtrls, Db;

type
  Tgzprintb = class(TForm)
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    Panel1: TPanel;
    Panel2: TPanel;
    Label1: TLabel;
    Edit1: TEdit;
    UpDown1: TUpDown;
    Label2: TLabel;
    Edit2: TEdit;
    UpDown2: TUpDown;
    Label3: TLabel;
    Edit3: TEdit;
    Label4: TLabel;
    Edit4: TEdit;
    GroupBox1: TGroupBox;
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    GroupBox2: TGroupBox;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    DBGrid1: TDBGrid;
    DataSource1: TDataSource;
    Label5: TLabel;
    Label6: TLabel;
    Edit5: TEdit;
    DBGrid2: TDBGrid;
    DataSource2: TDataSource;
    DataSource3: TDataSource;
    Label7: TLabel;
    Edit6: TEdit;
    UpDown3: TUpDown;
    Label8: TLabel;
    Edit7: TEdit;
    UpDown4: TUpDown;
    GroupBox3: TGroupBox;
    Button5: TButton;
    Button6: TButton;
    Button7: TButton;
    Button8: TButton;
    DBGrid4: TDBGrid;
    DataSource4: TDataSource;
    Edit8: TEdit;
    TreeView1: TTreeView;
    Button9: TButton;
    procedure FormShow(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure DBGrid3DblClick(Sender: TObject);
    procedure DBGrid2DblClick(Sender: TObject);
    procedure Edit4Click(Sender: TObject);
    procedure Edit3KeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Edit4KeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Button5Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure DBGrid2DrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
    procedure DBGrid2KeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
    procedure DBGrid4DrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
    procedure TreeView1KeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Edit8Enter(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
  public
   i_key13:boolean; { Public declarations }
  end;

var
  gzprintb: Tgzprintb;

implementation

uses datamodule, gzreport, gzbreport, gzbmreport, Unit1;

{$R *.DFM}

procedure Tgzprintb.FormShow(Sender: TObject);
var
grouprsbm,rsbmstr,ggjsstr,gzgnstr:string;
i_title:integer;
begin
i_key13:=true;
//form1.treeviewproc();
edit1.text:=formatdatetime('yyyy',date);
edit2.text:=formatdatetime('mm',date);
edit6.text:=formatdatetime('yyyy',date);
edit7.text:=formatdatetime('mm',date);
datamodule1.gzgns.close;
dbgrid2.visible:=false;
edit3.text:='';
edit4.text:='';
gzgnstr:='select *from gzgn';
with datamodule1.gzgns do
begin
close;
sql.clear;
sql.add(gzgnstr);
prepare;
open
end;
edit1.text:=formatdatetime('yyyy',datamodule1.gzgns.fieldbyname('a_date').asdatetime);
edit2.text:=formatdatetime('mm',datamodule1.gzgns.fieldbyname('a_date').asdatetime);
ggjsstr:='select *from ggjs where extract(year from a_date)=';
ggjsstr:=ggjsstr+edit1.text+' and extract(month from a_date)=';
ggjsstr:=ggjsstr+edit2.text;
with datamodule1.ggjss do
begin
close;
sql.clear;
sql.add(ggjsstr);
prepare;
open;
end;
 i_title:=4;
 while i_title<=23 do
begin
 if datamodule1.ggjss.fieldbyname('a_gzcm').asstring<>'' then
 begin
 dbgrid1.Columns[i_title].title.caption:=datamodule1.ggjss.fieldbyname('a_gzcm').asstring;
 end
 else
 dbgrid1.columns[i_title].visible:=false;
 i_title:=i_title+1;
 datamodule1.ggjss.next;
end;//上面循环用

treeview1.items.clear;
grouprsbm:='select a_bm from rsbm group by a_bm';
with datamodule1.rsbms do
begin
close;
sql.clear;
sql.add(grouprsbm);
prepare;
open;
end;
datamodule1.rsbms.Last;
while not datamodule1.rsbms.bof do
begin
 rsbmstr:='select *from rsbm where a_bm='+''''+datamodule1.rsbms.fieldbyname('a_bm').asstring+'''';
 with datamodule1.rsbmss do
 begin
 close;
 sql.clear;
 sql.add(rsbmstr);
 prepare;
 open;
 end;//with
 // treeview1.Items.Clear;
 if datamodule1.rsbms.eof  then
 begin
 if (datamodule1.rsbms.eof) and (datamodule1.rsbmss.RecordCount<=1) then
 begin
 treeview1.Items.Add(treeview1.TopItem ,datamodule1.rsbmss.fieldbyname('a_bm').asstring+'('+datamodule1.rsbmss.fieldbyname('a_number').asstring+')');
 treeview1.TopItem.selected:=true;
 end//if
 else
 begin
 treeview1.Items.Add(treeview1.TopItem ,datamodule1.rsbms.fieldbyname('a_bm').asstring);
 datamodule1.rsbmss.last;
 while not datamodule1.rsbmss.bof do
 begin
  if datamodule1.rsbmss.FieldByName('a_bz').asstring<>'' then
 treeview1.Items.addchild(treeview1.topitem,datamodule1.rsbmss.fieldbyname('a_bz').asstring+'('+datamodule1.rsbmss.fieldbyname('a_number').asstring+')');
 datamodule1.rsbmss.prior;
 end;//while
 treeview1.TopItem.selected:=true;
 end;//else  第一条头节点
  end//datamodule1.rsbms.bof
  else
  begin
  if datamodule1.rsbmss.RecordCount<=1 then
  begin
  treeview1.Items.Add(treeview1.selected,datamodule1.rsbmss.fieldbyname('a_bm').asstring+'('+datamodule1.rsbmss.fieldbyname('a_number').asstring+')');
  treeview1.Selected.getNextSibling.Selected :=true;
  end
  else
  begin
  treeview1.items.add(treeview1.Selected.getNextSibling,datamodule1.rsbms.fieldbyname('a_bm').asstring);
  treeview1.Selected.getNextSibling.Selected :=true;
  datamodule1.rsbmss.last;
  while not datamodule1.rsbmss.bof do
  begin
  if datamodule1.rsbmss.FieldByName('a_bz').asstring<>'' then
  treeview1.items.addchild(treeview1.selected,datamodule1.rsbmss.fieldbyname('a_bz').asstring+'('+datamodule1.rsbmss.fieldbyname('a_number').asstring+')');
  datamodule1.rsbmss.prior;
  end;//while not
  end;
  end;//else不是第一条节点
datamodule1.rsbms.prior;
end;//while not rsbms  //到这边结束
    treeview1.visible:=false;
    end;

procedure Tgzprintb.Button1Click(Sender: TObject);
var
ggjsstr,gzgnstr:string;
i_title:integer;
begin
if edit8.text<>'' then
 begin
gzgnstr:='select *from gzgn where a_bm=';
gzgnstr:=gzgnstr+''''+edit8.text+''''+' and a_bz=';
gzgnstr:=gzgnstr+''''+edit5.text+'''';
gzgnstr:=gzgnstr+' and extract(year from a_date)='+edit1.text;
gzgnstr:=gzgnstr+' and extract(month from a_date)='+edit2.text;
 end
 else
 begin
 gzgnstr:='select *from gzgn where extract(year from a_date)='+edit1.text;
 gzgnstr:=gzgnstr+' and extract(month from a_date)='+edit2.text;
 end;
 if (edit3.text<>'') and (edit4.text<>'') then
 begin
 gzgnstr:=gzgnstr+' and a_number='+''''+edit3.text+'''';
 gzgnstr:=gzgnstr+' and a_name='+''''+edit4.text+'''';
 end;
 with datamodule1.gzgns do
 begin
 close;
 sql.clear;
 sql.add(gzgnstr);
 prepare;
 open;
 end;
  if not datamodule1.gzgns.Eof then
  begin
  ggjsstr:='select *from ggjs where extract(year from a_date)=';
  ggjsstr:=ggjsstr+edit1.text+' and extract(month from a_date)=';
  ggjsstr:=ggjsstr+edit2.text;
  with datamodule1.ggjss do
  begin
  close;
  sql.clear;
  sql.add(ggjsstr);
  prepare;
  open;
  end;
 i_title:=4;
 while i_title<=23 do
begin
 if datamodule1.ggjss.fieldbyname('a_gzcm').asstring<>'' then
 begin
  dbgrid1.columns[i_title].visible:=true;
  dbgrid1.Columns[i_title].Title.caption:=datamodule1.ggjss.fieldbyname('a_gzcm').asstring;
  end
  else
  dbgrid1.columns[i_title].visible:=false;

i_title:=i_title+1;
datamodule1.ggjss.next;
end;// 上面循环用
end//if
else
showmessage('没有符合条件的记录!'); 

 end;

procedure Tgzprintb.DBGrid3DblClick(Sender: TObject);
begin
edit8.text:=datamodule1.rsbm.fieldbyname('a_bm').asstring;
edit5.text:=datamodule1.rsbm.fieldbyname('a_bz').asstring;

end;

procedure Tgzprintb.DBGrid2DblClick(Sender: TObject);
begin
edit8.text:=datamodule1.yggb.fieldbyname('a_bm').asstring;
edit5.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 Tgzprintb.Edit4Click(Sender: TObject);
var
yggbstr:string;
begin
yggbstr:='select a_bm,a_bz,a_number,a_name from yggb where a_number like ';
yggbstr:=yggbstr+''''+'%'+edit3.text+'%'+''''+' and a_name like ';
yggbstr:=yggbstr+''''+'%'+edit4.text+'%'+'''';
with datamodule1.yggb do
begin
close;
sql.clear;
sql.add(yggbstr);
prepare;
open;
end;
dbgrid2.visible:=true;
end;


procedure Tgzprintb.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
begin
dbgrid2.visible:=true;
dbgrid2.SetFocus;

end;
end;
end;
procedure Tgzprintb.Edit4KeyUp(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
begin
dbgrid2.visible:=true;
dbgrid2.setfocus;
end;
end;
end;

procedure Tgzprintb.Button5Click(Sender: TObject);
var
aa_sum,a_sum,ggjsstr,gzgnstr:string;
i_title:integer;
begin
gzgnstr:='select *from gzgn where extract(year from a_date)='+edit6.text;
gzgnstr:=gzgnstr+' and extract(month from a_date)='+edit7.text;
with datamodule1.gzgns do
begin
close;
sql.clear;
sql.add(gzgnstr);
prepare;
open;
end;
if datamodule1.gzgns.eof then
showmessage('没有查到符合条件的记录')
else
begin
 ggjsstr:='select *from ggjs where extract(year from a_date)='+edit6.text;
 ggjsstr:=ggjsstr+' and extract(month from a_date)='+edit7.text;
 with datamodule1.ggjss do
 begin
 close;
 sql.clear;
 sql.add(ggjsstr);
 prepare;
 open;
 end;
 i_title:=2;
 a_sum:='sum(';
 while i_title<22 do
 begin
 if datamodule1.ggjss.FieldByName('a_gzcm').asstring<>'' then
 begin
 dbgrid4.Columns[i_title].title.Caption:=datamodule1.ggjss.fieldbyname('a_gzcm').asstring;
 dbgrid4.columns[i_title].visible:=true;
 a_sum:=a_sum+datamodule1.ggjss.fieldbyname('a_smdm').asstring+') as '+datamodule1.ggjss.fieldbyname('a_smdm').asstring+',';
 if i_title=2 then
 aa_sum:=a_sum
 else
 begin
 aa_sum:=aa_sum+a_sum;
  end;
  a_sum:='sum(';
  end
 else
 dbgrid4.Columns[i_title].visible:=false;
 i_title:=i_title+1;
 datamodule1.ggjss.next;
 end;//上面循环的
 a_sum:=copy(aa_sum,1,length(aa_sum)-1);
 gzgnstr:='select a_bm,a_bz, '+a_sum+' from gzgn where extract(year from a_date)=';
 gzgnstr:=gzgnstr+edit1.text+' and extract(month from a_date)='+edit2.text+' group by a_bm,a_bz';
//showmessage(gzgnstr);
 with datamodule1.gzgns do
 begin
 close;
 sql.clear;
 sql.add(gzgnstr);
 prepare;
 open;
 end;
// showmessage(floattostr(datamodule1.gzgns.fieldbyname('a').asfloat));
 datasource4.DataSet.Close;
 datasource4.dataset.open;
  end;//最上面的else底下的
end;
procedure Tgzprintb.Button2Click(Sender: TObject);
var
label_str,ggjsstr,gzgnstr:string;
i_title,i_label:integer;
begin
if radiobutton1.checked=true then
 begin
  if edit8.text<>'' then
 begin
gzgnstr:='select *from gzgn where a_bm=';
gzgnstr:=gzgnstr+''''+edit8.text+''''+' and a_bz=';
gzgnstr:=gzgnstr+''''+edit5.text+'''';
gzgnstr:=gzgnstr+' and extract(year from a_date)='+edit1.text;
gzgnstr:=gzgnstr+' and extract(month from a_date)='+edit2.text;
 end
 else
 begin
 gzgnstr:='select *from gzgn where extract(year from a_date)='+edit1.text;
 gzgnstr:=gzgnstr+' and extract(month from a_date)='+edit2.text;
 end;
 if (edit3.text<>'') and (edit4.text<>'') then
 begin
 gzgnstr:=gzgnstr+' and a_number='+''''+edit3.text+'''';
 gzgnstr:=gzgnstr+' and a_name='+''''+edit4.text+'''';
 end;
 with datamodule1.gzgns do
 begin

⌨️ 快捷键说明

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