📄 datacenter.pas
字号:
unit DataCenter;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ExtCtrls, dxCntner, dxEditor, dxExEdtr,
dxEdLib, dxDBELib, ComCtrls,DB, ADODB,IniFiles;
type
TDmData = class(TDataModule)
ADOConnection1: TADOConnection;
aTblPass: TADOTable;
aTblPassID: TStringField;
aTblPassUserName: TStringField;
aTblPassPassword: TStringField;
aquRateForms: TADOQuery;
aquRateFormsDetail: TADOQuery;
aquRateFormsOrderNo: TStringField;
aquRateFormsOrderDate: TDateTimeField;
aquRateFormsFirstTime: TStringField;
aquRateFormsEndTime: TStringField;
aquRateFormsRateID: TStringField;
aquRateFormsRateName: TStringField;
aquRateFormsPicecID1: TStringField;
aquRateFormsPicecName1: TStringField;
aquRateFormsPicecID2: TStringField;
aquRateFormsPicecName2: TStringField;
aquRateFormsPicecID3: TStringField;
aquRateFormsPicecName3: TStringField;
aquRateFormsPicecID4: TStringField;
aquRateFormsPicecName4: TStringField;
aquRateFormsPicecNum: TSmallintField;
aquRateFormsCheckID1: TStringField;
aquRateFormsCheckName1: TStringField;
aquRateFormsCheckID2: TStringField;
aquRateFormsCheckName2: TStringField;
aquRateFormsCheckID3: TStringField;
aquRateFormsCheckName3: TStringField;
aquRateFormsCheckID4: TStringField;
aquRateFormsCheckName4: TStringField;
aquRateFormsCheckNum: TSmallintField;
ADOQuery1: TADOQuery;
aquPersonel: TADOQuery;
aquPersonelPersonID: TStringField;
aquPersonelName: TStringField;
aquPersonelSex: TStringField;
aquPersonelDept: TStringField;
aquPersonelWorkType: TStringField;
aquPersonelInDate: TDateTimeField;
aquPersonelBasePay: TBCDField;
aquPersonelServiceAward: TBCDField;
aquPersonelSubsidy: TBCDField;
aquPersonelNotes: TMemoField;
atblWorkType: TADOTable;
atblDept: TADOTable;
aquRates: TADOQuery;
qryUserGL: TADOQuery;
qryUserGLID: TStringField;
qryUserGLUserName: TStringField;
qryUserGLPassword: TStringField;
aquRateFormsDetailOrderNo: TStringField;
aquRateFormsDetailOrderID: TStringField;
aquRateFormsDetailModelID: TStringField;
aquRateFormsDetailColor: TStringField;
aquRateFormsDetailCreateColor: TStringField;
aquRateFormsDetailShoeSize: TStringField;
aquRateFormsDetailTotalNumbers: TIntegerField;
aquRateFormsDetailProdANums: TIntegerField;
aquRateFormsDetailProdBNums: TIntegerField;
aquRateFormsDetailProdCNums: TIntegerField;
aquRateFormsDetailPicecANums: TIntegerField;
aquRateFormsDetailPicecBNums: TIntegerField;
aquRateFormsDetailCheckNums: TIntegerField;
aquRateFormsDetailSubsidy: TBCDField;
aquRateFormsDetailNotes: TStringField;
aquRatesModelID: TStringField;
aquRatesColor: TStringField;
aquRatesShoeSize: TStringField;
aquRatesRateA: TBCDField;
aquRatesRateB: TBCDField;
aquRatesRateC: TBCDField;
aquRatesPicecARate: TBCDField;
aquRatesPicecBRate: TBCDField;
aquRatescheckRate: TBCDField;
aquRatesNotes: TStringField;
function ConnectDataSource(Sender:Tobject):boolean;
procedure DataModuleCreate(Sender: TObject);
procedure aquRateFormsDetailAfterPost(DataSet: TDataSet);
procedure aquRateFormsAfterPost(DataSet: TDataSet);
procedure aquRateFormsNewRecord(DataSet: TDataSet);
procedure aquRateFormsBeforePost(DataSet: TDataSet);
procedure aquRateFormsPostError(DataSet: TDataSet; E: EDatabaseError;
var Action: TDataAction);
function SetCurrentOrderNo():String;
procedure aquRateFormsDetailNewRecord(DataSet: TDataSet);
procedure aquRateFormsDetailBeforePost(DataSet: TDataSet);
procedure aquRateFormsDetailPostError(DataSet: TDataSet;
E: EDatabaseError; var Action: TDataAction);
procedure atblWorkTypeAfterPost(DataSet: TDataSet);
procedure atblWorkTypeBeforePost(DataSet: TDataSet);
procedure atblWorkTypePostError(DataSet: TDataSet; E: EDatabaseError;
var Action: TDataAction);
procedure atblDeptAfterPost(DataSet: TDataSet);
procedure atblDeptBeforePost(DataSet: TDataSet);
procedure atblDeptPostError(DataSet: TDataSet; E: EDatabaseError;
var Action: TDataAction);
procedure aquPersonelAfterPost(DataSet: TDataSet);
procedure aquPersonelBeforePost(DataSet: TDataSet);
procedure aquPersonelPostError(DataSet: TDataSet; E: EDatabaseError;
var Action: TDataAction);
procedure aquPersonelNewRecord(DataSet: TDataSet);
procedure aquRatesBeforePost(DataSet: TDataSet);
procedure aquRatesAfterPost(DataSet: TDataSet);
procedure aquRatesPostError(DataSet: TDataSet; E: EDatabaseError;
var Action: TDataAction);
procedure aquRatesAfterScroll(DataSet: TDataSet);
private
{ Private declarations }
public
{ Public declarations }
ServerName,ClientName,DataBaseName,UserName,PassWord:string;
end;
var
DmData: TDmData;
implementation
{$R *.dfm}
uses
SetDataSource,ProdRate,Personel,Rates;
function TDmData.ConnectDataSource(Sender:Tobject):boolean;
var
InIFileName:String;
MyIniFile:TIniFile;
begin
IniFileName:=ExtractFilePath(paramstr(0))+'Server.Ini';
if not fileexists(IniFileName) then
begin
showmessage('不存在系统配置文件,系统将自动创建!');
// filecreate('Server.INI');
end;
MyIniFile:=TiniFile.create(IniFileName);
ServerName:=MyIniFile.ReadString('Server','ServerName',ServerName);
ClientName:=MyIniFile.ReadString('Server','ClientName',ClientName);
DataBaseName:=MyIniFile.ReadString('Server','DataBaseName',DataBaseName);
UserName:=MyIniFile.ReadString('Server','UserName',UserName);
PassWord:=MyIniFile.ReadString('Server','PassWord',PassWord);
if ServerName+ClientName+DataBaseName+UserName+PassWord='' then
begin
result:=false;
exit;
end;
if AdoConnection1.Connected then AdoConnection1.Close;
ADOConnection1.ConnectionString:='Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog='+DataBaseName+';Data Source='+ServerName+';Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID='+ClientName+';Use Encryption for Data=False;Tag with column collation when possible=False';
try
ADOConnection1.Connected:=true;
result:=true;
except
try
ADOConnection1.ConnectionString:='Provider=SQLOLEDB.1;Password='+Password+';Persist Security Info=True;User ID='+UserName+';Initial Catalog='+DataBaseName+';Data Source='+ServerName;
ADOConnection1.Connected:=true;
result:=true;
except
showmessage('数据库连接字符串出错,请重新设置!');
result:=false;
end;
end;
end;
procedure TDmData.DataModuleCreate(Sender: TObject);
begin
if not ConnectDataSource(sender) then
begin
if Application.FindComponent('frmSetDataSource')=nil then
Application.CreateForm(TfrmSetDataSource,frmSetDataSource);
frmSetDataSource.ShowModal;
end;
end;
procedure TDmData.aquRateFormsDetailAfterPost(DataSet: TDataSet);
begin
// if aquRateFormsDetailTotalNumbers.value=0 then aquRateFormsDetail.delete;
AdoConnection1.CommitTrans;
end;
procedure TDmData.aquRateFormsAfterPost(DataSet: TDataSet);
begin
AdoConnection1.CommitTrans;
// frmProdRate.RateFormsValueToText();
end;
procedure TDmData.aquRateFormsNewRecord(DataSet: TDataSet);
begin
aquRateFormsOrderNo.Value:=SetCurrentOrderNo();
aquRateFormsOrderDate.Value:=date();
aquRateForms.Post;
aquRateForms.UpdateBatch();
aquRateForms.Edit;
aquRateForms.Tag:=1;
end;
procedure TDmData.aquRateFormsBeforePost(DataSet: TDataSet);
begin
AdoConnection1.BeginTrans;
end;
procedure TDmData.aquRateFormsPostError(DataSet: TDataSet;
E: EDatabaseError; var Action: TDataAction);
begin
AdoConnection1.RollbackTrans;
end;
function TDmData.SetCurrentOrderNo():String;
var
TempMaxNo1:String;
TempMaxNo2:String;
i:integer;
begin
AdoQuery1.Sql.Text:='select max(OrderNo) as MaxOrderNo from RateForms';
AdoQuery1.Open;
TempMaxNo2:=Trim(IntToStr(StrToInt(AdoQuery1.Fields[0].Value)+1));
TempMaxNo1:='';
for i:=1 to 10-Strlen(Pchar(TempMaxNo2)) do
TempMaxNo1:=TempMaxNo1+'0';
Result:=TempMaxNo1+TempMaxNo2;
end;
procedure TDmData.aquRateFormsDetailNewRecord(DataSet: TDataSet);
begin
aquRateFormsDetailOrderNo.Value:=frmProdRate.edtOrderNo.Text;
end;
procedure TDmData.aquRateFormsDetailBeforePost(DataSet: TDataSet);
begin
AdoConnection1.BeginTrans;
end;
procedure TDmData.aquRateFormsDetailPostError(DataSet: TDataSet;
E: EDatabaseError; var Action: TDataAction);
begin
AdoConnection1.RollbackTrans;
end;
procedure TDmData.atblWorkTypeAfterPost(DataSet: TDataSet);
begin
AdoConnection1.CommitTrans;
end;
procedure TDmData.atblWorkTypeBeforePost(DataSet: TDataSet);
begin
AdoConnection1.BeginTrans;
end;
procedure TDmData.atblWorkTypePostError(DataSet: TDataSet;
E: EDatabaseError; var Action: TDataAction);
begin
AdoConnection1.RollbackTrans;
end;
procedure TDmData.atblDeptAfterPost(DataSet: TDataSet);
begin
AdoConnection1.CommitTrans;
end;
procedure TDmData.atblDeptBeforePost(DataSet: TDataSet);
begin
AdoConnection1.BeginTrans;
end;
procedure TDmData.atblDeptPostError(DataSet: TDataSet; E: EDatabaseError;
var Action: TDataAction);
begin
AdoConnection1.RollbackTrans;
end;
procedure TDmData.aquPersonelAfterPost(DataSet: TDataSet);
begin
AdoConnection1.CommitTrans;
end;
procedure TDmData.aquPersonelBeforePost(DataSet: TDataSet);
begin
AdoConnection1.BeginTrans;
end;
procedure TDmData.aquPersonelPostError(DataSet: TDataSet;
E: EDatabaseError; var Action: TDataAction);
begin
AdoConnection1.RollbackTrans;
end;
procedure TDmData.aquPersonelNewRecord(DataSet: TDataSet);
begin
aquPersonelIndate.Value:=date();
end;
procedure TDmData.aquRatesBeforePost(DataSet: TDataSet);
begin
AdoConnection1.BeginTrans;
end;
procedure TDmData.aquRatesAfterPost(DataSet: TDataSet);
begin
AdoConnection1.CommitTrans;
end;
procedure TDmData.aquRatesPostError(DataSet: TDataSet; E: EDatabaseError;
var Action: TDataAction);
begin
AdoConnection1.RollbackTrans;
end;
procedure TDmData.aquRatesAfterScroll(DataSet: TDataSet);
begin
frmRates.RateFromToText;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -