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

📄 gztj.pas

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