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