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

📄 gzgn.pas

📁 2004090611144625767.rar 资源名称:通用工资管理
💻 PAS
📖 第 1 页 / 共 4 页
字号:
    end;//最后一个

procedure Tgzgnb.Button7Click(Sender: TObject);
var
ggjsstr,htstr,gnstr,gzgnstr:string;
gn,gntotal:real;
begin
ggjsstr:='select *from ggjs where a_gzcm=''工龄工资''';
ggjsstr:=ggjsstr+' and extract(year from a_date)='+edit1.text;
ggjsstr:=ggjsstr+' and extract(month from a_date)='+edit2.text;
with datamodule1.ggjss do
begin
close;
sql.clear;
sql.add(ggjsstr);
prepare;
open;
end;
  if datamodule1.ggjss.Eof then
  begin
  showmessage('工资项目里面没有工龄工资项目,请先设好!');
  ggjsb.Edit1.text:=edit1.text;
  ggjsb.edit2.text:=edit2.text;
  ggjsb.show;
  ggjsb.Button4.click;
  end
  else
  begin
      if datamodule1.ggjss.recordcount>1 then
      showmessage('不能设定两个或两个以上的工龄工资项目!')
      else
       begin
       datamodule1.ggjss.Edit;
       datamodule1.ggjss.FieldByName('a_jsgs').asstring:='';
       datamodule1.ggjss.post;
       gzgnstr:='select *from gzgn where extract(year from a_date)=';
       gzgnstr:=gzgnstr+edit1.text+' and extract(month from a_date)=';
       gzgnstr:=gzgnstr+edit2.text+' and a_bm='+''''+edit4.text+'''';
       gzgnstr:=gzgnstr+' and a_bz='+''''+edit3.text+'''';
  if (edit4.text='') and (edit3.text='') then
  begin
  gzgnstr:='select *from gzgn where extract(year from a_date)=';
  gzgnstr:=gzgnstr+edit1.text+' and extract(month from a_date)='+edit2.text;
  end;
       with datamodule1.gzgns do
       begin
       close;
       sql.clear;
       sql.add(gzgnstr);
       prepare;
       open;
       end;

       while not datamodule1.gzgns.eof do
       begin
            htstr:='select *from htgn where a_number='+''''+datamodule1.gzgns.fieldbyname('a_number').asstring+'''';
             with datamodule1.htgns do
             begin
             close;
             sql.clear;
             sql.add(htstr);
             prepare;
             open;
             end;
             if datamodule1.htgns.eof then
             begin
             gntotal:=0;
             end
             else
             begin
             htstr:='select '+formatdatetime('yyyy',date)+ ' -extract(year from a_date) as aa from htgn where a_number=';
             htstr:=htstr+''''+datamodule1.gzgns.fieldbyname('a_number').asstring+'''';
             with datamodule1.htgns do
             begin
             close;
             sql.clear;
             sql.add(htstr);
             prepare;
             open;
             end;
             gntotal:=datamodule1.htgns.fieldbyname('aa').asfloat;
             gnstr:='select *from gn where a_gn<=';
             gnstr:=gnstr+floattostr(gntotal)+' order by a_gn desc';
            with datamodule1.gns do
            begin
            close;
            sql.clear;
            sql.add(gnstr);
            prepare;
            open;
            end;
            gntotal:=datamodule1.gns.fieldbyname('a_jj').asfloat;
            end;
            datamodule1.gzgns.edit;
            datamodule1.gzgns.FieldByName(datamodule1.ggjss.fieldbyname('a_smdm').asstring).asfloat:=gntotal;
            datamodule1.gzgns.post;
            datamodule1.gzgns.Next;
            end;
            end;
            end;
       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  //可以在ggjsb表单里面加一个按钮,用来根据这个表单的日期显示公资项目等
      begin
      close;
      sql.clear;
      sql.add(ggjsstr);
      prepare;
      open;
      end;
   button3.click;
   end;

procedure Tgzgnb.Button2Click(Sender: TObject);
var
str:string;
begin
edit4.text:='';
edit3.text:='';
str:='select *from gzgn where extract(year from a_date)=';
str:=str+edit1.text+' and extract(month from a_date)='+edit2.text;
with datamodule1.gzgns do
begin
close;
sql.clear;
sql.add(str);
prepare;
open;
end;

end;
procedure Tgzgnb.DBGrid2Exit(Sender: TObject);
begin
treeview1.visible:=false;
end;

procedure Tgzgnb.DBGrid2CellClick(Column: TColumn);
var
ii,ii1:integer;
begin
//确保该栏是逻辑字段
if DBGrid1.SelectedField.DataType = ftBoolean then
SaveBoolean();

