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

📄 pay510_02.pas.svn-base

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

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Bas100_01, StdCtrls, Mask, ExtCtrls, Buttons, Db,
  DBCtrls, wwdbdatetimepicker, ADODB, Menus, ComCtrls;

type
  TPay510_02Form = class(TBas100_01Form)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Bevel1: TBevel;
    bbtnOk: TBitBtn;
    bbtnExit: TBitBtn;
    Label6: TLabel;
    Label4: TLabel;
    cbDepart: TComboBox;
    cbPost: TComboBox;
    cbType: TComboBox;
    Label7: TLabel;
    dtDate: TwwDBDateTimePicker;
    edtFromEmpID: TEdit;
    sbFromEmp: TSpeedButton;
    edtToEmpID: TEdit;
    sbToEmp: TSpeedButton;
    qryHrm150: TADOQuery;
    qryHrm150H150_001: TAutoIncField;
    qryHrm150H150_002: TStringField;
    qryHrm150H150_003: TStringField;
    qryPay510: TADOQuery;
    qryQuery: TADOQuery;
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure bbtnOkClick(Sender: TObject);
    procedure bbtnExitClick(Sender: TObject);
    procedure sbFromEmpClick(Sender: TObject);
    procedure sbToEmpClick(Sender: TObject);
    procedure edtFromEmpIDKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure edtToEmpIDKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
    procedure InsertPayItem(AEmpNo,AClassNo:Integer;ADate:TDateTime);
    procedure SetPayItem(ADeptName,AFromEmpID,AToEmpID,APostName,AClassName:string;ADate:TDateTime;AIsDeptAll,AIsPostAll:Boolean);
    procedure SetInterface;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Pay510_02Form: TPay510_02Form;

implementation

uses SYSDATA, HwSelData, CommFun, Wait;

{$R *.DFM}

procedure TPay510_02Form.InsertPayItem(AEmpNo,AClassNo:Integer;ADate:TDateTime);
var
  ANo:Integer;
begin
  if not IsExists('select 1 from PAY510A where P510A_002='+IntToStr(AEmpNo)+' and P510A_004='+GetDateString(ADate)) then
  begin
    //插入一条记录到薪资结构(主表)
    qryPay510.Close;
    qryPay510.SQL.Clear;
    qryPay510.SQL.Add('insert into PAY510A(P510A_002,P510A_003,P510A_004)');
    qryPay510.SQL.Add('select '+IntToStr(AEmpNo)+','+IntToStr(AClassNo)+','+GetDateString(ADate));
    qryPay510.ExecSQL;
    //取得电脑编号
    qryPay510.Close;
    qryPay510.SQL.Clear;
    qryPay510.SQL.Add('select P510A_001 from PAY510A where P510A_002='+IntToStr(AEmpNo)+' and P510A_004='+GetDateString(ADate));
    qryPay510.Open;
    ANo:=qryPay510.Fields[0].Value;

    //插入一条记录到薪资结构(明细表)
    qryPay510.Close;
    qryPay510.SQL.Clear;
    qryPay510.SQL.Add('insert into PAY510B(P510B_001,P510B_002,P510B_003,P510B_004)');
    qryPay510.SQL.Add('select '+IntToStr(ANo)+',P160B_002,P160B_003,P160B_004 from PAY160B where P160B_001='+IntToStr(AClassNo));
    qryPay510.ExecSQL;
  end
end;

//设置员工薪资结构
procedure TPay510_02Form.SetPayItem(ADeptName,AFromEmpID,AToEmpID,APostName,AClassName:string;ADate:TDateTime;AIsDeptAll,AIsPostAll:Boolean);
var
  APostNo,AClassNo,ADeptNo,AEmpNo:Integer;
  AInDate:TDateTime;
