📄 gzedit.pas
字号:
unit GzEdit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, GZGLCommon, CalcTax, ExtCtrls, DB, ADODB;
type
TGzEditForm = class(TForm)
pnlGzxx: TPanel;
pnlToolBar: TPanel;
lblXm: TLabel;
lblZybh: TLabel;
lblJbgz: TLabel;
lblZwgz: TLabel;
lblBt: TLabel;
lblKq: TLabel;
edtXm: TEdit;
edtJbgz: TEdit;
edtZwgz: TEdit;
edtBt: TEdit;
edtKq: TEdit;
btOK: TButton;
btCancel: TButton;
cbZybh: TComboBox;
procedure btOKClick(Sender: TObject);
procedure cbZybhChange(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
FYear, FMonth: Integer;
FCalcTax: TCalcTax;
FGzRec: TGzRec;
function CheckData: Boolean;
public
{ Public declarations }
property GzRec: TGzRec read FGzRec;
constructor Create(AOwner: TComponent; AYear, AMonth: Integer); reintroduce;
end;
implementation
{$R *.dfm}
constructor TGzEditForm.Create(AOwner: TComponent; AYear, AMonth: Integer);
begin
inherited Create(AOwner);
FYear := AYear;
FMonth := AMonth;
FCalcTax := TCalcTax.Create;
// 初始化职员编号备选项
with TAdoQuery.Create(nil) do
try
Connection := AdoGzgl;
SQL.Text := 'Select Zybh from Zyxx';
Open;
First;
while not eof do
begin
cbZybh.AddItem(FieldByName('Zybh').AsString, nil);
Next;
end;
Close;
finally
Free;
end;
end;
function TGzEditForm.CheckData: Boolean;
begin
Result := False;
// 检验数据的合法性
with TAdoQuery.Create(nil) do
try
Connection := AdoGzgl;
SQL.Text := 'Select Zybh from Ydgz Where Zybh = ' + QuotedStr(cbZybh.Text) +
' and ND = ' + IntToStr(FYear) + ' and YD = ' + IntToStr(FMonth);
Open;
if RecordCount > 0 then
begin
ShowMessage('当前职员的本月工资已经计算,请选择其他职员!');
Close;
cbZybh.SetFocus;
Exit;
end;
finally
Free;
end;
edtBt.Text := Trim(edtBt.Text);
edtKq.Text := Trim(edtKq.Text);
if not IsNumeric(edtBt.Text) then
begin
ShowMessage('补贴数据非法!');
edtBt.SetFocus;
Exit;
end;
if not IsNumeric(edtKq.Text) then
begin
ShowMessage('考勤数据非法!');
edtKq.SetFocus;
Exit;
end;
Result := True;
end;
procedure TGzEditForm.btOKClick(Sender: TObject);
begin
if not CheckData then Exit; //数据不合法
with FGZRec do
begin
Zybh := cbZybh.Text;
Jbgz := strToFloat(edtJbgz.Text);
Zwgz := strToFloat(edtZwgz.Text);
Bt := strToFloat(edtBt.Text);
Kq := strToFloat(edtKq.Text);
end;
FCalcTax.CalcSj(FGZRec);
ModalResult := mrOK;
end;
procedure TGzEditForm.cbZybhChange(Sender: TObject);
begin
// 改变职员,则刷新职员姓名、基本工资和职务工资
with TAdoQuery.Create(nil) do
try
Connection := AdoGzgl;
SQL.Text := 'Select a.Zybh, a.Xm, b.Jbgz, b.Zwgz from Zyxx a, Gzjb b ' +
'where a.JbID = b.JbID and a.Zybh = ' + QuotedStr(cbZybh.Text);
Open;
edtXm.Text := FieldByName('Xm').AsString;
edtJbgz.Text := FieldByName('Jbgz').AsString;
edtZwgz.Text := FieldByName('Zwgz').AsString;
edtBt.Text := '0';
edtKq.Text := '0';
finally
Free;
end;
end;
procedure TGzEditForm.FormDestroy(Sender: TObject);
begin
if Assigned(FCalcTax) then
FCalcTax := nil;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -