📄 changeschedefine.pas
字号:
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 + -