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

📄 gzgn.pas

📁 2004090611144625767.rar 资源名称:通用工资管理
💻 PAS
📖 第 1 页 / 共 4 页
字号:
        mychar:=hjs[a_ii];
       if not odd(a_ii) then //为偶数
         begin
              if ((hjs[a_ii]<>'+') and (hjs[a_ii]<>'-')) and ((hjs[a_ii]<>'*') and (hjs[a_ii]<>'/'))  then //错的
              begin      //偶数不为公式符号的情况
              a_ii:=100;
              end;
         end
       else    //奇数的情况
          begin
          //if not (mychar in myset) then  //为奇数
          //ii:=20;
          end;
          a_ii:=a_ii+1;
                                end;  //上面while的
  end
  else
  a_ii:=101;//上面第一个if的
  end;//判断上面最后一个不能为空的情况
  if a_ii=101 then  //错的情况
  begin
                                  aa_hjs1:=trim(aa_hjs);
                                  anumber:=['0'..'9'];
                                  aa_ii:=length(aa_hjs1);
                                  a_iiii:=1;
                                 while a_iiii<=aa_ii do
                                 begin
                                 if aa_hjs1[a_iiii] in anumber then //是数字的情况
                                 a_iiii:=a_iiii+1
                                 else//真的出错
                                 begin
                                 datamodule1.ggjss.Last;
                                 //ggjsb.show;
                                 a_iiii:=1055;
                                 end;
                                 end;




    end;

 end;//上面判断是空字符串的情况

datamodule1.ggjss.Next;
end;//循环各条记录
  if (a_row<>20) or (aa_ii=a_iiii+1) then
  begin
  ggjsb.show;
  ggjsb.dbgrid1.SetFocus;
  ggjsb.DBGrid1.DataSource.dataset.first;
  ggjsb.DataSource1.dataset.moveby(a_row-1);
  showmessage(ggjsb.dbgrid1.Columns[0].field.asstring+'公式出错,请重新设定,谢谢!');
  end;
  end;

procedure Tgzgnb.FormShow(Sender: TObject);
var
sstr:string;
begin
treeview1.visible:=false;
i_key13:=true;
TStringGrid(DBGrid1).FixedCols := TStringGrid(DBGrid1).FixedCols + 1;
button17.visible:=false;
button17.Click;
button15.visible:=false;
button14.visible:=false;
iiii:=true;
edit4.Text:='';
edit3.text:='';
//dbgrid2.visible:=false;
button1.Visible:=false;
button10.visible:=false;
button9.visible:=false;
button8.visible:=false;
button3.visible:=false;
button12.visible:=false;
sstr:='select *from gzgn order by a_date desc';
with datamodule1.gzgns do
begin
close;
sql.clear;
sql.add(sstr);
prepare;
open;
end;
edit1.text:=formatdatetime('yyyy',datamodule1.gzgns.fieldbyname('a_date').asdatetime);
edit2.text:=formatdatetime('mm',datamodule1.gzgns.fieldbyname('a_date').asdatetime);
button13.click;
end;

procedure Tgzgnb.ComboBox1DropDown(Sender: TObject);
begin
treeview1.visible:=true;
end;

procedure Tgzgnb.Edit3Click(Sender: TObject);
begin
treeview1.visible:=true;
end;

procedure Tgzgnb.DBGrid2DblClick(Sender: TObject);
var
str:string;
begin
edit4.text:=datamodule1.rsbms.fieldbyname('a_bm').asstring;
edit3.text:=datamodule1.rsbms.fieldbyname('a_bz').asstring;
treeview1.visible:=false;
button10.click;
//button3.click;
datasource1.dataset.close;
datasource1.dataset.open;
if (edit4.text='') and (edit3.text='') then
begin
str:='select *from gzgn where Extract(year from a_date)=';
str:=str+edit1.text+' and extract(month from a_date)=';
str:=str+edit2.text;
end
else
begin
str:='select *from gzgn where extract(year from a_date)=';
str:=str+edit1.text+' and extract(month from a_date)=';
str:=str+edit2.text+' and a_bm='+''''+edit4.text+'''';
str:=str+' and a_bz='+''''+edit3.text+'''';
end;
with datamodule1.gzgns do
begin
close;
sql.clear;
sql.add(str);
prepare;
open;
end;
end;

