📄 untwage.pas
字号:
unit untWage;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, BaseEdit, MSNPopUp, FR_DSet, FR_DBSet, FR_Class, Menus, DB,
DBClient, ActnList, Grids, DBGridEh, StdCtrls, Mask, wwdbedit, ExtCtrls,
DBCtrlsEh, wwdblook, FR_Desgn;
type
TfrmWage = class(TfrmBaseEdit)
Label12: TLabel;
wwDBLookupCombo2: TwwDBLookupCombo;
Label9: TLabel;
wwDBEdit4: TwwDBEdit;
Label6: TLabel;
DBDateTimeEditEh1: TDBDateTimeEditEh;
Label4: TLabel;
wwDBEdit1: TwwDBEdit;
CDShandle: TClientDataSet;
CDShandlefName: TWideStringField;
CDShandlefCode: TWideStringField;
CDShandlefID: TAutoIncField;
CDShandlefDeptCode: TWideStringField;
CDShandlefDriveID: TWideStringField;
CDShandlefSex: TWideStringField;
CDShandlefPosition: TWideStringField;
CDShandlefAddress: TWideStringField;
CDShandlefEmail: TWideStringField;
CDShandlefTel: TWideStringField;
CDShandlefMobile: TWideStringField;
CDShandlefBP: TWideStringField;
CDShandlefDegree: TWideStringField;
CDShandlefCollege: TWideStringField;
CDShandlefBirthAddress: TWideStringField;
CDShandlefBirthday: TDateTimeField;
CDShandlefInTime: TDateTimeField;
CDShandlefOutTime: TDateTimeField;
CDShandlefMoney: TBCDField;
CDShandlefStatus: TBooleanField;
CDShandlefNotes: TWideStringField;
CDShandlefPicture: TWideStringField;
Label7: TLabel;
wwDBLookupCombo3: TwwDBLookupCombo;
Label8: TLabel;
wwDBLookupCombo4: TwwDBLookupCombo;
Label10: TLabel;
wwDBEdit2: TwwDBEdit;
Label14: TLabel;
wwDBEdit3: TwwDBEdit;
Label16: TLabel;
wwDBEdit5: TwwDBEdit;
Label18: TLabel;
wwDBEdit6: TwwDBEdit;
Label20: TLabel;
wwDBEdit7: TwwDBEdit;
Label21: TLabel;
Label22: TLabel;
wwDBEdit8: TwwDBEdit;
Label24: TLabel;
wwDBEdit9: TwwDBEdit;
Label26: TLabel;
wwDBEdit10: TwwDBEdit;
CDSEmployee: TClientDataSet;
CDSEmployeefCode: TWideStringField;
CDSEmployeefName: TWideStringField;
CDSEmployeefID: TAutoIncField;
CDSEmployeefDeptCode: TWideStringField;
CDSEmployeefDriveID: TWideStringField;
CDSEmployeefSex: TWideStringField;
CDSEmployeefPosition: TWideStringField;
CDSEmployeefAddress: TWideStringField;
CDSEmployeefEmail: TWideStringField;
CDSEmployeefTel: TWideStringField;
CDSEmployeefMobile: TWideStringField;
CDSEmployeefBP: TWideStringField;
CDSEmployeefDegree: TWideStringField;
CDSEmployeefCollege: TWideStringField;
CDSEmployeefBirthAddress: TWideStringField;
CDSEmployeefBirthday: TDateTimeField;
CDSEmployeefInTime: TDateTimeField;
CDSEmployeefOutTime: TDateTimeField;
CDSEmployeefMoney: TBCDField;
CDSEmployeefStatus: TBooleanField;
CDSEmployeefNotes: TWideStringField;
CDSEmployeefPicture: TWideStringField;
Label13: TLabel;
CDSYear: TClientDataSet;
CDSMonth: TClientDataSet;
CDSYearfyear: TStringField;
CDSMonthfmonth: TStringField;
wwDBLookupCombo1: TwwDBLookupCombo;
Label3: TLabel;
procedure FormDestroy(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure wwDBLookupCombo1Change(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure acNewExecute(Sender: TObject);
procedure CDSBaseinfoBeforePost(DataSet: TDataSet);
procedure CDSBaseinfoAfterPost(DataSet: TDataSet);
private
procedure CreateYMData;
{ Private declarations }
public
{ Public declarations }
end;
var
frmWage: TfrmWage;
implementation
uses DataProcess, Global;
{$R *.dfm}
procedure TfrmWage.FormDestroy(Sender: TObject);
begin
inherited;
frmWage:=nil;
end;
procedure TfrmWage.FormCreate(Sender: TObject);
begin
inherited;
iFunctionID:=40;
MainTable:='tWage';
MainView:='vWage';
KeyField:='fid';
ReportName:='frWage.frf';
end;
procedure TfrmWage.wwDBLookupCombo1Change(Sender: TObject);
begin
inherited;
if CDSBaseinfo.State in [dsEdit,dsInsert] then
CDSBaseinfo.FieldByName('fEmpoyeeID').AsInteger:=
CDSEmployee.fieldbyname('fid').AsInteger;
end;
procedure TfrmWage.FormShow(Sender: TObject);
begin
inherited;
CreateYMData;
GetsqlData(CDSEmployee,'tEmployee','fid','fid>0',20);
GetsqlData(CDSHandle,'tEmployee','fid','fid>0',20);
end;
procedure TfrmWage.acNewExecute(Sender: TObject);
begin
inherited;
wwDBLookupCombo1.SetFocus;
end;
procedure TfrmWage.CDSBaseinfoBeforePost(DataSet: TDataSet);
begin
inherited;
with CDSBaseinfo do
begin
if VarisNUll(FieldValues['fcode']) then
Raise Exception.Create('员工工号不能为空 !');
if VarisNUll(FieldValues['fyear']) then
Raise Exception.Create('年份不能为空 !');
if VarisNUll(FieldValues['fmonth']) then
Raise Exception.Create('月份不能为空 !');
if VarisNUll(FieldValues['fdate']) then
Raise Exception.Create('发放日期不能为空 !');
if VarisNUll(FieldValues['fBasewage']) then
Raise Exception.Create('基本工资不能为空 !');
if VarisNUll(FieldValues['fhandle']) then
Raise Exception.Create('经手人不能为空 !');
end;
with CDSBaseinfo do
begin
Fieldbyname('famount').AsFloat:=
fieldbyname('fbasewage').AsFloat+
fieldbyname('fovertime').AsFloat+
fieldbyname('fallowance').AsFloat+
fieldbyname('fbonus').AsFloat+
fieldbyname('fotherpay').AsFloat-
fieldbyname('fdeductalimoney').AsFloat-
fieldbyname('fdecuctsleep').AsFloat-
fieldbyname('fdecuctother').AsFloat;
end;
end;
procedure TfrmWage.CDSBaseinfoAfterPost(DataSet: TDataSet);
begin
inherited;
if FormStatus = 'Add' then
WriteBalance(1,7,CDSBaseinfo.fieldbyname('fno').AsString,self.Caption,
0,
CDSBaseinfo.fieldbyname('fRemark').AsString+'--发放工资',
0,
0,
0,
0,
0,
0,
0,
0,
CDSBaseinfo.FieldByName('famount').AsFloat);
if FormStatus = 'Edit' then
WriteBalance(2,7,CDSBaseinfo.fieldbyname('fno').AsString,self.Caption,
0,
CDSBaseinfo.fieldbyname('fRemark').AsString+'--发放工资',
0,
0,
0,
0,
0,
0,
0,
0,
CDSBaseinfo.FieldByName('famount').AsFloat);
end;
procedure TfrmWage.CreateYMData;
var
i,j:integer;
begin
with CDSYear do
begin
close;
FieldDefs.Add('fYear',ftString,8);
CreateDataSet;
for i:=2005 to 2100 do
begin
CDSYear.AppendRecord([inttostr(I)]);
end;
Open;
end;
with CDSMonth do
begin
close;
FieldDefs.Add('fMonth',ftString,6);
CreateDataSet;
for j:=1 to 12 do
begin
CDSMonth.AppendRecord([inttostr(j)]);
end;
Open;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -