📄 datamodule.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 + -