if record_boolean=true then
button15.Click
else
begin
ii:=Tstringgrid(dbgrid1).row;  //  取当前行数
if iiii=true then         //第一次单击的情况
begin
//datamodule1.gzgns.edit;
iiii:=false;
end
else  //不是第一次单击的情况
begin
 if datamodule1.gzgns.state in [dsinsert,dsedit] then //判断表是否在修改状态中
    datamodule1.gzgns.Post;
     datamodule1.gzgns.edit;
  if ii<>ii1 then //判断记录指针是否有移动(这是有移动的情况)
  begin
    if datamodule1.gzgns.State in [dsinsert,dsedit] then
    datamodule1.gzgns.post;
    datamodule1.gzgns.edit;
  end;
end;
ii1:=ii;
datamodule1.gzgns.edit;
end;//else record_boolean;
end;

procedure Tgzgnb.Button12Click(Sender: TObject);
var
str:string;
i:integer;
begin
i:=0;
str:='select *from ggjs where extract(year from a_date)=';
str:=str+edit1.text+' and extract(month from a_date)=';
str:=str+edit2.text;
with datamodule1.ggjss do
begin
close;
sql.clear;
sql.add(str);
prepare;
open;
end;
 if datamodule1.ggjss.eof then //ggjs表里面没有这个月的计算公式
 begin
//showmessage('本地的计算公式还未设置,请先设置!');
ggjsb.Show;
ggjsb.Edit1.text:=edit1.text;
ggjsb.edit2.text:=edit2.text;
ggjsb.Button4.Click;
 end
 else
 begin
 button9.click;
 datamodule1.ggjss.First;
while i<=19 do
begin
 //根据从工资管理表里面的字段a到t的字段名来定位工资项目及计算公式表中的与之相对应的项止代码的记录,以取得工资项目及计算公式中设定的项目名称
   if datamodule1.ggjss.fieldbyname('a_gzcm').asstring<>'' then //有工资项目存在
 begin
   if  datamodule1.ggjss.fieldbyname('a_jsgs').asstring<>'' then                        //判断是否有计算公式(有的情况)
   begin
 dbgrid1.Columns[i].visible:=true;
 dbgrid1.columns[i].Title.caption:=datamodule1.ggjss.fieldbyname('a_gzcm').asstring;//更改单格标题
  end;
  end
       else //没有工资项目存在
       begin
       dbgrid1.columns[i].visible:=false;
       end;
i:=i+1;
datamodule1.ggjss.Next;
end;  //上面循环用的
 end;
 end;

procedure Tgzgnb.DBGrid3Exit(Sender: TObject);
begin
if datamodule1.gzgns.State in [dsinsert,dsedit] then
datamodule1.gzgns.post;
end;

procedure Tgzgnb.Button1Click(Sender: TObject);
var
str:string;
a_year,a_month:integer;
begin
str:='select *from gzgn where a_date<';
str:=str+(edit1.text+'/'+edit2.text+'/'+'30');
with datamodule1.gzgns do
begin
close;
sql.clear;
sql.add(str);
prepare;
open
end;
//a_year:=yearof(datamodule1.gzgns.fieldbyname('a_date').asdatetime);

end;

procedure Tgzgnb.CheckBox1Click(Sender: TObject);
begin
button12.click;
end;

procedure Tgzgnb.Button13Click(Sender: TObject);
var
str:string;
i:integer;
begin
i:=0;
str:='select *from ggjs where extract(year from a_date)=';
str:=str+edit1.text+' and extract(month from a_date)=';
str:=str+edit2.text;
with datamodule1.ggjss do
begin
close;
sql.clear;
sql.add(str);
prepare;
open;
end;
 datamodule1.ggjss.First;
while i<=19 do
begin
 //根据从工资管理表里面的字段a到t的字段名来定位工资项目及计算公式表中的与之相对应的项止代码的记录,以取得工资项目及计算公式中设定的项目名称
   if datamodule1.ggjss.fieldbyname('a_gzcm').asstring<>'' then //有工资项目存在
 begin
 dbgrid1.Columns[i].visible:=true;
 dbgrid1.columns[i].Title.caption:=datamodule1.ggjss.fieldbyname('a_gzcm').asstring;//更改单格标题
  end
       else //没有工资项目存在
       begin
       dbgrid1.columns[i].visible:=false;
       end;
i:=i+1;
datamodule1.ggjss.Next;
end;  //上面循环用的
 button10.click;
 end;
