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

📄 datacenter.pas

📁 这是我在去年年底利用业余时间做的一个鞋塑企业的计件工资系统。由于本人技术有限
💻 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 + -