📄 kqjl.pas
字号:
unit Kqjl;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, DB, Grids, DBGrids, ActnList, XPStyleActnCtrls,
ActnMan, ComCtrls, KqglCommon, dmKqgl, DBCtrls, Mask, DBTables;
type
TKqjlForm = class(TForm)
dsYgxx: TDataSource;
Splitter: TSplitter;
pnlKqjl: TPanel;
pnlKqrq: TPanel;
lblKqrq: TLabel;
dtpKqrq: TDateTimePicker;
grpCq: TGroupBox;
btSave: TButton;
grpQt: TGroupBox;
lblJb: TLabel;
chkCQ: TCheckBox;
chkCD: TCheckBox;
chkZT: TCheckBox;
edtJB: TEdit;
chkKG: TCheckBox;
chkXJ: TCheckBox;
chkQJ: TCheckBox;
chkCC: TCheckBox;
btDel: TButton;
dbYgxx: TDBGrid;
procedure FormDestroy(Sender: TObject);
procedure dsYgxxDataChange(Sender: TObject; Field: TField);
procedure dtpKqrqChange(Sender: TObject);
procedure btSaveClick(Sender: TObject);
procedure btDelClick(Sender: TObject);
procedure edtJBExit(Sender: TObject);
procedure edtJBChange(Sender: TObject);
procedure chkCQClick(Sender: TObject);
procedure chkCDClick(Sender: TObject);
procedure chkZTClick(Sender: TObject);
procedure chkKGClick(Sender: TObject);
procedure chkXJClick(Sender: TObject);
procedure chkQJClick(Sender: TObject);
procedure chkCCClick(Sender: TObject);
private
{ Private declarations }
FCurrBH: string;
FModified: Boolean;
FdmKqgl: TdmKqgl;
procedure GetKqjl;
procedure SetControls(ACQ, ACD, AZT, AKG, AXJ, AQJ, ACC: Boolean;
AJbsj: Integer = 1);
public
{ Public declarations }
constructor Create(AOwner: TComponent; AdmKqgl: TdmKqgl); reintroduce;
end;
implementation
{$R *.dfm}
procedure TKqjlForm.GetKqjl;
begin
with FdmKqgl.qryKqjl do
begin
Sql.Text := 'Select * from Kqjl where Ygbh = ' + QuotedStr(FCurrBH) +
' and Kqrq = #' + DatetoStr(dtpKqrq.Date) + '#';
Open;
if Recordcount <> 0 then
begin
chkCQ.Checked := FieldByName('CQ').AsBoolean;
chkCD.Checked := FieldByName('CD').AsBoolean; ;
chkZT.Checked := FieldByName('ZT').AsBoolean; ;
chkKG.Checked := FieldByName('KG').AsBoolean;;
chkXJ.Checked := FieldByName('XJ').AsBoolean; ;
chkQJ.Checked := FieldByName('QJ').AsBoolean;;
chkCC.Checked := FieldByName('CC').AsBoolean;
edtJB.Text := FieldByName('JBSJ').AsString;
if edtJB.Text = '' then edtJB.Text := '0';
end
else begin
chkCQ.Checked := False;
chkCD.Checked := False;
chkZT.Checked := False;
chkKG.Checked := False;
chkXJ.Checked := False;
chkQJ.Checked := False;
chkCC.Checked := False;
edtJB.Text := '0';
end;
Close;
end;
FModified := False;
end;
procedure TKqjlForm.dsYgxxDataChange(Sender: TObject; Field: TField);
begin
if FModified and
(FCurrBH <> dsYgxx.DataSet.FieldByName('Ygbh').AsString) then
btSave.Click;
FCurrBH := dsYgxx.DataSet.FieldByName('Ygbh').AsString;
GetKqjl;
end;
procedure TKqjlForm.dtpKqrqChange(Sender: TObject);
begin
if FModified then
btSave.Click;
GetKqjl;
end;
procedure TKqjlForm.FormDestroy(Sender: TObject);
begin
with FdmKqgl do
if qryCommon.Active then qryCommon.Close;
end;
procedure TKqjlForm.btSaveClick(Sender: TObject);
begin
if not FModified then exit;
with FdmKqgl.qryKqjl do
begin
// 查数据库中有没有当前日期当前员工的考勤记录,如果没有则添加,如果有则更新。
Close;
Sql.Text := 'Select * from Kqjl where Ygbh = ' + QuotedStr(FCurrBH) +
' and Kqrq = #' + DatetoStr(dtpKqrq.Date) + '#';
Open;
if Recordcount = 0 then
begin
Close;
sql.Text := 'Insert Into Kqjl (Ygbh, Kqrq, CQ, CD, ZT, KG, XJ, QJ, CC, JBSJ) ' +
'Values ( ' + QuotedStr(FCurrBH) + ', #' + DatetoStr(dtpKqrq.Date) + '#, ' +
BoolToStr(chkCQ.Checked) + ', ' + BoolToStr(chkCD.Checked) + ', ' +
BoolToStr(chkZT.Checked) + ', ' + BoolToStr(chkKG.Checked) + ', ' +
BoolToStr(chkXJ.Checked) + ', ' + BoolToStr(chkQJ.Checked) + ', ' +
BoolToStr(chkCC.Checked) + ', ' + edtJB.Text + ' )';
ExecSQL;
end
else if Recordcount = 1 then
begin
Close;
sql.Text := 'Update Kqjl set CQ = ' + BoolToStr(chkCQ.Checked) + ', CD = ' +
BoolToStr(chkCQ.Checked) + ', ZT = ' + BoolToStr(chkCQ.Checked) + ', KG = ' +
BoolToStr(chkCQ.Checked) + ', XJ = ' + BoolToStr(chkCQ.Checked) + ', QJ = ' +
BoolToStr(chkCQ.Checked) + ', CC = ' + BoolToStr(chkCQ.Checked) + ', JBSJ = ' +
edtJB.Text + ' where Ygbh = ' + QuotedStr(FCurrBH) + ' and Kqrq = #' +
DatetoStr(dtpKqrq.Date) + '#';
ExecSQL;
end;
Close;
end;
FModified := False;
end;
procedure TKqjlForm.edtJBChange(Sender: TObject);
begin
if strtoint(edtJb.Text) <> 0 then
SetControls(True, True, True, False, False, False, False);
FModified := True;
end;
procedure TKqjlForm.chkCQClick(Sender: TObject);
begin
if chkCq.Checked then
SetControls(True, True, True, False, False, False, False);
FModified := True;
end;
procedure TKqjlForm.chkCDClick(Sender: TObject);
begin
if chkCd.Checked then
SetControls(True, True, True, False, False, False, False);
FModified := True;
end;
procedure TKqjlForm.chkZTClick(Sender: TObject);
begin
if chkZt.Checked then
SetControls(True, True, True, False, False, False, False);
FModified := True;
end;
procedure TKqjlForm.chkKGClick(Sender: TObject);
begin
if chkKg.Checked then
SetControls(False, False, False, True, False, False, False, 0);
FModified := True;
end;
procedure TKqjlForm.chkXJClick(Sender: TObject);
begin
if chkXj.Checked then
SetControls(False, False, False, False, True, False, False, 0);
FModified := True;
end;
procedure TKqjlForm.chkQJClick(Sender: TObject);
begin
if chkQj.Checked then
SetControls(False, False, False, False, False, True, False, 0);
FModified := True;
end;
procedure TKqjlForm.chkCCClick(Sender: TObject);
begin
if chkCc.Checked then
SetControls(False, False, False, False, False, False, True, 0);
FModified := True;
end;
procedure TKqjlForm.SetControls(ACQ, ACD, AZT, AKG, AXJ, AQJ, ACC: Boolean;
AJbsj: integer = 1);
begin
if not ACQ then chkCq.Checked := False;
if not ACD then chkCd.Checked := False;
if not AZT then chkZt.Checked := False;
if not AKG then chkKg.Checked := False;
if not AXJ then chkXJ.Checked := False;
if not AQJ then chkQj.Checked := False;
if not ACC then chkCc.Checked := False;
if Ajbsj = 0 then edtJb.Text := '0';
end;
constructor TKqjlForm.Create(AOwner: TComponent; AdmKqgl: TdmKqgl);
begin
FdmKqgl := AdmKqgl;
FCurrBH := '';
FModified := False;
inherited Create(AOwner);
with FdmKqgl do
begin
qryCommon.SQL.Text := 'Select * from Ygxx';
qryCommon.Open;
dsYgxx.DataSet := qryCommon;
end;
end;
procedure TKqjlForm.btDelClick(Sender: TObject);
begin
with FdmKqgl.qryKqjl do
begin
Close;
sql.Text := 'Delete from Kqjl where Ygbh = ' + QuotedStr(FCurrBH) +
' and Kqrq = #' + DatetoStr(dtpKqrq.Date) + '#';
ExecSQL;
Close;
end;
end;
procedure TKqjlForm.edtJBExit(Sender: TObject);
begin
if Trim(edtJb.Text) = '' then
edtJb.Text := '0'
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -