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

📄 changeschedefine.pas

📁 pasa人力资源考勤管理系统
💻 PAS
📖 第 1 页 / 共 3 页
字号:
      adochangebcman.close;
      adochangebcman.open;
       id:=Application.messagebox('继续新增吗?','请问',mb_yesno+mb_iconquestion);
       if id=6 then //Yes
        begin
         adochangebc.append;
         listbox2.clear;
         listbox1.clear;
         ComboBox1.ItemIndex:=-1;
         label25.caption:=inttostr(listbox2.items.count);
         label25.update;
        end
        else if id=7 then //No
          close;
//      adochangebc.close;
//      adochangebc.open;
   end  //换班
   else if pos('加班',groupbox3.caption)>0 then  //加班
    begin
      if tbstate='old' then   //这张加班单上已存在员工,把以前的删除再新增进去
       begin
        Query1.close;
        query1.Sql.Clear;
        Query1.SQL.Add('delete from atd11011 where  otid='''+adoototid.asstring+''' ');
        query1.execsql;
       end;
       createtime:=formatdatetime('yyyy/mm/dd hh:mm:ss',now);
      for i:=0 to listbox2.items.count-1 do
      begin
        try
          aqy1.Close;
          aqy1.SQL.Clear;
          aqy1.SQL.Text:='select name,prof,dept,mankind from per24010 where workno='''+trim(copy(listbox2.items[i],1,ygbh))+'''';
          aqy1.Open;
          if (i=0) and (adootman.State=dsinsert) then
          begin
           ADOotmanotid.Value:=adoototid.asstring;
           adootmanworkno.Value:=trim(copy(listbox2.items[i],1,ygbh));
           adootmanname.Value:=aqy1.fieldbyname('name').asstring;
           adootmanprof.Value:=aqy1.fieldbyname('prof').asstring;
           adootmandept.Value:=aqy1.fieldbyname('dept').asstring;
           adootmanmankind.Value:=aqy1.fieldbyname('mankind').asstring;
           adootmanotdate.Value:=adoototdate.AsDateTime;
           //Query1.sql.Add('update atd11011 set otid='''+adoototid.asstring+''',workno='''+trim(copy(listbox2.items[i],1,ygbh))+''',name='''+aqy1.fieldbyname('name').asstring+''',prof='''+aqy1.fieldbyname('prof').asstring+''',dept='''+aqy1.fieldbyname('dept').asstring+''',mankind='''+aqy1.fieldbyname('mankind').asstring+''',otdate='''+adoototdate.asstring+'''');
          end
          else
          begin
           Query1.close;
           query1.sql.clear;
           Query1.sql.Add('Insert into atd11011 select'''+adoototid.asstring+''','''+trim(copy(listbox2.items[i],1,ygbh))+''','''+aqy1.fieldbyname('name').asstring+''','''+aqy1.fieldbyname('prof').asstring+''','''+aqy1.fieldbyname('dept').asstring+''','''+aqy1.fieldbyname('mankind').asstring+''','''+adoototdate.asstring+''','+
                        'case when '''+trim(dbedit3.Text)+'''='''' then 0.5 else '''+trim(dbedit3.Text)+''' end,'''+dbedit4.Text+''','''+dbedit48.Text+''',case when '''+trim(dbedit49.Text)+'''='''' then 0.5 else '''+trim(dbedit49.Text)+''' end,case when '''+trim(dbedit50.Text)+'''='''' then 0 else '''+trim(dbedit50.Text)+''' '+
                        'end,case when '''+trim(dbedit51.Text)+'''='''' then 0 else '''+trim(dbedit51.Text)+''' end,'''+booleantostr(dbcheckbox28.checked)+''',case when '''+trim(dbedit52.Text)+'''='''' then 0 else '''+trim(dbedit52.Text)+''' end,case when '''+trim(dbedit53.Text)+'''='''' then 0.5 else '''+trim(dbedit53.Text)+
                        ''' end,'''+dbedit54.Text+''','''+dbedit55.Text+''',case when '''+trim(dbedit56.Text)+'''='''' then 0.5 else '''+trim(dbedit56.Text)+''' end,'+
                        'case when '''+trim(dbedit57.Text)+'''='''' then 0 else '''+trim(dbedit57.Text)+''' end,case when '''+trim(dbedit58.Text)+'''='''' then 0 else '''+trim(dbedit58.Text)+''' end,'''+booleantostr(dbcheckbox30.checked)+''',case when '''+trim(dbedit59.Text)+'''='''' then 0 else '''+trim(dbedit59.Text)+''' '+
                        'end,case when '''+trim(dbedit60.Text)+'''='''' then 0.5 else '''+trim(dbedit60.Text)+''' end,'''+dbedit61.Text+''','''+dbedit62.Text+''',case when '''+trim(dbedit63.Text)+'''='''' then 0.5 else '''+trim(dbedit63.Text)+''' end,case when '''+trim(dbedit64.Text)+'''='''' then 0 else '''+trim(dbedit64.Text)+''' '+
                        'end,case when '''+trim(dbedit65.Text)+'''='''' then 0 else '''+trim(dbedit65.Text)+''' end,'''+booleantostr(dbcheckbox32.checked)+''','+
                        'case when '''+trim(dbedit66.Text)+'''='''' then 0 else '''+trim(dbedit66.Text)+''' end,case when '''+trim(dbedit67.Text)+'''='''' then 0.5 else '''+trim(dbedit67.Text)+''' end,'''+dbedit68.Text+''','''+dbedit69.Text+''',case when '''+trim(dbedit70.Text)+'''='''' then 0.5 else '''+trim(dbedit70.Text)+''' '+
                        'end,case when '''+trim(dbedit71.Text)+'''='''' then 0 else '''+trim(dbedit71.Text)+''' end,case when '''+trim(dbedit72.Text)+'''='''' then 0 else '''+trim(dbedit72.Text)+''' end,'''+booleantostr(dbcheckbox34.checked)+''',case when '''+trim(dbedit73.Text)+'''='''' then 0 else '''+trim(dbedit73.Text)+''' '+
                        'end,case when '''+trim(dbedit74.Text)+'''='''' then 0.5 else '''+trim(dbedit74.Text)+''' end,'''+dbedit75.Text+''','''+dbedit76.Text+''','+
                        'case when '''+trim(dbedit77.Text)+'''='''' then 0.5 else '''+trim(dbedit77.Text)+''' end,case when '''+trim(dbedit78.Text)+'''='''' then 0 else '''+trim(dbedit78.Text)+''' end,case when '''+trim(dbedit79.Text)+'''='''' then 0 else '''+trim(dbedit79.Text)+''' end,'''+booleantostr(dbcheckbox36.checked)+''','+
                        'case when '''+trim(dbedit80.Text)+'''='''' then 0 else '''+trim(dbedit80.Text)+''' end,'''+booleantostr(dbcheckbox38.checked)+''','''+booleantostr(dbcheckbox37.checked)+''','''+booleantostr(dbcheckbox39.checked)+''','''+booleantostr(dbcheckbox40.checked)+''','+
                        ''''+dbcombobox1.Text+''','''+booleantostr(dbcheckbox27.checked)+''','''+booleantostr(dbcheckbox29.checked)+''','''+booleantostr(dbcheckbox31.checked)+''','''+booleantostr(dbcheckbox33.checked)+''','''+booleantostr(dbcheckbox35.checked)+'''');
           //query1.SQL.SaveToFile('e:\ch.sql');
           Query1.execsql;
          end;

        except
          Application.messagebox(pchar('开立工号为:'+trim(copy(listbox2.items[i],1,ygbh))+'的加班单出错'),'Error',mb_ok+mb_iconerror);
          adootman.Cancel;
          exit;
        end;
      end;  //for
     // if (adoot.state=dsinsert) then
      // adoot.Post;
     // adoot.close;
     // adoot.commandtext:='select * from atd11010 order by cdate desc ';
      //adoot.open;
      if adootman.State=dsinsert then
       adootman.Post;
      adootman.close;
      adootman.open;
     close;
     end
    else if pos('连班',groupbox3.caption)>0 then //连班
     begin
      if tbstate='old' then   //这张加班单上已存在员工,把以前的删除再新增进去
       begin
        Query1.close;
        query1.Sql.Clear;
        Query1.SQL.Add('delete from atd12011 where startrq='''+adolianbanstartrq.asstring+''' '+
                       'and gotime='''+adolianbangotime.asstring+''' and endrq='''+adolianbanendrq.asstring+''' and outtime='''+adolianbanouttime.asstring+''' and lianbanno='''+adolianbanlianbanno.asstring+'''');
        query1.execsql;
       end;
      for i:=0 to listbox2.items.count-1 do
      begin
        try
          Query1.close;
          query1.sql.clear;
          Query1.sql.Add('Insert into atd12011 values('''+adolianbanlianbanno.asstring+''','''+trim(copy(listbox2.items[i],1,ygbh))+''','''+adolianbanstartrq.asstring+''','+
                        ''''+adolianbangotime.asstring+''','''+adolianbanendrq.asstring+''','''+adolianbanouttime.asstring+''','''+pubworkname+''','''+datetostr(date)+''') ');
          Query1.execsql;
        except
          Application.messagebox(pchar('开立工号为:'+trim(copy(listbox2.items[i],1,ygbh))+'的连班单出错'),'Error',mb_ok+mb_iconerror);
        end;
      end;  //for
      datamod.adolianban.close;
      datamod.adolianban.open;
      datamod.adolianbanman.close;
      datamod.adolianbanman.open;
      close;
    end;
 end;
end;

procedure Tformchangeschedefine.FormCreate(Sender: TObject);
begin
 // dbcheckbox22.Checked:=(dbcheckbox6.Checked or dbcheckbox11.Checked);
 // dbcheckbox23.Checked:=(dbcheckbox7.Checked or dbcheckbox12.Checked);
 // dbcheckbox24.Checked:=(dbcheckbox8.Checked or dbcheckbox13.Checked);
 // dbcheckbox25.Checked:=(dbcheckbox9.Checked or dbcheckbox14.Checked);
 // dbcheckbox26.Checked:=(dbcheckbox10.Checked or dbcheckbox15.Checked);
  Adoquery1.Close;
  Adoquery1.sql.clear;
  Adoquery1.sql.Text:='select * from atd01010 ';
  Adoquery1.Open;

  Listbox1.items.clear;
  listbox2.items.clear;
  datetimepicker1.Date:=date;
  datetimepicker2.Date:=date;
  Qry1.close;
  Qry1.sql.text:='Select * from pub05010 ';
  Qry1.open;
  While not Qry1.eof do
  begin
     Combobox1.Items.add(Qry1.fieldbyname('dno').asstring+copychar(' ',Qry1.fieldbyname('dno').size-length(Qry1.fieldbyname('dno').asstring))+'   '+Qry1.fieldbyname('dept').asstring);
     Qry1.next;
  end;
  //不能关闭qry1
end;

procedure Tformchangeschedefine.DateTimePicker1CloseUp(Sender: TObject);
begin
   datamod.adoototdate.asstring:=datetostr(datetimepicker1.Date);
   dbedit82.setfocus;
end;

procedure Tformchangeschedefine.DateTimePicker2CloseUp(Sender: TObject);
begin
  datamod.adochangebcendrq.asstring:=datetostr(datetimepicker2.Date);
  dbedit2.setfocus;
end;

procedure Tformchangeschedefine.fillnull1;
var i:integer;
    dbt:Tdbedit;
    dbx:Tdbcheckbox;
begin
  datamod.ADOchangebc.edit;
  for i:=5 to 24 do
   begin
     dbt:=Tdbedit(findcomponent('DBEdit'+inttostr(i)));
     with dbt do
     begin
       dbt.text:='';
     end;
   end;
  for i:=1 to 5 do
   begin
     dbx:=Tdbcheckbox(findcomponent('DBCheckBox'+inttostr(i)));
     with dbx do
     begin
       dbx.checked:=false;
     end;
   end;
end;

procedure Tformchangeschedefine.filldata1; //用班次主档的对应的数据写入控件中
begin
  qry1.Close;
  aqy1.Close;
  aqy1.SQL.Clear;
  aqy1.SQL.Text:='select * From atd01010';
  aqy1.Open;
 // if aqy1.Locate('scheno',wwDBLookupCombo1.text,[]) then
//  begin
//    datamod.adochangebc.edit;
//    dbedit5.Text :=aqy1.fieldbyname('gotime1').asstring; //第一段
 //   dbedit6.Text :=aqy1.fieldbyname('outtime1').asstring;
 //   dbedit7.Text :=aqy1.fieldbyname('decrease1').asstring;
 //   dbedit8.Text :=aqy1.fieldbyname('daytime1').asstring;
 //   if aqy1.FieldByName('add1').isnull then
 //     dbcheckbox1.Checked :=false
//   else
 //     dbcheckbox1.Checked :=aqy1.FieldByName('add1').asboolean;

    dbedit9.Text :=aqy1.fieldbyname('gotime2').asstring; //第二段
    dbedit10.Text :=aqy1.fieldbyname('outtime2').asstring;
    dbedit11.Text :=aqy1.fieldbyname('decrease2').asstring;
    dbedit12.Text :=aqy1.fieldbyname('daytime2').asstring;
    if aqy1.FieldByName('add2').isnull then
      dbcheckbox2.Checked :=false
    else
      dbcheckbox2.Checked :=aqy1.FieldByName('add2').asboolean;

    dbedit13.Text :=aqy1.fieldbyname('gotime3').asstring; //第三段
    dbedit14.Text :=aqy1.fieldbyname('outtime3').asstring;
    dbedit15.Text :=aqy1.fieldbyname('decrease3').asstring;
    dbedit16.Text :=aqy1.fieldbyname('daytime3').asstring;
    if aqy1.FieldByName('add3').isnull then
      dbcheckbox3.Checked :=false
    else
      dbcheckbox3.Checked :=aqy1.FieldByName('add3').asboolean;

    dbedit17.Text :=aqy1.fieldbyname('gotime4').asstring; //第四段
    dbedit18.Text :=aqy1.fieldbyname('outtime4').asstring;
    dbedit19.Text :=aqy1.fieldbyname('decrease4').asstring;
    dbedit20.Text :=aqy1.fieldbyname('daytime4').asstring;
    if aqy1.FieldByName('add4').isnull then
      dbcheckbox4.Checked :=false
    else
      dbcheckbox4.Checked :=aqy1.FieldByName('add4').asboolean;

    dbedit21.Text :=aqy1.fieldbyname('gotime5').asstring; //第五段
    dbedit22.Text :=aqy1.fieldbyname('outtime5').asstring;
    dbedit23.Text :=aqy1.fieldbyname('decrease5').asstring;
    dbedit24.Text :=aqy1.fieldbyname('daytime5').asstring;
    if aqy1.FieldByName('add5').isnull then
      dbcheckbox5.Checked :=false
    else
      dbcheckbox5.Checked :=aqy1.FieldByName('add5').asboolean;
end;

procedure Tformchangeschedefine.DBEdit1Exit(Sender: TObject);
begin
  if not datamod.ADOchangebc.Fieldbyname('startrq').isnull then
   if not isdate(dbedit1.text) then
    begin
      Application.messagebox('您必须输入一个正确的日期,否则您的作业将产生一想不到的结果','Warning',mb_ok+mb_iconwarning);
      dbedit1.SetFocus;
      exit;
    end;
   if not isdate(dbedit1.text) then
      exit;
    //用新的开始日期从班次主档选取有效的
  aqy1.Close;
  aqy1.Connection :=Datamod.Database1;
  aqy1.SQL.Clear;     //1,10号,8号是开始日期,应该选1号的班次
  aqy1.SQL.Add('select * from atd01010  ');
  aqy1.Open;
  aqy1.First;

  //如果先前的原班次编号在该日期内失效,就把它清空

  if trim(wwDBLookupCombo2.text)<>'' then
    wwDBLookupCombo2.OnExit (sender);
end;

procedure Tformchangeschedefine.CanEdit(bn:boolean);   //让user可以修改(和换班班次相关的)控件内的数据
var i:integer;
    dbt:Tdbedit;
    dbx:Tdbcheckbox;
begin
  for i:=25 to 44 do
  begin
    dbt:=Tdbedit(findcomponent('DBEdit'+inttostr(i)));
    with dbt do
    begin
      dbt.ReadOnly :=bn;
    end;
  end;
  for i:=6 to 10 do
  begin
    dbx:=Tdbcheckbox(findcomponent('DBCheckBox'+inttostr(i)));
    with dbx do
    begin
      dbx.ReadOnly :=bn;
    end;
  end;
end;

procedure Tformchangeschedefine.fillnull2;
var i:integer;
    dbt:Tdbedit;
    dbx:Tdbcheckbox;
begin
  datamod.ADOchangebc.Edit;
  for i:=25 to 44 do
   begin
     dbt:=Tdbedit(findcomponent('DBEdit'+inttostr(i)));
     with dbt do
     begin
       dbt.text:='';
       //2003/04/07
   datamod.adochangebc.fieldbyname(dbt.datafield).asstring:='';
     end;
   end;
   //2003/04/16
  for i:=6 to 10 do
   begin
     dbx:=Tdbcheckbox(findcomponent('DBCheckBox'+inttostr(i)));
     with dbx do
     begin
       dbx.checked:=false;
     end;
   end;
 datamod.adochangebc.fieldbyname('decrease11').asinteger:=0;
 datamod.adochangebc.fieldbyname('decrease21').asinteger:=0;
 datamod.adochangebc.fieldbyname('decrease31').asinteger:=0;
 datamod.adochangebc.fieldbyname('decrease41').asinteger:=0;
 datamod.adochangebc.fieldbyname('decrease51').asinteger:=0;
 end;

procedure Tformchangeschedefine.filldata2; //用班次主档的对应的数据写入控件中
var i:integer;
begin
with datamod do
begin
  aqy1.close;
  aqy1.SQL.clear;
  aqy1.SQL.Text:='select * From atd01010 where scheno='''+wwdblookupcombo2.text+'''';
  aqy1.Open;
  if not aqy1.Eof  then
  begin
    datamod.adochangebc.edit;
    datamod.ADOchangebclatesche.Value:=wwdblookupcombo2.Text;
    adochangebcdayhours.AsFloat:=aqy1.fieldbyname('dayhours').asfloat;
    adochangebcunatd.Asboolean:=aqy1.fieldbyname('unatd').asboolean;
    adochangebcot.Asboolean:=aqy1.fieldbyname('ot').asboolean;
    adochangebcnotgive.Asboolean:=aqy1.fieldbyname('notgive').asboolean;
    adochangebcotkind.Asstring:=aqy1.fieldbyname('otkind').asstring;
    adochangebcunatdxia.Asboolean:=aqy1.fieldbyname('unatdxia').asboolean;
    for i:=1 to 5 do
    begin
      tbcdfield(FindComponent('adochangebcs'+inttostr(i))).AsFloat:=aqy1.fieldbyname('s'+inttostr(i)).asfloat;
      tbcdfield(FindComponent('adochangebce'+inttostr(i))).AsFloat:=aqy1.fieldbyname('e'+inttostr(i)).asfloat;
      tstringfield(FindComponent('adochangebcgotime'+inttostr(i))).Asstring:=aqy1.fieldbyname('gotime'+inttostr(i)).asstring;
      tstringfield(FindComponent('adochangebcouttime'+inttostr(i))).Asstring:=aqy1.fieldbyname('outtime'+inttostr(i)).asstring;
      tbooleanfield(FindComponent('adochangebcadd'+inttostr(i))).Asboolean:=aqy1.fieldbyname('add'+inttostr(i)).asboolean;
      tbcdfield(FindComponent('adochangebcdecrease'+inttostr(i))).AsFloat:=aqy1.fieldbyname('decrease'+inttostr(i)).asfloat;
      tbcdfield(FindComponent('adochangebcdaytime'+inttostr(i))).AsFloat:=aqy1.fieldbyname('daytime'+inttostr(i)).asfloat;
      tbooleanfield(FindComponent('adochangebcunout'+inttostr(i))).Asboolean:=aqy1.fieldbyname('unout'+inttostr(i)).asboolean;
      tbooleanfield(FindComponent('adochangebcnight'+inttostr(i))).Asboolean:=aqy1.fieldbyname('night'+inttostr(i)).asboolean;
      tbcdfield(FindComponent('adochangebckuan'+inttostr(i))).AsFloat:=aqy1.fieldbyname('kuan'+inttostr(i)).asfloat;
    end;
  end;
end;
end;

procedure Tformchangeschedefine.FormKeyPress(Sender: TObject;
  var Key: Char);
begin
     if (activecontrol=edit1) or (activecontrol=combobox1) then exit;
     if key=#13 then
     begin
          key:=#0;
          selectnext(activecontrol,true,true);
     end;
end;

procedure Tformchangeschedefine.ComboBox1Change(Sender: TObject);
begin
  if length(combobox1.text)>8 then
  begin
     listbox1.Items.Clear;
     Qry1.close;
     Qry1.SQL.Text:='select * from pub05010 where dno='''+trim(copy(combobox1.text,1,8))+''' ';
     Qry1.Open;
     if Qry1.eof then
       Application.MessageBox('没有该部门,部门编号有误','Error',mb_ok+mb_iconerror)
     else begin
       Qry1.close;  //选出该部门所有的员工
       Qry1.SQL.Clear;
       Qry1.SQL.Text:='select workno,name,sexname from per24010 where deptno='''+trim(copy(combobox1.text,1,8))+''' and leave=0 order by workno';
       Qry1.Open;
       if not Qry1.Eof then    //如果为空,提示user信息
         while not Qry1.Eof do  //不为空,就把它加入listbox1(工号,姓名,性别)中,等待user选择
         begin
           listbox1.Items.Add(Qry1.fieldbyname('workno').asstring+'  '+
                              Qry1.fieldbyname('name').asstring+'  '+
                              Qry1.fieldbyname('sexname').asstring);
           Qry1.Next;
         end;
     end;
     Qry1.Close;
  end;
end;

procedure Tformchangeschedefine.Edit1KeyPress(Sender: TObject;
  var Key: Char);
var
   i,p:integer;
   have:boolean;
begin
  if key=#13 then
  begin
    have:=false;
    p:=-1;

⌨️ 快捷键说明

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