changetime.pas
来自「pasa人力资源考勤管理系统」· PAS 代码 · 共 257 行
PAS
257 行
unit changetime;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, StdCtrls, DBCtrls, Mask, ExtCtrls, ImgList, ToolWin, Db, ADODB;
type
Tformchangetime = class(TForm)
Panel1: TPanel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label13: TLabel;
Label5: TLabel;
Label17: TLabel;
Label18: TLabel;
Label19: TLabel;
Label12: TLabel;
Label14: TLabel;
Label15: TLabel;
Label16: TLabel;
Label20: TLabel;
Label21: TLabel;
Label22: TLabel;
Label23: TLabel;
Label24: TLabel;
DBEdit8: TDBEdit;
DBCheckBox1: TDBCheckBox;
DBCheckBox2: TDBCheckBox;
DBCheckBox3: TDBCheckBox;
DBEdit7: TDBEdit;
DBEdit9: TDBEdit;
DBEdit10: TDBEdit;
DBEdit11: TDBEdit;
DBEdit12: TDBEdit;
DBCheckBox4: TDBCheckBox;
DBCheckBox5: TDBCheckBox;
DBCheckBox6: TDBCheckBox;
DBEdit13: TDBEdit;
DBEdit14: TDBEdit;
DBEdit15: TDBEdit;
DBEdit16: TDBEdit;
DBCheckBox7: TDBCheckBox;
DBCheckBox8: TDBCheckBox;
DBCheckBox9: TDBCheckBox;
DBEdit17: TDBEdit;
DBEdit18: TDBEdit;
DBEdit19: TDBEdit;
DBEdit20: TDBEdit;
DBCheckBox10: TDBCheckBox;
DBCheckBox11: TDBCheckBox;
DBCheckBox12: TDBCheckBox;
DBEdit21: TDBEdit;
DBEdit22: TDBEdit;
DBEdit23: TDBEdit;
DBEdit24: TDBEdit;
DBCheckBox13: TDBCheckBox;
DBCheckBox14: TDBCheckBox;
DBCheckBox15: TDBCheckBox;
ToolBar1: TToolBar;
ToolButton7: TToolButton;
DBNavigator1: TDBNavigator;
ImageList1: TImageList;
DateTimePicker3: TDateTimePicker;
DateTimePicker4: TDateTimePicker;
DBEdit2: TDBEdit;
DBEdit1: TDBEdit;
DBComboBox1: TDBComboBox;
DBEdit3: TDBEdit;
DBEdit4: TDBEdit;
DBEdit25: TDBEdit;
DBEdit26: TDBEdit;
DBEdit6: TDBEdit;
DBEdit5: TDBEdit;
DBMemo1: TDBMemo;
aqy1: TADOQuery;
DBRadioGroup1: TDBRadioGroup;
procedure FormKeyPress(Sender: TObject; var Key: Char);
procedure ToolButton7Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure DateTimePicker3CloseUp(Sender: TObject);
procedure DateTimePicker4CloseUp(Sender: TObject);
procedure DBEdit1Exit(Sender: TObject);
procedure DBEdit2Exit(Sender: TObject);
procedure DBComboBox1Exit(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure DBComboBox1Enter(Sender: TObject);
procedure DBComboBox1Change(Sender: TObject);
private
{ Private declarations }
Fieldsum:integer; //共有几个字段
public
{ Public declarations }
end;
var
formchangetime: Tformchangetime;
implementation
uses datamol,publicfunction, main,cvcode;
{$R *.DFM}
procedure Tformchangetime.FormKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
begin
key:=#0;
selectnext(activecontrol,true,true);
end;
end;
procedure Tformchangetime.ToolButton7Click(Sender: TObject);
begin
datamod.adochangesche.cancel;
close;
end;
procedure Tformchangetime.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
datamod.adochangesche.cancel;
end;
procedure Tformchangetime.DateTimePicker3CloseUp(Sender: TObject);
begin
datamod.ADOchangesche.FieldByName('startrq').asstring :=datetostr(datetimepicker3.date);
dbedit1.setfocus;
end;
procedure Tformchangetime.DateTimePicker4CloseUp(Sender: TObject);
begin
datamod.ADOchangesche.FieldByName('endrq').asstring :=datetostr(datetimepicker4.date);
dbedit2.setfocus;
end;
procedure Tformchangetime.DBEdit1Exit(Sender: TObject);
begin
if not datamod.ADOchangesche.Fieldbyname('startrq').isnull then
if not isdate(Dbedit1.text) then
begin
Application.messagebox('您必须输入一个正确的日期,否则您的作业将产生一想不到的结果','Warning',mb_ok+mb_iconwarning);
dbedit1.SetFocus;
exit;
end;
end;
procedure Tformchangetime.DBEdit2Exit(Sender: TObject);
begin
if not datamod.ADOchangesche.Fieldbyname('endrq').isnull then
begin
if not isdate(dbedit2.text) then
begin
Application.messagebox('您必须输入一个正确的日期,否则您的作业将产生一想不到的结果','Warning',mb_ok+mb_iconwarning);
dbedit2.SetFocus;
exit;
end;
if dbedit2.text<dbedit1.text then
begin
showmessage('后面的日期不能小于前面的日期');
exit;
end;
end;
end;
procedure Tformchangetime.DBComboBox1Exit(Sender: TObject);
var i:integer;
begin
if dbcombobox1.Items.IndexOf(dbcombobox1.Text)=-1 then
begin
Application.messagebox('对不起,在该日期范围内,此班次编号不是有效编号','Warning',mb_ok+mb_iconwarning);
end
else
begin
aqy1.Close;
aqy1.SQL.Clear; //1,10号,8号是开始日期,应该选1号的班次
aqy1.SQL.text:='select * from atd01010 a where scheno='''+dbcombobox1.text+''' and effectdate=(select max(effectdate) from atd01010 where scheno=a.scheno and effectdate<'''+DbEdit1.text+''') ';
aqy1.Open;
if not aqy1.Eof then
datamod.ADOchangesche.FieldByName('schename').asstring:=aqy1.fieldbyname('schename').asstring;
for i:=0 to 4 do
begin
if not varisnull(aqy1.fieldbyname('gotime'+inttostr(i+1)).value) then
datamod.ADOchangesche.FieldByName('gotime'+inttostr(i+1)).value:=aqy1.fieldbyname('gotime'+inttostr(i+1)).value;
if not varisnull(aqy1.fieldbyname('outtime'+inttostr(i+1)).value) then
datamod.adochangesche.fieldbyname('outtime'+inttostr(i+1)).value:=aqy1.fieldbyname('outtime'+inttostr(i+1)).value;
if not varisnull(aqy1.fieldbyname('decrease'+inttostr(i+1)).value) then
datamod.adochangesche.fieldbyname('decrease'+inttostr(i+1)).value:=aqy1.fieldbyname('decrease'+inttostr(i+1)).value;
if not varisnull(aqy1.fieldbyname('daytime'+inttostr(i+1)).value) then
datamod.adochangesche.fieldbyname('daytime'+inttostr(i+1)).value:=aqy1.fieldbyname('daytime'+inttostr(i+1)).value;
if not varisnull(aqy1.fieldbyname('add'+inttostr(i+1)).value) then
datamod.adochangesche.fieldbyname('add'+inttostr(i+1)).value:=aqy1.fieldbyname('add'+inttostr(i+1)).value;
if not varisnull(aqy1.fieldbyname('continue'+inttostr(i+1)).value) then
datamod.adochangesche.fieldbyname('continue'+inttostr(i+1)).value:=aqy1.fieldbyname('continue'+inttostr(i+1)).value;
if not varisnull(aqy1.fieldbyname('ot'+inttostr(i+1)).value) then
datamod.adochangesche.fieldbyname('ot'+inttostr(i+1)).value:=aqy1.fieldbyname('ot'+inttostr(i+1)).value;
end;
end;
end;
procedure Tformchangetime.FormActivate(Sender: TObject);
begin
dbcombobox1.Items.Clear;
formchangetime.Update;
end;
procedure Tformchangetime.FormCreate(Sender: TObject);
begin
fieldsum:=0;
datetimepicker3.Date:=date;
datetimepicker4.Date:=date;
end;
procedure Tformchangetime.DBComboBox1Enter(Sender: TObject);
begin
dbcombobox1.Items.Clear; //用新的开始日期从班次主档选取有效的
aqy1.Close;
aqy1.Connection :=Datamod.Database1;
aqy1.SQL.Clear; //1,10号,8号是开始日期,应该选1号的班次
aqy1.SQL.Add('select * from atd01010 a where effectdate=(select max(effectdate) from atd01010 where scheno=a.scheno and effectdate<'''+DbEdit1.text+''')order by scheno ');
aqy1.Open;
aqy1.First;
while not aqy1.eof do
begin
dbcombobox1.Items.Add (aqy1.fieldbyname('scheno').asstring);
aqy1.next;
end;
end;
procedure Tformchangetime.DBComboBox1Change(Sender: TObject);
var qry:tadoquery;
begin
qry:=tadoquery.Create(self);
qry.Connection:=datamod.Database1;
qry.Close;
qry.SQL.Clear;
qry.SQL.Text:='select schename from atd01010 where scheno='''+dbcombobox1.Text+'''';
qry.Open;
dbedit26.Text:=qry.fieldbyname('schename').asstring;
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?