procedure Tgzgnb.Button10Click(Sender: TObject);
var
str:string;
begin

str:='select *from gzgn where a_bm=';
str:=str+''''+edit4.text+''''+' and a_bz=';
str:=str+''''+edit3.text+''''+''+' and extract(year from a_date)=';
str:=str+edit1.text+' and extract(month from a_date)='+edit2.text;
if edit4.text='' then
  begin
str:='select *from gzgn where';
str:=str+' extract(year from a_date)=';
str:=str+trim(edit1.text)+' and extract(month from a_date)='+trim(edit2.text);
  end;
with datamodule1.gzgns do
begin
close;
sql.clear;
sql.add(str);
prepare;
open;
end;
datasource1.dataset.close;
datasource1.dataset.open;
end;

procedure Tgzgnb.Button5Click(Sender: TObject);
var
gpgzstr,gzgnstr,str:string;
gpgztotal:real;
begin
 //button3.click;
 str:='select *from ggjs where a_gzcm=''计票工资'''; //可以加一个日期来判断与这边表单上的日期对应的有无计票工资,没有则跑到那表单进行修改
 str:=str+' and extract(year from a_date)='+edit1.text;
 str:=str+' and extract(month from a_date)='+edit2.text;
 with datamodule1.ggjss do
 begin
 close;
 sql.clear;
 sql.add(str);
 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
   begin
   ggjsb.edit1.text:=edit1.text;
   ggjsb.Edit2.text:=edit2.text;
   ggjsb.button4.click;
   end
   else
      begin
       datamodule1.ggjss.Edit;
       datamodule1.ggjss.FieldByName('a_jsgs').asstring:='';
       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
       gpgzstr:='select sum(a_jjgz) as aa from gpgz where a_number='+''''+datamodule1.gzgns.fieldbyname('a_number').asstring+'''';
       gpgzstr:=gpgzstr+' and (extract(year from a_date)='+edit1.text+' and extract(month from a_date)='+edit2.text+')';
         with datamodule1.gpgzs do
         begin
         close;
         sql.clear;
         sql.add(gpgzstr);
         prepare;
         open;
         end;
        gpgztotal:=datamodule1.gpgzs.fieldbyname('aa').asfloat;  //取得当前的计票合计总额
        datamodule1.gzgns.Edit;
        datamodule1.gzgns.FieldByName(datamodule1.ggjss.fieldbyname('a_smdm').asstring).asfloat:=gpgztotal;
        datamodule1.gzgns.post;
        datamodule1.gzgns.Next;
               end;

        end;//上面判断的有计票工资的情况
        end;//上面判断不能设两个计票工资的情况

    str:='select *from ggjs where extract(year from a_date)=';
    str:=str+edit1.text+' and extract(month from a_date)='+edit2.text;

     with datamodule1.ggjss do  //可以在ggjsb表单里面加一个按钮,用来根据这个表单的日期显示公资项目等
      begin
      close;
      sql.clear;
      sql.add(str);
      prepare;
      open;
      end;
    end;//最后一个
procedure Tgzgnb.Button11Click(Sender: TObject);
var
qqdjstr,gzgnstr,str:string;
qqdjtotal:real;
begin
str:='select *from ggjs where a_gzcm=''缺勤金额'''; //可以加一个日期来判断与这边
str:=str+' and extract(year from a_date)='+edit1.text;
str:=str+' and extract(month from a_date)='+edit2.text;
//表单上的日期对应的有无缺勤金额,没有则跑到那表单进行修改
 with datamodule1.ggjss do
 begin
 close;
 sql.clear;
 sql.add(str);
 prepare;
 open;
 end;
