📄 pay510_02.pas.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 + -