begin
  if AFromEmpID='' then AFromEmpID:=GetValue('select min(H150_002) from HRM150');
  if AToEmpID='' then AToEmpID:=GetValue('select max(H150_002) from HRM150');

  AClassNo:=GetValue('select P160A_001 from PAY160A where P160A_003='+''''+AClassName+'''');
  APostNo:=0;
  ADeptNo:=0;
  if not AIsDeptAll then APostNo:=GetValue('select H120_001 from HRM120 where H120_003='+''''+APostName+'''');
  if not AIsPostAll then ADeptNo:=GetValue('select H100_001 from HRM100 where H100_003='+''''+ADeptName+'''');

  qryQuery.Close;
  qryQuery.SQL.Clear;
  qryQuery.SQL.Add('select H150_001,H150_011 from HRM150');
  qryQuery.SQL.Add('where H150_002>='+''''+AFromEmpID+''''+' and H150_002<='+''''+AToEmpID+'''');
  if not AIsDeptAll then qryQuery.SQL.Add(' and H150_005='+IntToStr(ADeptNo));
  if not AIsPostAll then qryQuery.SQL.Add(' and H150_008='+IntToStr(APostNo));
  qryQuery.Open;

  while not qryQuery.Eof do
  begin
    AEmpNo:=qryQuery.FieldByName('H150_001').Value;
    AInDate:=qryQuery.FieldByName('H150_011').Value;
    if ADate=0 then
    begin
      InsertPayItem(AEmpNo,AClassNo,AInDate);
    end else
    begin
      InsertPayItem(AEmpNo,AClassNo,ADate);
    end;
    qryQuery.Next;
  end;
end;

procedure TPay510_02Form.SetInterface;
begin
  Caption:=GetDBString('PAY51002001');  //设置
  Label4.Caption:=GetDBString('PAY51002002');  //部门编号
  Label1.Caption:=GetDBString('PAY51002003');  //员工编号
  Label3.Caption:=GetDBString('PAY51002004');  //至
  Label6.Caption:=GetDBString('PAY51002005');  //职务编号
  Label2.Caption:=GetDBString('PAY51002006');  //薪资类别
  Label7.Caption:=GetDBString('PAY51002007');  //生效日期
  bbtnOk.Caption:=GetDBString('PAY51002008');  //确定(&O)
  bbtnExit.Caption:=GetDBString('PAY51002009');  //退出(&X)
  qryHrm150H150_002.DisplayLabel:=GetDBString('PAY51002003');  //员工编号
  qryHrm150H150_003.DisplayLabel:=GetDBString('PAY51002010');  //员工姓名
end;

procedure TPay510_02Form.FormCreate(Sender: TObject);
begin
  inherited;
  //部门资料
  cbDepart.Items.Clear;
  cbDepart.Items.Add(GetDBString('PAY51002011'));   //所有部门
  SYSDM.qryQuery.Close;
  SYSDM.qryQuery.SQL.Clear;
  SYSDM.qryQuery.SQL.Add('select H100_002 from HRM100');
  SYSDM.qryQuery.Open;
  while not SYSDM.qryQuery.Eof do
  begin
    cbDepart.Items.Add(SYSDM.qryQuery.Fields[0].AsString);
    SYSDM.qryQuery.Next;
  end;
  cbDepart.ItemIndex:=0;

  //职务资料
  cbPost.Items.Clear;
  cbPost.Items.Add(GetDBString('PAY51002012'));  //所有职务
  SYSDM.qryQuery.Close;
  SYSDM.qryQuery.SQL.Clear;
  SYSDM.qryQuery.SQL.Add('select H120_003 from HRM120');
  SYSDM.qryQuery.Open;
  while not SYSDM.qryQuery.Eof do
  begin
    cbPost.Items.Add(SYSDM.qryQuery.Fields[0].AsString);
    SYSDM.qryQuery.Next;
  end;
  cbPost.ItemIndex:=0;
  //薪资类别
  cbType.Items.Clear;
  SYSDM.qryQuery.Close;
  SYSDM.qryQuery.SQL.Clear;
  SYSDM.qryQuery.SQL.Add('select P160A_003 from PAY160A');
  SYSDM.qryQuery.Open;
  while not SYSDM.qryQuery.Eof do
  begin
    cbType.Items.Add(SYSDM.qryQuery.Fields[0].AsString);
    SYSDM.qryQuery.Next;
  end;
  cbType.ItemIndex:=0;

  qryHrm150.Open;
  //设置界面信息
  SetInterface;
end;

procedure TPay510_02Form.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  inherited;
  qryHrm150.Close;
end;

procedure TPay510_02Form.bbtnOkClick(Sender: TObject);
var
  ADeptName,AFromEmpID,AToEmpID,APostName,AClassName:string;
  ADate:TDateTime;
  AIsDeptAll,AIsPostAll:Boolean;
begin
  inherited;
//确定
  ADeptName:=cbDepart.Text;
  AFromEmpID:=edtFromEmpID.Text;
  AToEmpID:=edtToEmpID.Text;
  APostName:=cbPost.Text;
  AClassName:=cbType.Text;
  ADate:=dtDate.Date;
  AIsDeptAll:=cbDepart.ItemIndex=0;
  AIsPostAll:=cbPost.ItemIndex=0;

  if AFromEmpID>AToEmpID then
  begin
    ShowMsg('UMS10000076');  //起始员工编号不能大于结束编号
    edtFromEmpID.SetFocus;
    Abort;
  end;

  if AClassName='' then
  begin
    ShowMsg('UMS10000236');  //薪资类别不能为空
    edtFromEmpID.SetFocus;
    Abort;
  end;

  try
    Screen.Cursor:=crHourGlass;
    WaitForm.Show;
    WaitForm.Update;
    SetPayItem(ADeptName,AFromEmpID,AToEmpID,APostName,AClassName,ADate,AIsDeptAll,AIsPostAll);
  except
    WaitForm.Close;
    Screen.Cursor:=crDefault;
    ShowMsg(GetDBString('UMS10000238')+#13+SYSDM.ADOC.Errors[0].Description,1);  //薪资结构设置失败
    Abort;
  end;
  WaitForm.Close;
  Screen.Cursor:=crDefault;
  ShowMsg('UMS10000237');  //薪资结构设置成功
  Close;
end;

procedure TPay510_02Form.bbtnExitClick(Sender: TObject);
begin
  inherited;
//退出
  Close;
end;

procedure TPay510_02Form.sbFromEmpClick(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').Value;
  end;
end;

procedure TPay510_02Form.sbToEmpClick(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').Value;
  end;
end;

procedure TPay510_02Form.edtFromEmpIDKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  inherited;
  if Key=vk_F4 then sbFromEmp.Click;
end;

procedure TPay510_02Form.edtToEmpIDKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  inherited;
  if Key=vk_F4 then sbToEmp.Click;
end;

initialization
  RegisterClass(TPay510_02Form);

finalization
  UnRegisterClass(TPay510_02Form);

end.

⌨️ 快捷键说明

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