procedure Tgzgnb.Button14Click(Sender: TObject);
var
yjstr,gzgnstr:string;
begin
yjstr:='select *from yjb where extract(year from a_date)='+edit1.text;
yjstr:=yjstr+' and extract(month from a_date)='+edit2.text;
with datamodule1.yjbs do
begin
close;
sql.clear;
sql.add(yjstr);
prepare;
open;
end;
if datamodule1.yjbs.Eof then
begin
if checkbox2.checked=true then
begin
if edit4.text<>'' then
begin
gzgnstr:='select *from gzgn where extract(year from a_date)='+edit1.text;
gzgnstr:=gzgnstr+' and extract(month from a_date)='+edit2.text;
gzgnstr:=gzgnstr+' and a_bm='+''''+edit4.text+'''';
gzgnstr:=gzgnstr+' and a_bz='+''''+edit3.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;
with datamodule1.gzgns do
begin
close;
sql.clear;
sql.Add(gzgnstr);
prepare;
open;
end;
while not datamodule1.gzgns.eof do
begin
yjstr:='select sum(a_yj) as bb from yjb where a_name='+''''+datamodule1.gzgns.fieldbyname('a_name').asstring+'''';
yjstr:=yjstr+' and a_number='+''''+datamodule1.gzgns.fieldbyname('a_number').asstring+'''';
with datamodule1.yjbs do
begin
close;
sql.clear;
sql.add(yjstr);
prepare;
open;
end;//with
if datamodule1.yjbs.fieldbyname('bb').asfloat<datamodule1.yjsd.fieldbyname('a_full').asfloat then
begin
datamodule1.gzgns.Edit;
datamodule1.gzgns.FieldByName('f').asfloat:=datamodule1.yjsd.fieldbyname('a_yj').asfloat;
datamodule1.gzgns.post;
with datamodule1.yjb do
begin
append;
fieldbyname('a_date').asdatetime:=strtodate(edit1.text+'-'+edit2.text+'-'+'20');
fieldbyname('a_number').asstring:=datamodule1.gzgns.fieldbyname('a_number').asstring;
fieldbyname('a_name').asstring:=datamodule1.gzgns.fieldbyname('a_name').asstring;
fieldbyname('a_yj').asfloat:=datamodule1.yjsd.fieldbyname('a_yj').asfloat;
post;
end;//with
end;//if datamodule1.yjbs.fie
datamodule1.gzgns.next;
end;//while not 的
end;//if checkbox的
end;//if datamodule1.yjbs.eof
end;

procedure Tgzgnb.Button15Click(Sender: TObject);
var
gzgnstr,ggjsstr:string;
begin
if edit4.text='' then
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 combobox1
else
begin
gzgnstr:=gzgnstr+' and a_bm='+''''+edit4.text+'''';
gzgnstr:=gzgnstr+' and a_bz='+''''+edit3.text+'''';
end;//else
with datamodule1.gzgns do
begin
close;
sql.clear;
sql.add(gzgnstr);
prepare;
open;
end;//with
ggjsstr:='select *from ggjs where extract(year from a_date)='+edit1.text;
ggjsstr:=ggjsstr+' and extract(month from a_date)='+edit2.text;
with datamodule1.ggjss do
begin
close;
sql.Clear;
sql.add(ggjsstr);
prepare;
open;
end;
while not datamodule1.gzgns.Eof do
begin
datamodule1.gzgns.Edit;
 datamodule1.ggjss.First;
 while not datamodule1.ggjss.Eof do
 begin
 if datamodule1.ggjss.FieldByName('a_gzcm').asstring<>'' then
 datamodule1.gzgns.fieldbyname(datamodule1.ggjss.fieldbyname('a_smdm').asstring).asfloat:=0;
  datamodule1.ggjss.next;
 end;//while ggjss
datamodule1.gzgns.post;
datamodule1.gzgns.Next;
end;//while gzgns
record_boolean:=false;
button12.click;
end;

procedure Tgzgnb.DBGrid2Enter(Sender: TObject);
//var
//gzgnstr:string;
begin
{if edit4.text='' then
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 combobox1
else
begin
gzgnstr:=gzgnstr+' and a_bm='+''''+edit4.text+'''';
gzgnstr:=gzgnstr+' and a_bz='+''''+edit3.text+'''';
end;//else
with datamodule1.gzgns do
begin
close;
sql.clear;
sql.add(gzgnstr);
prepare;
open;
end;//with }
dbgrid2.SelectedIndex:=3;
dbgrid1.SetFocus;
end;

procedure Tgzgnb.Button16Click(Sender: TObject);
var

⌨️ 快捷键说明

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