if datamodule1.ggjss.eof then
showmessage('工资项目里没有缺勤金额项,请先设定好')
else
 begin
   if datamodule1.ggjss.RecordCount>1 then
   showmessage('不能设两个缺勤金额项')
   else
      begin
       datamodule1.ggjss.Edit;
       datamodule1.ggjss.FieldByName('a_jsgs').asstring:='';
       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
       qqdjstr:='select sum(a_total) as aa from qqdj where a_number='+''''+datamodule1.gzgns.fieldbyname('a_number').asstring+'''';
       qqdjstr:=qqdjstr+' and (extract(year from a_date)='+edit1.text+' and extract(month from a_date)='+edit2.text+')';
         with datamodule1.qqdjs do
         begin
         close;
         sql.clear;
         sql.add(qqdjstr);
         prepare;
         open;
         end;
        qqdjtotal:=datamodule1.qqdjs.fieldbyname('aa').asfloat;  //取得当前的计票合计总额
        datamodule1.gzgns.Edit;


datamodule1.gzgns.FieldByName(datamodule1.ggjss.fieldbyname('a_smdm').asstring).asfloat:=qqdjtotal;
        datamodule1.gzgns.post;
        datamodule1.gzgns.Next;
               end;

        end;//上面判断的有计票工资的情况
        end;//上面判断不能设两个计票工资的情况
   str:='select *from ggjs where extract(year from a_date)='+edit1.text;
   str:=str+' and extract(month from a_date)='+edit2.text;
    with datamodule1.ggjss do  //可以在ggjsb表单里面加一个按钮,用来根据这个表单的日期显示公资项目等
      begin
      close;
      sql.clear;
      sql.add(str);
      prepare;
      open;
      end;
    button3.click;
    end;//最后一个
procedure Tgzgnb.Button6Click(Sender: TObject);
var
 yggbstr,zwszstr,zcszstr,ggjsstr,gzgnstr:string;
 zwzctotal: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
begin
showmessage('不能设定一个以上的级别工资项目');
ggjsb.Edit1.text:=edit1.text;
ggjsb.edit2.text:=edit2.text;
ggjsb.Button4.Click;
end
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='' 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
    yggbstr:='select *from yggb where a_number=';
    yggbstr:=yggbstr+''''+datamodule1.gzgns.fieldbyname('a_number').asstring+'''';
    yggbstr:=yggbstr+' and a_name='+''''+datamodule1.gzgns.fieldbyname('a_name').asstring+'''';
    with datamodule1.yggb do
    begin
    close;
    sql.clear;
    sql.add(yggbstr);
    prepare;
    open;
    end;
    zwszstr:='select *from zwsz where a_zw=';
    zwszstr:=zwszstr+''''+datamodule1.yggb.fieldbyname('a_zw').asstring+'''';
    with datamodule1.zwszs do
    begin
    close;
    sql.clear;
    sql.add(zwszstr);
    prepare;
    open;
    end;
    if datamodule1.zwszs.Eof then //没有职务设置
    begin
    showmessage('没有职务设置');
    zwzctotal:=0;
    end
    else
    zwzctotal:=datamodule1.zwszs.fieldbyname('a_jj').asfloat;
    zcszstr:='select *from zcsz where a_zc=';
    zcszstr:=zcszstr+''''+datamodule1.yggb.fieldbyname('a_zz').asstring+'''';
    with datamodule1.zcszs do
    begin
    close;
    sql.clear;
    sql.add(zcszstr);
    prepare;
    open;
    end;
    if not datamodule1.zcszs.Eof then
    zwzctotal:=zwzctotal+datamodule1.zcszs.fieldbyname('a_jj').asfloat;
    datamodule1.gzgns.edit;
    datamodule1.gzgns.fieldbyname(datamodule1.ggjss.fieldbyname('a_smdm').asstring).asfloat:=zwzctotal;
    datamodule1.gzgns.post;
    datamodule1.gzgns.next;
    end;
    end;
    end;
    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  //可以在ggjsb表单里面加一个按钮,用来根据这个表单的日期显示公资项目等
      begin
      close;
      sql.clear;
      sql.add(ggjsstr);
      prepare;
      open;
      end;
      button3.click;

⌨️ 快捷键说明

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