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

📄 basepay.pas

📁 主要是介绍DELPHI三层应用以及分布式数据库的应用
💻 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 + -