📄 gztj.pas
字号:
else
begin
if edit11.text<>'' then
begin
gzgnstr:='select a_bm,a_bz,a_number,a_name from gzgn where extract(year from a_date)='+edit1.text;
gzgnstr:=gzgnstr+' and a_bm='+''''+edit11.text+''''+' and a_bz='+''''+edit2.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)='+edit1.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;
if (edit3.text<>'') and (edit4.text<>'') then
begin
gzgnstr:='select a_bm,a_bz,a_name,a_number from gzgn where extract(year from a_date)='+edit1.text;
gzgnstr:=gzgnstr+' and a_number='+''''+edit3.text+'''';
gzgnstr:=gzgnstr+' and a_name='+''''+edit4.text+'''';
gzgnstr:=gzgnstr+' group by a_bm,a_bz';
gzgnstr:=gzgnstr+',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)='+edit1.text;
ggjsstr:=ggjsstr+' and extract(month from a_date)='+inttostr(i_month);
ggjsstr:=ggjsstr+' and a_gzcm='+''''+combobox1.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)='+edit1.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;
end;
end;
procedure Tgztjb.Button4Click(Sender: TObject);
begin
self.close;
end;
procedure Tgztjb.Button2Click(Sender: TObject);
var
ggjsstr,gzgnstr:string;
i_month:integer;
begin
ggjsstr:='select *from ggjs where a_gzcm='+''''+combobox1.text+'''';
if combobox1.text='' then
showmessage('请先选择要统计的工资项目')
else
begin
if (edit11.text<>'') and (edit2.text<>'') then
begin
gzgnstr:='select a_bm,a_bz,a_number,a_name from gzgn where extract(year from a_date)='+edit1.text;
gzgnstr:=gzgnstr+' and a_bm='+''''+edit11.text+''''+' and a_bz='+''''+edit2.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)='+edit1.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;
if (edit3.text<>'') and (edit4.text<>'') then
begin
gzgnstr:='select a_bm,a_bz,a_number,a_name from gzgn where extract(year from a_date)='+edit1.text;
gzgnstr:=gzgnstr+' and a_number='+''''+edit3.text+'''';
gzgnstr:=gzgnstr+' and a_name='+''''+edit4.text+'''';
gzgnstr:=gzgnstr+' group by a_bm,a_bz';
gzgnstr:=gzgnstr+',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)='+edit1.text;
ggjsstr:=ggjsstr+' and extract(month from a_date)='+inttostr(i_month);
ggjsstr:=ggjsstr+' and a_gzcm='+''''+combobox1.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)='+edit1.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;//i_month while
datamodule1.gztj.post;
datamodule1.gzgns.Next;
end;//while
jggztjreportb.QRLabel1.caption:=edit1.text;
jggztjreportb.qrlabel4.caption:= combobox1.text;
jggztjreportb.quickrep1.preview;
end;//else
end;
procedure Tgztjb.ComboBox1DropDown(Sender: TObject);
var
ggjsstr:string;
begin
combobox1.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
combobox1.Items.Add(datamodule1.ggjss.fieldbyname('a_gzcm').asstring);
datamodule1.ggjss.next;
end;
end;
procedure Tgztjb.ComboBox7DropDown(Sender: TObject);
var
ggjsstr:string;
begin
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
combobox1.Items.Add(datamodule1.ggjss.fieldbyname('a_gzcm').asstring);
datamodule1.ggjss.next;
end;
end;
procedure Tgztjb.FormShow(Sender: TObject);
var
grouprsbm,rsbmstr:string;
begin
treeview2.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
treeview2.Items.Add(treeview2.TopItem ,datamodule1.rsbmss.fieldbyname('a_bm').asstring+'('+datamodule1.rsbmss.fieldbyname('a_number').asstring+')');
treeview2.TopItem.selected:=true;
end//if
else
begin
treeview2.Items.Add(treeview2.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
treeview2.Items.addchild(treeview2.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
treeview2.Items.Add(treeview2.selected,datamodule1.rsbmss.fieldbyname('a_bm').asstring+'('+datamodule1.rsbmss.fieldbyname('a_number').asstring+')');
treeview2.Selected.getNextSibling.Selected :=true;
end
else
begin
treeview2.items.add(treeview2.Selected.getNextSibling,datamodule1.rsbms.fieldbyname('a_bm').asstring);
treeview2.Selected.getNextSibling.Selected :=true;
datamodule1.rsbmss.last;
while not datamodule1.rsbmss.bof do
begin
if datamodule1.rsbmss.FieldByName('a_bz').asstring<>'' then
treeview2.items.addchild(treeview2.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;
i_key13:=true;
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
treeview2.visible:=false;
treeview1.visible:=false;
dbgrid2.visible:=false;
dbgrid7.visible:=false;
end;
procedure Tgztjb.Button8Click(Sender: TObject);
var
gztjstr,ggjsstr,gzgnstr:string;
i_month:integer;
begin
ggjsstr:='select *from ggjs where a_gzcm='+''''+combobox1.text+'''';
if combobox3.text='' then
showmessage('请先选择要统计的工资项目')
else
begin
if (edit13.text<>'') and (edit6.text<>'') then
begin
gzgnstr:='select a_bm,a_bz,a_number,a_name from gzgn where extract(year from a_date)='+edit5.text;
gzgnstr:=gzgnstr+' and a_bm='+''''+edit13.text+''''+' and a_bz='+''''+edit6.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)='+edit5.text;
gzgnstr:=gzgnstr+' group by a_bm,a_bz,a_number,a_name';
end;
if (edit7.text<>'') and (edit8.text<>'') then
begin
gzgnstr:='select a_bm,a_bz,a_name,a_number from gzgn where extract(year from a_date)='+edit5.text;
gzgnstr:=gzgnstr+' and a_number='+''''+edit7.text+'''';
gzgnstr:=gzgnstr+' and a_name='+''''+edit8.text+'''';
gzgnstr:=gzgnstr+' group by a_bm,a_bz';
gzgnstr:=gzgnstr+',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)='+edit5.text;
ggjsstr:=ggjsstr+' and extract(month from a_date)='+inttostr(i_month);
ggjsstr:=ggjsstr+' and a_gzcm='+''''+combobox3.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)='+edit5.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;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -