📄 basepay.pas
字号:
unit basepay;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls, DBCtrls, Mask, ExtCtrls, Grids, DBGrids, DB,
DBTables;
type
Tfrm_basepay = class(TForm)
PageControl1: TPageControl;
TabSheet2: TTabSheet;
qbasep: TQuery;
dsbasep: TDataSource;
UpdateSbasep: TUpdateSQL;
quse: TQuery;
DBGrid2: TDBGrid;
qbasepBDEDesigner: TAutoIncField;
qbasepBDEDesigner2: TStringField;
qbasepBDEDesigner3: TIntegerField;
qbasepBDEDesigner4: TCurrencyField;
qbasepBDEDesigner5: TCurrencyField;
qbasepBDEDesigner7: TCurrencyField;
qbasepBDEDesigner8: TCurrencyField;
qbasepBDEDesigner9: TCurrencyField;
qbasepBDEDesigner10: TStringField;
qbasepBDEDesigner11: TStringField;
qbasepBDEDesigner12: TCurrencyField;
qbasepBDEDesigner13: TCurrencyField;
qbasepBDEDesigner14: TStringField;
qbasepBDEDesigner15: TStringField;
qbasepBDEDesigner16: TCurrencyField;
qbasepBDEDesigner17: TIntegerField;
qbasepcal: TFloatField;
qbasepcal2: TFloatField;
Panel4: TPanel;
Panel9: TPanel;
Panel8: TPanel;
Panel5: TPanel;
Edit1: TEdit;
Panel6: TPanel;
Edit2: TEdit;
Panel7: TPanel;
Edit3: TEdit;
Panel10: TPanel;
Edit4: TEdit;
Panel1: TPanel;
Edit5: TEdit;
Panel2: TPanel;
Edit6: TEdit;
Panel3: TPanel;
Edit7: TEdit;
Button1: TButton;
btn_prt: TButton;
qbasepBDEDesigner18: TStringField;
qbasepBDEDesigner19: TStringField;
qbasepBDEDesigner20: TStringField;
qbasepBDEDesigner21: TStringField;
qbasepBDEDesigner22: TDateTimeField;
btn_backtobase: TButton;
qgatherbasepay: TQuery;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure qbasepCalcFields(DataSet: TDataSet);
procedure qbasepAfterOpen(DataSet: TDataSet);
procedure DBGrid2Enter(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure btn_prtClick(Sender: TObject);
procedure btn_backtobaseClick(Sender: TObject);
procedure btn_allClick(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Frm_basepay: TFrm_basepay;
implementation
uses data, rp_basepay, u_basepay, basepay_base, rp_gatherbasepay;
{$R *.dfm}
//***************释放空间********************
procedure TFrm_basepay.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action:=cafree;
end;
procedure Tfrm_basepay.FormCreate(Sender: TObject);
begin
with qbasep do begin
parambyname('office').AsString :=office;
parambyname('year').AsString :=year;
parambyname('month').AsString :=month;
open;
end;
end;
procedure Tfrm_basepay.qbasepCalcFields(DataSet: TDataSet);
begin
with qbasep do begin
// 全勤奖:
if fieldbyname('缺勤天数').AsFloat=0 then
fieldbyname('全勤奖').AsFloat:=fieldbyname('全勤奖励').AsFloat
else
fieldbyname('全勤奖').AsFloat:=0;
//应扣& 实发:
if (fieldbyname('本月满勤天数').AsFloat<>0) and (fieldbyname('本月满勤天数').asstring<>'') then
begin
fieldbyname('cal应扣').AsFloat :=fieldbyname('应发').AsFloat*fieldbyname('缺勤天数').AsFloat/fieldbyname('本月满勤天数').AsFloat;
fieldbyname('cal实发').AsFloat :=fieldbyname('应发').AsFloat-fieldbyname('cal应扣').AsFloat+fieldbyname('另外奖励').AsFloat-fieldbyname('另外扣除').AsFloat;
end
else begin
fieldbyname('cal应扣').AsFloat :=fieldbyname('应发').AsFloat;
fieldbyname('cal实发').AsFloat :=0;
end;
end;
end;
procedure Tfrm_basepay.qbasepAfterOpen(DataSet: TDataSet);
var
a1,a2,a3,a4,a5,a6,a7:real;
begin
a1:=0;
a2:=0;
a3:=0;
a4:=0;
a5:=0;
a6:=0;
a7:=0;
while not qbasep.Eof do begin
a1:=a1+qbasep.fieldbyname('应补助金额').asfloat;
a2:=a2+qbasep.fieldbyname('应发').asfloat;
a3:=a3+qbasep.fieldbyname('全勤奖').asfloat;
a4:=a4+qbasep.fieldbyname('cal应扣').asfloat;
a5:=a5+qbasep.fieldbyname('cal实发').asfloat;
a6:=a6+qbasep.fieldbyname('另外奖励').asfloat;
a7:=a7+qbasep.fieldbyname('另外扣除').asfloat;
qbasep.Next ;
end;
Edit1.text:=floattostr(a1);
Edit2.text:=floattostr(a2);
Edit3.text:=floattostr(a3);
Edit4.text:=floattostr(a4);
Edit5.text:=floattostr(a5);
Edit6.text:=floattostr(a6);
Edit7.text:=floattostr(a7);
end;
procedure Tfrm_basepay.DBGrid2Enter(Sender: TObject);
begin
if not qbasep.Active then qbasep.Open ;
end;
procedure Tfrm_basepay.Button1Click(Sender: TObject);
begin
if not qbasep.Active then qbasep.Open ;
qbasep.ApplyUpdates;
//将计算结果保存到表中,以备后面计算用。
with qbasep do begin
first;
while not eof do begin
with quse do begin
if active then close;
unprepare;
sql.Clear;
//更新数据。
sql.Add('update pub_z_payin set 应扣=:yk,实发=:shf,全勤奖=:qqj ');
sql.Add(' where 工号=:gh and 年=:year and 月=:month');
parambyname('gh').asstring:=qbasep.fieldbyname('工号').Asstring;
parambyname('year').asstring:=qbasep.fieldbyname('年').asstring;
parambyname('month').asstring:=qbasep.fieldbyname('月').asstring;
parambyname('yk').ascurrency:=qbasep.fieldbyname('cal应扣').ascurrency;
parambyname('shf').ascurrency:=qbasep.fieldbyname('cal实发').ascurrency;
parambyname('qqj').ascurrency:=qbasep.fieldbyname('全勤奖').ascurrency;
ExecSQL;
end;
next;
end;
close;
open;
end;
end;
procedure Tfrm_basepay.btn_prtClick(Sender: TObject);
begin
frp_basepay:=Tfrp_basepay.Create(application);
frp_basepay.QuickRep1.Preview;
frp_basepay.free;
end;
procedure Tfrm_basepay.btn_backtobaseClick(Sender: TObject);
begin
close;
application.createform(TFrm_basepay_base,Frm_basepay_base);
end;
procedure Tfrm_basepay.btn_allClick(Sender: TObject);
begin
{ with qgatherbasepay do begin
parambyname('gatheryear').asstring:=qbasep.fieldbyname('年').asstring;
parambyname('gathermonth').asstring:=qbasep.fieldbyname('月').asstring;
open;
end;
frp_gatherbasepay:=Tfrp_gatherbasepay.Create(application);
frp_gatherbasepay.QuickRep1.Preview;
frp_gatherbasepay.free;
}
end;
procedure Tfrm_basepay.FormDestroy(Sender: TObject);
begin
frm_basepay:=nil;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -