changebcdefine.pas
来自「pasa人力资源考勤管理系统」· PAS 代码 · 共 314 行
PAS
314 行
unit changebcdefine;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Mask, RxLookup, CheckLst, ExtCtrls, DBCtrls, Db, ADODB, Gauges,
ComCtrls;
type
TFormchangebcdefine = class(TForm)
GroupBox2: TGroupBox;
RG1: TRadioGroup;
GroupBox3: TGroupBox;
RB1: TRadioButton;
RB2: TRadioButton;
Edit32: TEdit;
OK: TButton;
Cancel: TButton;
GroupBox1: TGroupBox;
MaskEdit3: TMaskEdit;
MaskEdit1: TMaskEdit;
Label4: TLabel;
Qrydept: TADOQuery;
Dsdept: TDataSource;
Panel1: TPanel;
Gauge1: TGauge;
Label9: TLabel;
Memo1: TMemo;
Label5: TLabel;
ComboBox1: TComboBox;
ComboBox2: TComboBox;
DateTimePicker1: TDateTimePicker;
DateTimePicker2: TDateTimePicker;
MaskEdit2: TMaskEdit;
DateTimePicker3: TDateTimePicker;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure RG1Click(Sender: TObject);
procedure RB1Click(Sender: TObject);
procedure ComLookNameChange(Sender: TObject);
procedure Edit32KeyPress(Sender: TObject; var Key: Char);
procedure FormKeyPress(Sender: TObject; var Key: Char);
procedure CancelClick(Sender: TObject);
procedure OKClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure FormActivate(Sender: TObject);
procedure ComboBox1Exit(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure DateTimePicker1Change(Sender: TObject);
procedure DateTimePicker2Change(Sender: TObject);
procedure MaskEdit3Exit(Sender: TObject);
procedure DateTimePicker3Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Formchangebcdefine: TFormchangebcdefine;
implementation
uses changebc, datamol, main;
{$R *.DFM}
procedure TFormchangebcdefine.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
formchangebcdefine:=nil;
action:=cafree;
end;
procedure TFormchangebcdefine.RG1Click(Sender: TObject);
begin
Case RG1.ItemIndex of
0:begin
GroupBox3.Enabled:=False;
end;
1:begin
GroupBox3.Enabled:=True;
Edit32.Visible:=False;
ComLookName.Visible:=True;
end;
2:begin
GroupBox3.Enabled:=True;
Edit32.Visible:=True;
ComLookName.Visible:=False;
end;
end;
end;
procedure TFormchangebcdefine.RB1Click(Sender: TObject);
var
i:integer;
begin
For i:=0 to RxCheck1.Items.Count-1 do
if Sender=rb1 then
RxCheck1.Checked[i]:=true
else
RxCheck1.Checked[i]:=False;
end;
procedure TFormchangebcdefine.ComLookNameChange(Sender: TObject);
begin
with Datamod do
begin
Query1.Close ;
Query1.SQL.Text :='Select * From per24010 where deptno='+''''+ComLookName.Value +''''+' order by workno';
Query1.Prepared ;
Query1.Open ;
Query1.First ;
RxCheck1.Items.Clear ;
while not Query1.Eof do
begin
if length(Query1.FieldByname('name').AsString)=4 then
Rxcheck1.Items.Add(Query1.FieldByname('workno').AsString+' '+Query1.FieldByname('name').AsString+
' '+Query1.FieldByname('cardno').AsString)
else
Rxcheck1.Items.Add(Query1.FieldByname('workno').AsString+' '+Query1.FieldByname('name').AsString+
' '+Query1.FieldByname('cardno').AsString);
Rxcheck1.Checked[Rxcheck1.Items.Count -1]:=true;
Query1.Next ;
end;
Query1.Close ;
END;
end;
procedure TFormchangebcdefine.Edit32KeyPress(Sender: TObject; var Key: Char);
var
source:string;
begin
if key<>#13 then exit;
with Datamod do
begin
Query1.Close ;
Query1.SQL.Text :='Select * From per24010 where workno='+''''+Edit32.Text+'''';
Query1.Prepared ;
Query1.Open ;
if Query1.Recordcount=0 then
Application.MessageBox(PChar('你输入的工号不存在!请重新输入!'),'工号错误',
mb_iconError)
else
begin
if length(Query1.FieldByname('name').AsString)=4 then
source:=Query1.FieldByname('workno').AsString+' '+Query1.FieldByname('name').AsString+
' '+Query1.FieldByname('cardno').AsString
else
source:=Query1.FieldByname('workno').AsString+' '+Query1.FieldByname('name').AsString+
' '+Query1.FieldByname('cardno').AsString;
if RxCheck1.Items.IndexOf(source)=-1 then
begin
Rxcheck1.Items.Add(Source);
Rxcheck1.Checked[RxCheck1.Items.Count-1]:=True;
end;
end;
end;//begin
Edit32.Text:='';
Edit32.SetFocus;
end;
procedure TFormchangebcdefine.FormKeyPress(Sender: TObject; var Key: Char);
begin
if activecontrol=edit32 then exit;
if key=#13 then
begin
key:=#0;
selectnext(activecontrol,true,true);
end;
end;
procedure TFormchangebcdefine.CancelClick(Sender: TObject);
begin
close;
end;
procedure TFormchangebcdefine.OKClick(Sender: TObject);
var
i:integer;
hanGh:string;
ygbhcd:integer;
begin
if RxCheck1.Items.Count<=0 then Exit;
cursor:=crHourGlass;
if (Trim(combobox1.Text)<>'') and (Trim(combobox2.text)<>'') then
begin
with datamod do
begin
Qrychangebc.DisableControls;
Qrychangebc.Close ;
Gauge1.Enabled :=True;
Gauge1.Visible :=True;
Gauge1.MaxValue:=RxCheck1.Items.Count +1;
Gauge1.Progress :=0;
ygbhcd:=Datamod.Qrypublicworknolength.AsInteger;
For i:=0 to RxCheck1.Items.Count -1 do
begin
hanGh:=Rxcheck1.items[i];
hanGh:=Copy(hanGh,1,ygbhcd );
if Rxcheck1.Checked[i] then
begin
Query1.Close ;
Query1.SQL.Text :='select * from atd08010 where workno='''+hangh+''' and '+
'startrq='''+maskedit3.Text+''' and endrq='''+maskedit1.Text+''' ';
Query1.Open;
if not Query1.Eof then
begin
Application.MessageBox(pchar('发现工号为:'+hangh+'的员工已进行过换班处理!!'),'换班动作重复',mb_iconquestion);
end else
if Query1.eof then
begin
ADOQuery1.Close ;
ADOQuery1.SQL.Text :='Insert into atd08010(workno,cardno,rq,Startrq,Endrq,'+
'nowsche,latesche,operator,memo) Select per24010.workno,per24010.cardno,'''+maskedit2.text+''','+
''''+maskedit3.Text+''','''+maskedit1.Text+''','+
''''+combobox2.text+''','''+combobox1.text+''','''+pubworkname+''','''+memo1.Text+''' '+
' from per24010 where per24010.workno='''+hanGh+'''';
ADOQuery1.ExecSQL;
end;
end;
Gauge1.AddProgress(1);
end;
Qrychangebc.Open ;
Qrychangebc.EnableControls;
end;//with
RXCheck1.Items.Clear;
Gauge1.Visible:=False;
end else//if
begin
Application.MessageBox('请输入换班前后的班次代号!','输入班次代号错误',MB_OK+MB_ICONWARNING);
end;
cursor:=crdefault;
end;
procedure TFormchangebcdefine.FormCreate(Sender: TObject);
begin
datamod.qrypublic.open;
end;
procedure TFormchangebcdefine.FormCloseQuery(Sender: TObject;
var CanClose: Boolean);
begin
datamod.qrypublic.Close;
end;
procedure TFormchangebcdefine.FormActivate(Sender: TObject);
begin
maskedit3.setfocus;
width:=499;
height:=407;
Maskedit3.text:=formatdatetime('yyyy/mm/dd',now);
Maskedit1.text:=formatdatetime('yyyy/mm/dd',now);
Maskedit2.text:=formatdatetime('yyyy/mm/dd',now);
end;
procedure TFormchangebcdefine.ComboBox1Exit(Sender: TObject);
begin
if trim((Sender as TCombobox).text)<>'' then
begin //if
with datamod do
begin //datamod
Query1.Close;
Query1.SQL.Text:='Select * from atd01010 where scheno='''+(Sender as TCombobox).text+''' ';
Query1.Open;
if Query1.Eof then
begin
application.messagebox('你输入了一个不存在的班次,请重新输入!','班次错误',mb_ok+mb_iconinformation);
(Sender as TCombobox).Clear;
(Sender as TCombobox).SetFocus;
end;
end; //datamod
end; //if
end;
procedure TFormchangebcdefine.FormShow(Sender: TObject);
begin
with datamod do
begin
qrybc.Open;
qrybc.first;
combobox1.Items.Clear;
while not qrybc.eof do
begin
combobox1.Items.Add(qrybcscheno.AsString);
combobox2.Items.Add(qrybcscheno.asstring);
qrybc.next;
end;
end;
end;
procedure TFormchangebcdefine.DateTimePicker1Change(Sender: TObject);
begin
Maskedit3.text:=formatdatetime('yyyy/mm/dd',datetimepicker1.date);
end;
procedure TFormchangebcdefine.DateTimePicker2Change(Sender: TObject);
begin
Maskedit1.text:=formatdatetime('yyyy/mm/dd',datetimepicker2.date);
end;
procedure TFormchangebcdefine.MaskEdit3Exit(Sender: TObject);
begin
Maskedit1.text:=maskedit3.text;
end;
procedure TFormchangebcdefine.DateTimePicker3Change(Sender: TObject);
begin
Maskedit2.text:=formatdatetime('yyyy/mm/dd',datetimepicker3.date);
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?