📄 cwa550_04.pas.svn-base
字号:
unit Cwa550_04;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Bas100_01, StdCtrls, Buttons, ExtCtrls, Db, wwdbdatetimepicker, ADODB,
Menus;
type
TCwa550_04Form = class(TBas100_01Form)
bbtnOk: TBitBtn;
bbtnExit: TBitBtn;
rbCheck: TRadioButton;
rbUnCheck: TRadioButton;
Bevel1: TBevel;
Label1: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
dtStartDate: TwwDBDateTimePicker;
dtEndDate: TwwDBDateTimePicker;
cbDepart: TComboBox;
edtFromEmpID: TEdit;
SpeedButton1: TSpeedButton;
edtToEmpID: TEdit;
SpeedButton2: TSpeedButton;
qryHrm100: TADOQuery;
qryHrm150: TADOQuery;
qryHrm150H150_001: TAutoIncField;
qryHrm150H150_002: TStringField;
qryHrm150H150_003: TStringField;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure bbtnOkClick(Sender: TObject);
procedure bbtnExitClick(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure edtFromEmpIDKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure edtToEmpIDKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
procedure SetInterface;
{ Private declarations }
public
{ Public declarations }
end;
var
Cwa550_04Form: TCwa550_04Form;
implementation
uses CommFun, SYSDATA, HwSelData;
{$R *.DFM}
//考勤数据审核
// AFlag: 标识(1=审核,0=反审核)
// ADeptNo: 部门电脑编号
// AFromEmpID: 起始员工编号
// AToEmpID: 结束员工编号
// AStartDate: 起始日期
// AEndDate: 结束日期
procedure CheckAttend(AFlag:Boolean;ADeptNo:Integer;AFromEmpID,AToEmpID:string;AStartDate,AEndDate:TDateTime);
var
AYear,AMonth:Integer;
begin
if AFromEmpID='' then AFromEmpID:=GetValue('select min(H150_002) from HRM150');
if AToEmpID='' then AToEmpID:=GetValue('select max(H150_002) from HRM150');
if AStartDate=0 then AStartDate:=Date;
if AEndDate=0 then AEndDate:=Date;
if AFromEmpID>AToEmpID then
begin
ShowMsg('UMS10000060'); //起始员工编号大于截止员工编号
Abort;
end;
if AStartDate>AEndDate then
begin
ShowMsg('UMS10000044'); //起始日期不能大于结束日期
Abort;
end;
//取得期段资料
GetPeriod(AStartDate,AEndDate,AYear,AMonth);
if ADeptNo=0 then //所有部门
begin
//修改考勤汇总表
SYSDM.qryQuery.Close;
SYSDM.qryQuery.SQL.Clear;
SYSDM.qryQuery.SQL.Add('update CWA550A set C550A_006='+GetBoolean(AFlag));
SYSDM.qryQuery.SQL.Add('where C550A_003 in (select H150_001 from HRM150 where H150_002>='+''''+AFromEmpID+''''+' and H150_002<='+''''+AToEmpID+''''+') and');
SYSDM.qryQuery.SQL.Add(' C550A_001='+IntToStr(AYear)+' and C550A_002='+IntToStr(AMonth));
SYSDM.qryQuery.ExecSQL;
//修改考勤明细表
SYSDM.qryQuery.Close;
SYSDM.qryQuery.SQL.Clear;
SYSDM.qryQuery.SQL.Add('update CWA550B set C550B_007='+GetBoolean(AFlag));
SYSDM.qryQuery.SQL.Add('where C550B_002 in (select H150_001 from HRM150 where H150_002>='+''''+AFromEmpID+''''+' and H150_002<='+''''+AToEmpID+''''+') and');
SYSDM.qryQuery.SQL.Add(' C550B_001>='+GetDateString(AStartDate)+' and C550B_001<='+GetDateString(AEndDate));
SYSDM.qryQuery.ExecSQL;
end else
begin
//修改考勤汇总表
SYSDM.qryQuery.Close;
SYSDM.qryQuery.SQL.Clear;
SYSDM.qryQuery.SQL.Add('update CWA550A set C550A_006='+GetBoolean(AFlag));
SYSDM.qryQuery.SQL.Add('where C550A_003 in (select H150_001 from HRM150 where H150_002>'+''''+AFromEmpID+''''+' and H150_002<='+''''+AToEmpID+''''+' and H150_005='+IntToStr(ADeptNo)+') and');
SYSDM.qryQuery.SQL.Add(' C550A_001='+IntToStr(AYear)+' and C550A_002='+IntToStr(AMonth));
SYSDM.qryQuery.ExecSQL;
//修改考勤明细表
SYSDM.qryQuery.Close;
SYSDM.qryQuery.SQL.Clear;
SYSDM.qryQuery.SQL.Add('update CWA550B set C550B_007='+GetBoolean(AFlag));
SYSDM.qryQuery.SQL.Add('where C550B_002 in (select H150_001 from HRM150 where H150_002>='+''''+AFromEmpID+''''+' and H150_002<='+''''+AToEmpID+''''+' and H150_005='+IntToStr(ADeptNo)+') and');
SYSDM.qryQuery.SQL.Add(' C550B_001>='+GetDateString(AStartDate)+' and C550B_001<='+GetDateString(AEndDate));
SYSDM.qryQuery.ExecSQL;
end;
end;
procedure TCwa550_04Form.SetInterface;
begin
Caption:=GetDBString('CWA55004001'); //审核
rbCheck.Caption:=GetDBString('CWA55004002'); //审核
rbUnCheck.Caption:=GetDBString('CWA55004003'); //反审核
Label1.Caption:=GetDBString('CWA55004004'); //部门编号
Label3.Caption:=GetDBString('CWA55004005'); //员工编号
Label4.Caption:=GetDBString('CWA55004006'); //至
Label5.Caption:=GetDBString('CWA55004007'); //日期范围
Label6.Caption:=GetDBString('CWA55004006'); //至
bbtnOk.Caption:=GetDBString('CWA55004008'); //确定(&O)
bbtnExit.Caption:=GetDBString('CWA55004009'); //退出(&X)
qryHrm150H150_002.DisplayLabel:=GetDBString('CWA55004010'); //员工编号
qryHrm150H150_003.DisplayLabel:=GetDBString('CWA55004011'); //员工姓名
end;
procedure TCwa550_04Form.FormCreate(Sender: TObject);
begin
inherited;
qryHrm150.Close;
qryHrm150.SQL.Clear;
if not ASuper then
qryHrm150.SQL.Add('select H150_001,H150_002,H150_003 from HRM150 where H150_005 in (select S500C_002 from SYS500C where S500C_003=''DEP'' and S500C_004='+GetBoolean(True)+' and S500C_001='+IntToStr(AUserID)+') order by H150_002')
else
qryHrm150.SQL.Add('select H150_001,H150_002,H150_003 from HRM150 order by H150_002');
qryHrm150.Open;
//部门资料
cbDepart.Items.Clear;
cbDepart.Items.Add(GetDBString('COM00004007')); //所有部门
qryHrm100.Close;
qryHrm100.SQL.Clear;
qryHrm100.SQL.Add('select * from HRM100 where H100_004='+GetBoolean(True));
qryHrm100.Open;
while not qryHrm100.Eof do
begin
cbDepart.Items.Add(qryHrm100.FieldByName('H100_002').AsString);
qryHrm100.Next;
end;
cbDepart.ItemIndex:=0;
dtStartDate.Date:=Date;
dtEndDate.Date:=Date;
//设置界面信息
SetInterface;
end;
procedure TCwa550_04Form.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
inherited;
//
end;
procedure TCwa550_04Form.bbtnOkClick(Sender: TObject);
var
ADeptNo:Integer;
ADeptName,AFromEmpID,AToEmpID:string;
AStartDate,AEndDate:TDateTime;
begin
inherited;
//确定
ADeptName:=cbDepart.Text;
AFromEmpID:=edtFromEmpID.Text;
AToEmpID:=edtToEmpID.Text;
AStartDate:=dtStartDate.Date;
AEndDate:=dtEndDate.Date;
if cbDepart.ItemIndex=0 then
ADeptNo:=0
else
ADeptNo:=GetValue('select H100_001 from HRM100 where H100_002='+''''+ADeptName+'''');
CheckAttend(rbCheck.Checked,ADeptNo,AFromEmpID,AToEmpID,AStartDate,AEndDate);
ShowMsg('UMS10000083'); //审核或反审核处理成功
Close;
end;
procedure TCwa550_04Form.bbtnExitClick(Sender: TObject);
begin
inherited;
//退出
Close;
end;
procedure TCwa550_04Form.SpeedButton1Click(Sender: TObject);
begin
inherited;
//员工编号查询1
if not edtFromEmpID.Focused then edtFromEmpID.SetFocus;
HwSelDataForm:=THwSelDataForm.Create(Application);
HwSelDataForm.OpenSelData(qryHrm150,nil);
if HwSelDataForm.ShowModal=1 then
begin
edtFromEmpID.Text:=qryHrm150.FieldByName('H150_002').AsString;
end;
end;
procedure TCwa550_04Form.SpeedButton2Click(Sender: TObject);
begin
inherited;
//员工编号查询2
if not edtToEmpID.Focused then edtToEmpID.SetFocus;
HwSelDataForm:=THwSelDataForm.Create(Application);
HwSelDataForm.OpenSelData(qryHrm150,nil);
if HwSelDataForm.ShowModal=1 then
begin
edtToEmpID.Text:=qryHrm150.FieldByName('H150_002').AsString;
end;
end;
procedure TCwa550_04Form.edtFromEmpIDKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
inherited;
if Key=vk_F4 then SpeedButton1.Click;
end;
procedure TCwa550_04Form.edtToEmpIDKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
inherited;
if Key=vk_F4 then SpeedButton2.Click;
end;
initialization
RegisterClass(TCwa550_04Form);
finalization
UnRegisterClass(TCwa550_04Form);
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -