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

📄 hrm510_01.pas.svn-base

📁 这是一个功能齐全的,代码完整的ERP企业信息管理系统,现在上传和大家分享
💻 SVN-BASE
字号:
unit Hrm510_01;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Db,
  Menus, Grids, ComCtrls, ExtCtrls, ToolWin,
  wwdbdatetimepicker, StdCtrls, Mask, DBCtrls, Buttons,
  Bas200_01, ADODB,
  dxExEdtr, dxCntner, dxTL, dxDBCtrl, dxDBGrid, dxDBTLCl,
  dxGrClms, ActnList, wwfltdlg, wwDialog, Wwlocate, Wwintl;

type
  THrm510_01Form = class(TBas200_01Form)
    Label1: TLabel;
    DBEdit2: TDBEdit;
    Label3: TLabel;
    Label4: TLabel;
    DBEdit4: TDBEdit;
    Label5: TLabel;
    Label6: TLabel;
    DBEdit6: TDBEdit;
    wwDBDateTimePicker1: TwwDBDateTimePicker;
    DBEdit1: TDBEdit;
    DBEdit3: TDBEdit;
    Edit2: TEdit;
    SpeedButton1: TSpeedButton;
    Edit1: TEdit;
    SpeedButton2: TSpeedButton;
    qryHrm130: TADOQuery;
    qryHrm130H130_001: TAutoIncField;
    qryHrm130H130_002: TStringField;
    qryHrm130H130_003: TStringField;
    qryHrm150: TADOQuery;
    qryHrm150H150_001: TAutoIncField;
    qryHrm150H150_002: TStringField;
    qryHrm150H150_003: TStringField;
    qryHrm150H130_003: TStringField;
    qryHrm150H150_012: TIntegerField;
    ADOQuery1H510_001: TIntegerField;
    ADOQuery1H510_002: TDateTimeField;
    ADOQuery1H510_003: TIntegerField;
    ADOQuery1H510_004: TIntegerField;
    ADOQuery1H510_005: TStringField;
    ADOQuery1H130_002: TStringField;
    ADOQuery1H130_003: TStringField;
    ADOQuery1H130_002A: TStringField;
    ADOQuery1H130_003A: TStringField;
    ADOQuery1H150_002: TStringField;
    ADOQuery1H150_003: TStringField;
    dxDBGrid1H150_002: TdxDBGridLookupColumn;
    dxDBGrid1H150_003: TdxDBGridLookupColumn;
    dxDBGrid1H510_002: TdxDBGridDateColumn;
    dxDBGrid1H130_002: TdxDBGridLookupColumn;
    dxDBGrid1H130_003: TdxDBGridLookupColumn;
    dxDBGrid1H130_002A: TdxDBGridLookupColumn;
    dxDBGrid1H130_003A: TdxDBGridLookupColumn;
    dxDBGrid1H510_005: TdxDBGridMaskColumn;
    procedure FormCreate(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure Edit2Exit(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
    procedure Edit1Exit(Sender: TObject);
    procedure Edit2KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Edit1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure qryHrm150H150_012GetText(Sender: TField; var Text: String;
      DisplayText: Boolean);
    procedure ActInsertExecute(Sender: TObject);
    procedure ActSaveExecute(Sender: TObject);
    procedure ADOQuery1AfterScroll(DataSet: TDataSet);
  private
    AStatus:array[1..2] of string;
    { Private declarations }
  public
    procedure SetInterface; override;
    procedure ReportGetValue(const ParName: String; var ParValue: Variant); override;
    { Public declarations }
  end;

var
  Hrm510_01Form: THrm510_01Form;

implementation

uses SYSDATA, CommFun, HwSelData;

{$R *.DFM}

procedure THrm510_01Form.SetInterface;
begin
  inherited;
  Caption:=GetDBString('HRM51001001');  //员工状态调整
  Label1.Caption:=GetDBString('HRM51001002');  //员工编号
  Label4.Caption:=GetDBString('HRM51001010');  //原先状态
  Label3.Caption:=GetDBString('HRM51001004');  //调整日期
  Label5.Caption:=GetDBString('HRM51001007');  //现在状态
  Label6.Caption:=GetDBString('HRM51001009');  //备注
  ADOQuery1H150_002.DisplayLabel:=GetDBString('HRM51001002');  //员工编号
  ADOQuery1H150_003.DisplayLabel:=GetDBString('HRM51001003');  //员工姓名
  ADOQuery1H510_002.DisplayLabel:=GetDBString('HRM51001004');  //调整日期
  ADOQuery1H130_002.DisplayLabel:=GetDBString('HRM51001010');  //原先状态
  ADOQuery1H130_003.DisplayLabel:=GetDBString('HRM51001011');  //原状态名称
  ADOQuery1H130_002A.DisplayLabel:=GetDBString('HRM51001007');  //现在状态
  ADOQuery1H130_003A.DisplayLabel:=GetDBString('HRM51001008');  //现状态名称
  ADOQuery1H510_005.DisplayLabel:=GetDBString('HRM51001009');  //备注

  qryHrm150H150_002.DisplayLabel:=GetDBString('HRM51001002');  //员工编号
  qryHrm150H150_003.DisplayLabel:=GetDBString('HRM51001003');  //员工姓名
  qryHrm150H150_012.DisplayLabel:=GetDBString('HRM51001005');  //员工状态
  qryHrm130H130_002.DisplayLabel:=GetDBString('HRM51001012');  //状态编号
  qryHrm130H130_003.DisplayLabel:=GetDBString('HRM51001006');  //状态名称

  AStatus[1]:=GetDBString('HRM51001016');  //在职
  AStatus[2]:=GetDBString('HRM51001017');  //离职
end;

procedure THrm510_01Form.FormCreate(Sender: TObject);
begin
  inherited;
  //设置界面信息
  SetInterface;
end;

procedure THrm510_01Form.SpeedButton1Click(Sender: TObject);
begin
  inherited;
//员工编号查询
  HwSelDataForm:=THwSelDataForm.Create(Application);
  HwSelDataForm.OpenSelData(qryHrm150,nil);
  if HwSelDataForm.ShowModal=1 then
  begin
    ADOQuery1.Edit;
    ADOQuery1H510_001.AsString:=qryHrm150H150_001.AsString;
    ADOQuery1H510_003.AsString:=qryHrm150H150_012.AsString;
    Edit2.Text:=qryHrm150H150_002.AsString;
  end;
end;

procedure THrm510_01Form.Edit2Exit(Sender: TObject);
begin
  inherited;
  if qryHrm150.Locate('H150_002',Edit2.Text,[loCaseInsensitive]) then
  begin
    ADOQuery1.Edit;
    ADOQuery1H510_001.AsString:=qryHrm150H150_001.AsString;
    ADOQuery1H510_003.AsString:=qryHrm150H150_012.AsString;
  end else
  begin
    ShowMsg('UMS10000042');  //无效的员工编号
    Abort;
  end;
end;

procedure THrm510_01Form.SpeedButton2Click(Sender: TObject);
begin
  inherited;
//员工状态查询
  HwSelDataForm:=THwSelDataForm.Create(Application);
  HwSelDataForm.OpenSelData(qryHrm130,nil);
  if HwSelDataForm.ShowModal=1 then
  begin
    ADOQuery1.Edit;
    ADOQuery1H510_004.AsString:=qryHrm130H130_001.AsString;
    Edit1.Text:=qryHrm130H130_002.AsString;
  end;
end;

procedure THrm510_01Form.Edit1Exit(Sender: TObject);
begin
  inherited;
  if qryHrm130.Locate('H130_002',Edit1.Text,[loCaseInsensitive]) then
  begin
    ADOQuery1.Edit;
    ADOQuery1H510_004.AsString:=qryHrm130H130_001.AsString;
  end else
  begin
    ShowMsg('UMS10000043');  //无效的员工状态
    Abort;
  end;
end;

procedure THrm510_01Form.Edit2KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  inherited;
  if Key=vk_F4 then SpeedButton1.Click;
end;

procedure THrm510_01Form.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  inherited;
  if Key=vk_F4 then SpeedButton2.Click;
end;

procedure THrm510_01Form.ReportGetValue(const ParName: String;
  var ParValue: Variant);
begin
  inherited;
  if ParName='H150_002' then ParValue:=GetDBString('HRM51001002')  //员工编号
  else if ParName='H150_003' then ParValue:=GetDBString('HRM51001003')  //员工姓名
  else if ParName='H510_002' then ParValue:=GetDBString('HRM51001004')  //调整日期
  else if ParName='H130_002' then ParValue:=GetDBString('HRM51001012')  //状态编号
  else if ParName='H130_003' then ParValue:=GetDBString('HRM51001004')  //调整日期
  else if ParName='H130_002A' then ParValue:=GetDBString('HRM51001012') //状态编号
  else if ParName='H130_003A' then ParValue:=GetDBString('HRM51001006') //状态名称
  else if ParName='H510_005' then ParValue:=GetDBString('HRM51001009')  //备注
  else if ParName='GROP_001' then ParValue:=GetDBString('HRM51001013')  //调动前
  else if ParName='GROP_002' then ParValue:=GetDBString('HRM51001014')  //调动后
end;

procedure THrm510_01Form.qryHrm150H150_012GetText(Sender: TField;
  var Text: String; DisplayText: Boolean);
begin
  inherited;
  case Sender.Value of
    1:Text:=AStatus[1];  //在职
    2:Text:=AStatus[2];  //离职
  end;
end;

procedure THrm510_01Form.ActInsertExecute(Sender: TObject);
begin
  inherited;
//新增
  ADOQuery1H510_002.Value:=Date;
end;

procedure THrm510_01Form.ActSaveExecute(Sender: TObject);
var
  ID:integer;
begin
//保存
  if trim(Edit2.Text)='' then
  begin
    ShowMsg('UMS10000071');  //员工编号不能为空
    Abort;
  end;

  if trim(Edit1.Text)='' then
  begin
    ShowMsg('UMS10000098');  //员工状态不能为空
    Abort;
  end;

  SYSDM.qryQuery.Close;
  SYSDM.qryQuery.SQL.Clear;
  SYSDM.qryQuery.SQL.Add('select 1 from HRM150 where H150_002='+''''+trim(Edit2.Text)+'''');
  SYSDM.qryQuery.Open;
  if SYSDM.qryQuery.IsEmpty then
  begin
    ShowMsg('UMS10000042');  //无效的员工编号
    Abort;
  end;

  SYSDM.qryQuery.Close;
  SYSDM.qryQuery.SQL.Clear;
  SYSDM.qryQuery.SQL.Add('select H130_001 from HRM130 where H130_002='+''''+ADOQuery1H130_002A.AsString+'''');
  SYSDM.qryQuery.Open;
  if SYSDM.qryQuery.IsEmpty then
  begin
    ShowMsg('UMS10000043');  //无效的员工状态
    Abort;
  end;
  ID:=SYSDM.qryQuery.Fields[0].Value;

  SYSDM.qryQuery.Close;
  SYSDM.qryQuery.SQL.Clear;
  SYSDM.qryQuery.SQL.Add('select 1 from HRM150 where H150_001='+ADOQuery1H510_001.AsString+' and H150_012='+IntToStr(ID));
  SYSDM.qryQuery.Open;
  if not SYSDM.qryQuery.IsEmpty then
  begin
    ShowMsg('UMS10000099');  //调整后的员工状态与调整前的员工状态相同
    Abort;
  end;
  try
    SYSDM.ADOC.BeginTrans;
    inherited;
    //更新员工资料中的员工状态
    SYSDM.qryQuery.Close;
    SYSDM.qryQuery.SQL.Clear;
    SYSDM.qryQuery.SQL.Add('update HRM150 set H150_012='+IntToStr(ID)+' where H150_002='+''''+ADOQuery1H150_002.Value+'''');
    SYSDM.qryQuery.ExecSQL;
    //调整后的员工状态=离职时,将该员工的工作日历删除
    if ID=2 then
    begin
      SYSDM.qryQuery.Close;
      SYSDM.qryQuery.SQL.Clear;
      SYSDM.qryQuery.SQL.Add('delete from CWA120 where C120_001='+ADOQuery1H510_001.AsString+' and C120_003>='+GetDateString(ADOQuery1H510_002.Value));
      SYSDM.qryQuery.ExecSQL;
    end;
    SYSDM.ADOC.CommitTrans;
  except
    SYSDM.ADOC.RollbackTrans;
    ShowMsg(SYSDM.ADOC.Errors[0].Description,1);
    Abort;
  end;
end;

procedure THrm510_01Form.ADOQuery1AfterScroll(DataSet: TDataSet);
begin
  inherited;
  if ADOQuery1.IsEmpty then
  begin
    Edit2.Text:='';
    Edit1.Text:='';
    Exit;
  end;
  if ADOQuery1.State in [dsEdit,dsInsert] then
  begin
    Edit2.Text:='';
    Edit1.Text:='';
    Exit;
  end
  else
  begin
    Edit2.Text:=ADOQuery1H150_002.Value;
    Edit1.Text:=ADOQuery1H130_002A.Value;
  end;
end;

initialization
  RegisterClass(THrm510_01Form);

finalization
  UnRegisterClass(THrm510_01Form);

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -