⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cwa550_04.pas.svn-base

📁 这是一个功能齐全的,代码完整的ERP企业信息管理系统,现在上传和大家分享
💻 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 + -