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

📄 untwage.pas

📁 用delphi编写的数据库管理软件
💻 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 + -