📄 gzprint.pas
字号:
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 + -