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

📄 datamodule.pas

📁 简单的人事工资管理系统.... 我是想下载源码菜拿来换的...呵呵~~ 版主给点面子哦~~
💻 PAS
字号:
unit DataModule;

interface

uses
  SysUtils, Classes, DB, ADODB, ImgList, Controls;

type
  TDM = class(TDataModule)
    acnncnn: TADOConnection;
    atbl1: TADOTable;
    il1: TImageList;
    qryCommon: TADOQuery;
    qryEmployee: TADOQuery;
    qryYuanGongKaoQin: TADOQuery;
    ds1: TDataSource;
    dsEmployee: TDataSource;
    dsYuanGongKaoQin: TDataSource;
    qryYuanGongChenJiang: TADOQuery;
    qryYuanGongLvLi: TADOQuery;
    qryYuanGongZhiChen: TADOQuery;
    qry4: TADOQuery;
    qry5: TADOQuery;
    dsYuanGongChenJiang: TDataSource;
    dsYuanGongLvLi: TDataSource;
    dsYuanGongZhiChen: TDataSource;
    ds5: TDataSource;
    ds6: TDataSource;
    atblEmploeeLuRu: TADOTable;
    dsEmploeeLuRu: TDataSource;
    atblZhiChen: TADOTable;
    dsZhiChen: TDataSource;
    atblLuli: TADOTable;
    dsLuli: TDataSource;
    dsLuRuChenJiang: TDataSource;
    atblKaoQin: TADOTable;
    dsKaoQin: TDataSource;
    atblJiangChen: TADOTable;
    dsJiangChen: TDataSource;
    qryKaoQinWeiHu: TADOQuery;
    qryHCWeiHU: TADOQuery;
    atbl2: TADOTable;
    atbl3: TADOTable;
    qry3: TADOQuery;
    dsKaoQingWeiHu: TDataSource;
    dsJCWeiHu: TDataSource;
    ds4: TDataSource;
    ds7: TDataSource;
    ds8: TDataSource;
    qryALLData: TADOQuery;
    dsALLData: TDataSource;
    atblGZ: TADOTable;
    qryGZ: TADOQuery;
    procedure DataModuleCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    procedure JiSuanGZ;
  end;

var
  DM: TDM;

implementation

uses U_Common;

{$R *.dfm}

procedure TDM.DataModuleCreate(Sender: TObject);
var
    cnnstr:string;
begin
    if acnncnn.Connected then  Exit;


    cnnstr:='Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=';
    cnnstr:=cnnstr+IncludeTrailingBackslash( ExtractFilePath(ParamStr(0)))+'Data\Manager.rsgz;';
    cnnstr:=Cnnstr+'Mode=Share Deny None;Extended Properties="";Jet OLEDB:System database="";';
    cnnstr:=Cnnstr+'Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="";';
    cnnstr:=Cnnstr+'Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;';
    cnnstr:=Cnnstr+'Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;';
    cnnstr:=Cnnstr+'Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;';
    cnnstr:=Cnnstr+'Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don'+#39;
    cnnstr:=Cnnstr+'t Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False';

    acnncnn.ConnectionString:=cnnstr;
    try
        acnncnn.Open;
    except
        ShowErrorMsgBox('数据库连接失败!');
        Exit;
    end;

    atbl1.Open;
    qryEmployee.Open;
    qryYuanGongKaoQin.Open;
    qryYuanGongChenJiang.Open;
    qryYuanGongLvLi.Open;
    qryYuanGongZhiChen.Open;
    atblEmploeeLuRu.Open;
    atblZhiChen.Open;
    atblLuli.Open;
    atblKaoQin.Open;
    atblJiangChen.Open;
    qryALLData.Open;
    //qryKaoQinWeiHu.Open;
    //qryHCWeiHU.Open;
    //qryHCWeiHU.Open;
end;

procedure TDM.JiSuanGZ;
var
 SQL:string;
 I:Integer;
 NO,YuanShiZhiWuShiJian,GZ:Integer;
begin
   // 计算员工工资
   //暂时假定 工资=(基本工资+原始职务任职时间*30)*(1+工资增长幅度)+ 加班时间*3+出差天数*50-迟到天数*100;
   // 也就是  工资= (基本工资+原始职务任职时间*30) +奖惩  (其实这该做成一个单独的模块)

  SQL:='select * from JiangChen,Employee where JiangChen.员工编号=Employee.编号';
  if not OpenQuery(DM.qryCommon,SQL,qmOpen) then Exit;

  for I:=0 to DM.qryCommon.RecordCount-1 do
  begin
      NO:=DM.qryCommon.fieldbyname('员工编号').AsInteger;
      if DM.qryCommon.FieldByName('奖惩').AsInteger=0 then  //没有写入奖惩信息,无法计算工资.
      begin
           //不用操作
      end else
      begin
          dm.qryYuanGongLvLi.Locate('员工编号',NO,[loCaseInsensitive]);
          YuanShiZhiWuShiJian:=dm.qryYuanGongLvLi.fieldbyname('原始职务任职时间').AsInteger;
          GZ:=(1800+YuanShiZhiWuShiJian*30)+DM.qryCommon.FieldByName('奖惩').AsInteger; //工资
          //向工资表写入数据
          SQL:='select * from GZ where 员工编号='+intToStr(NO);
          if not OpenQuery(qry4,SQL,qmOpen) then
          begin
            SQL:='insert into GZ(员工编号,工资) values('+ inttostr(No) +','+ IntToStr(GZ) +  ') ' ;
            OpenQuery(qry4,SQL,qmExec);
          end;
          //qry4.UpdateBatch(arAll);
      end;
  end;

end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -