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

📄 clientdm_unit.pas

📁 货源代理管理系统 同样是DELPHI7下的
💻 PAS
字号:
unit ClientDM_Unit;

interface

uses
  SysUtils, Classes, DB, DBClient, MConnect, SConnect, Dialogs, IniFiles, Forms,
  ServerClient_Unit, ObjBrkr;

type
  TDM = class(TDataModule)
    SocketConn: TSocketConnection;
    cdsUsers: TClientDataSet;
    cdsFeeType: TClientDataSet;
    dsrFeeType: TDataSource;
    dsrAreaType: TDataSource;
    cdsAreaType: TClientDataSet;
    cdsCallingType: TClientDataSet;
    dsrCallingType: TDataSource;
    cdsInsuranceType: TClientDataSet;
    dsrInsuranceType: TDataSource;
    cdsPersonnelType: TClientDataSet;
    dsrPersonnelType: TDataSource;
    cdsPaymentType: TClientDataSet;
    dsrPaymentType: TDataSource;
    cdsPerson: TClientDataSet;
    dsrPerson: TDataSource;
    cdsPersonPersonID: TStringField;
    cdsPersonName: TStringField;
    cdsPersonSex: TStringField;
    cdsPersonBirthday: TDateTimeField;
    cdsPersonIDCard: TStringField;
    cdsPersonTelephone: TStringField;
    cdsPersonEMail: TStringField;
    cdsPersonAddress: TStringField;
    cdsPersonWorkingPlace: TStringField;
    cdsPaymentTypePaymentCode: TStringField;
    cdsPaymentTypePaymentDescn: TStringField;
    cdsPersonnelTypePersonnelType: TStringField;
    cdsPersonnelTypePersonnelDescn: TStringField;
    cdsAreaTypeAreaCode: TStringField;
    cdsAreaTypeAreaDescn: TStringField;
    cdsFeeTypeFeeTypeID: TStringField;
    cdsFeeTypeFeeDescn: TStringField;
    cdsCallingTypeCallingCode: TStringField;
    cdsCallingTypeCallingDescn: TStringField;
    cdsInsuranceTypeInsuranceCode: TStringField;
    cdsInsuranceTypeInsuranceDescn: TStringField;
    cdsCustomer: TClientDataSet;
    dsrCustomer: TDataSource;
    cdsCustomerCustomerID: TStringField;
    cdsCustomerCustomerDescn: TStringField;
    cdsCustomerAreaType: TStringField;
    cdsCustomerCallingType: TStringField;
    cdsCustomerContact: TStringField;
    cdsCustomerContactTel: TStringField;
    cdsCustomerContactAddress: TStringField;
    cdsCarType: TClientDataSet;
    dsrCarType: TDataSource;
    cdsCarTypeCarType: TStringField;
    cdsCarTypeCarDescn: TStringField;
    cdsCar: TClientDataSet;
    dsrCar: TDataSource;
    cdsCarCarNumber: TStringField;
    cdsCarCarType: TStringField;
    cdsCarInsuranceType: TStringField;
    cdsCarDriver: TStringField;
    cdsCarStatus: TStringField;
    dsrUsers: TDataSource;
    cdsShippingHeader: TClientDataSet;
    dsrShippingHeader: TDataSource;
    cdsShippingBody: TClientDataSet;
    dsrShippingBody: TDataSource;
    SimpleObjectBroker1: TSimpleObjectBroker;
    procedure cdsCarBeforePost(DataSet: TDataSet);
    procedure cdsUsersBeforePost(DataSet: TDataSet);
    procedure DataModuleCreate(Sender: TObject);
    procedure cdsShippingBodyAfterInsert(DataSet: TDataSet);
    procedure cdsShippingBodyAfterPost(DataSet: TDataSet);
    procedure cdsShippingHeaderReconcileError(
      DataSet: TCustomClientDataSet; E: EReconcileError;
      UpdateKind: TUpdateKind; var Action: TReconcileAction);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  DM: TDM;
  Flag: integer;
implementation

uses PersonInfo_Unit, CarInfo_Unit, UserSetup_Unit, TrafficBookIn_Unit,
  ReconcileAction_Unit, ClientMain_Unit;

{$R *.dfm}

procedure TDM.cdsCarBeforePost(DataSet: TDataSet);
begin
  if DM.SocketConn.AppServer.GetBool(frmCarInfo.DBEdit1.Text,'Cars','CarNumber') then
  begin
    ShowMessage('车辆牌号已经存在,不能重复添加!');
    Abort;
  end;
end;

procedure TDM.cdsUsersBeforePost(DataSet: TDataSet);
begin
  if DM.SocketConn.AppServer.GetBool(frmUserSetup.DBEdit1.Text,'UserInfo','LoginID') then
  begin
    ShowMessage('用户已经存在,不能重复添加!');
    Abort;
  end;
end;

procedure TDM.DataModuleCreate(Sender: TObject);
begin
  SocketConn.Connected := False;
  SocketConn.Address := ReadIni(IniFileName,'Main','IP');
  SocketConn.Port := StrToInt(ReadIni(IniFileName,'Main','Port'));
  try
    SocketConn.Connected := True;
  except
    MessageDlg('连接远程服务器失败,请重新设置!', mtError, [mbOk], 0);
    frmServerClient := TfrmServerClient.Create(Self);
    try
      frmServerClient.ShowModal;
    finally
      frmServerClient.Free;
    end;
    Application.Terminate;
  end;
end;

procedure TDM.cdsShippingBodyAfterInsert(DataSet: TDataSet);
begin
  with cdsShippingHeader do
  begin
    if FieldByName('NextItemID').AsString = '' then
      FieldByName('NextItemID').AsString := '1001';
    DataSet.FieldByName('Items').AsString := FieldByName('NextItemID').AsString;
  end;
end;

procedure TDM.cdsShippingBodyAfterPost(DataSet: TDataSet);
begin
  with cdsShippingHeader do
  begin
    Edit;
    FieldByName('NextItemID').AsString := IntToStr(DataSet.FieldByName('Items').AsInteger + 1);
    Post;
  end;
end;

procedure TDM.cdsShippingHeaderReconcileError(
  DataSet: TCustomClientDataSet; E: EReconcileError;
  UpdateKind: TUpdateKind; var Action: TReconcileAction);
begin
  Action := HandleReconcileError(DataSet, UpdateKind, E);
end;

end.

⌨️ 快捷键说明

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