📄 dm.pas
字号:
unit DM;
interface
uses
SysUtils, Classes, DB, ADODB, Forms, Windows, Dialogs, Variants;
type
TDM1 = class(TDataModule)
ADOConnection1: TADOConnection;
DataSource1: TDataSource;
DataSource2: TDataSource;
ADODataSet3: TADODataSet;
DataSource3: TDataSource;
ADODataSet4: TADODataSet;
DataSource4: TDataSource;
DataSource5: TDataSource;
ADODataSet6: TADODataSet;
DataSource6: TDataSource;
ADODataSet7: TADODataSet;
DataSource7: TDataSource;
DataSource8: TDataSource;
ADOQuery1: TADOQuery;
ADOTable1: TADOTable;
DataSource9: TDataSource;
DataSource10: TDataSource;
ADODataSet10: TADODataSet;
DataSource11: TDataSource;
ADODataSet11: TADODataSet;
DataSource12: TDataSource;
ADODataSet3DSDesigner2: TWideStringField;
ADODataSet3DSDesigner3: TWideStringField;
TestRe: TADOQuery;
DataSource14: TDataSource;
LogData: TADODataSet;
LogDataLoadDate: TDateTimeField;
LogDataUserName: TStringField;
LogDataOutDate: TDateTimeField;
DataSource15: TDataSource;
DataSource16: TDataSource;
SellList: TADODataSet;
ADOTable1DSDesigner: TWideStringField;
ADOTable1Num: TIntegerField;
ADODataSet3Num: TAutoIncField;
LogDataDegree: TAutoIncField;
LinkManList: TADODataSet;
ADODataSet5: TADODataSet;
ADODataSet5Num: TAutoIncField;
ADODataSet5ID: TWideStringField;
ADODataSet5ProductName: TWideStringField;
ADODataSet5Spec: TWideStringField;
ADODataSet5Unit: TWideStringField;
ADODataSet5Price: TBCDField;
ADODataSet5CostPrice: TBCDField;
ADODataSet5Remark: TMemoField;
ADODataSet7Num: TAutoIncField;
ADODataSet7OrderFormID: TWideStringField;
ADODataSet7ClientName: TWideStringField;
ADODataSet7ID: TWideStringField;
ADODataSet7ProductName: TWideStringField;
ADODataSet7Spec: TWideStringField;
ADODataSet7Unit: TWideStringField;
ADODataSet7UnitPrice: TBCDField;
ADODataSet7Number: TIntegerField;
ADODataSet7Agio: TBCDField;
ADODataSet10Num: TAutoIncField;
ADODataSet10Motif: TWideStringField;
ADODataSet10ClientName: TWideStringField;
ADODataSet10RelationMode: TWideStringField;
ADODataSet10Personnel: TWideStringField;
ADODataSet10Principal: TWideStringField;
ADODataSet10Remark: TMemoField;
LinkManListNum: TAutoIncField;
LinkManListClientName: TWideStringField;
LinkManListLinkManID: TWideStringField;
LinkManListMostlyLinkMan: TBooleanField;
LinkManListDuty: TWideStringField;
LinkManListBranch: TWideStringField;
LinkManListEmail: TWideStringField;
LinkManListHomeAddress: TWideStringField;
LinkManListOfficeTEL: TWideStringField;
LinkManListMobileTEL: TWideStringField;
LinkManListHomeTEL: TWideStringField;
LinkManListFAX: TWideStringField;
LinkManListBirthday: TDateTimeField;
LinkManListRemark: TMemoField;
SellListNum: TAutoIncField;
SellListOrderFormID: TWideStringField;
SellListClientName: TWideStringField;
SellListSellDate: TDateTimeField;
SellListOperator: TWideStringField;
SellListRemark: TMemoField;
ADODataSet7Money: TFloatField;
ADODataSet4Num: TAutoIncField;
ADODataSet4Times: TDateTimeField;
ADODataSet4Dates: TDateTimeField;
ADODataSet4Motif: TWideStringField;
ADODataSet4ClientName: TWideStringField;
ADODataSet4RelationMode: TWideStringField;
ADODataSet4Personnel: TWideStringField;
ADODataSet4Principal: TWideStringField;
ADODataSet4Remark: TMemoField;
ADODataSet6Num: TAutoIncField;
ADODataSet6OrderFormID: TWideStringField;
ADODataSet6ClientName: TWideStringField;
ADODataSet6Operator: TWideStringField;
ADODataSet6Remark: TMemoField;
ADODataSet6SellDate: TDateTimeField;
ADODataSet10Times: TDateTimeField;
ADODataSet10Dates: TDateTimeField;
ADODataSet2: TADODataSet;
ADODataSet2Num: TAutoIncField;
ADODataSet2ClientName: TWideStringField;
ADODataSet2LinkManID: TWideStringField;
ADODataSet2MostlyLinkMan: TBooleanField;
ADODataSet2Duty: TWideStringField;
ADODataSet2Branch: TWideStringField;
ADODataSet2Email: TWideStringField;
ADODataSet2HomeAddress: TWideStringField;
ADODataSet2OfficeTEL: TWideStringField;
ADODataSet2MobileTEL: TWideStringField;
ADODataSet2HomeTEL: TWideStringField;
ADODataSet2FAX: TWideStringField;
ADODataSet2Birthday: TDateTimeField;
ADODataSet2Remark: TMemoField;
ADODataSet9: TADODataSet;
ADODataSet1: TADODataSet;
ADODataSet9Num: TAutoIncField;
ADODataSet9ClientName: TWideStringField;
ADODataSet9Motif: TWideStringField;
ADODataSet9RelationMode: TWideStringField;
ADODataSet9Principal: TWideStringField;
ADODataSet9Dates: TDateTimeField;
ADODataSet9Times: TDateTimeField;
ADODataSet9Remark: TMemoField;
TransformTable: TADODataSet;
ADOSort: TADODataSet;
SortData: TDataSource;
ADOSortSorts: TWideStringField;
ADOSortItems: TWideStringField;
ADODataSet1Num: TAutoIncField;
ADODataSet1ID: TWideStringField;
ADODataSet1CoName: TWideStringField;
ADODataSet1ClientTier: TWideStringField;
ADODataSet1Address: TWideStringField;
ADODataSet1Postalcode: TIntegerField;
ADODataSet1Area: TWideStringField;
ADODataSet1Region: TWideStringField;
ADODataSet1TEL: TWideStringField;
ADODataSet1FAX: TWideStringField;
ADODataSet1ClientTypes: TWideStringField;
ADODataSet1EMail: TWideStringField;
ADODataSet1WEBs: TWideStringField;
ADODataSet1Remark: TMemoField;
ADODataSet8: TADODataSet;
ADODataSet8Num: TAutoIncField;
ADODataSet8ClientName: TWideStringField;
ADODataSet8Motif: TWideStringField;
ADODataSet8RelationMode: TWideStringField;
ADODataSet8Principal: TWideStringField;
ADODataSet8Dates: TDateTimeField;
ADODataSet8Times: TDateTimeField;
ADODataSet8Remark: TMemoField;
ADODataSet5SellNumber: TIntegerField;
ADODataSet2huida: TWideStringField;
ADODataSet2danyou: TWideStringField;
ADODataSet2hangye: TWideStringField;
ADODataSet2quyu: TWideStringField;
ADODataSet2wenti: TWideStringField;
ADODataSet2tese: TWideStringField;
ADODataSet2zijin: TWideStringField;
ADODataSet2bianhao: TWideStringField;
ADODataSet2dianpu: TWideStringField;
ADODataSet2xinxi: TWideStringField;
ADODataSet2pingjia: TWideStringField;
ADODataSet2city: TWideStringField;
ADODataSet2shiqu: TWideStringField;
ADODataSet1data: TDateField;
ADODataSet2sex: TWideStringField;
procedure DataModuleCreate(Sender: TObject);
procedure ADODataSet7CalcFields(DataSet: TDataSet);
procedure ADOTable1AfterScroll(DataSet: TDataSet);
procedure DataModuleDestroy(Sender: TObject);
procedure ADODataSet1BeforeEdit(DataSet: TDataSet);
procedure ADODataSet5BeforeEdit(DataSet: TDataSet);
procedure ADODataSet6BeforeEdit(DataSet: TDataSet);
//定位数据内容
procedure GoToDataSet(NowData, ToData : TADODataset);
procedure ADODataSet11BeforeEdit(DataSet: TDataSet);
//定义更新所地区名称列表
procedure UpdateAreaList;
procedure ADOTable1PostError(DataSet: TDataSet; E: EDatabaseError;
var Action: TDataAction);
//检测输入的客户类型
procedure AddClientTypeList(Field,Types:String;List:TStrings);
procedure LoadSortData;
procedure ADODataSet2pingjiaGetText(Sender: TField; var Text: String;
DisplayText: Boolean);
procedure ADODataSet2pingjiaSetText(Sender: TField;
const Text: String);
private
{ Private declarations }
public
{ Public declarations }
List : TStringList;
ClientNo : String; //客户编号
ProductNo : array [1..2] of String; //产品编号
SellNo : String; //客户订单号
UserName : String; //用户名
Co : String; //公司名称
end;
var
DM1 : TDM1;
implementation
uses MAIN, EditClient, Load, EditBespeak, EditLinkmanForm1, CallatForm1;
{$R *.dfm}
procedure TDM1.DataModuleCreate(Sender: TObject);
begin
ADOConnection1.Close;
List := TStringList.Create; //初始化地区名称列表
ADOConnection1.ConnectionString:='FILE NAME='+Application.GetNamePath+'Connect.udl';
ADODataSet1.Open;
ADODataSet2.Open;
ADODataSet3.Open;
ADODataSet4.Open;
ADODataSet5.Open;
ADODataSet6.Open;
ADODataSet7.Open;
ADODataSet8.Open;
ADODataSet9.Open;
ADODataSet10.Open;
ADOTable1.Open;
LinkManList.Open;
SellList.Open;
ADODataSet11.Open;
LogData.Open;
ADOSort.Open;
ADODataSet1.Sort:='ID ASC';
LogData.Sort:='Degree ASC';
//检测数据连接的类型
if pos('Microsoft.Jet.OLEDB',ADOConnection1.Provider)>0 then begin
MainForm.Option.Visible:=false;
MainForm.BackUpdata.Visible:=false;
MainForm.Compress.Visible:=true;
end;
//检测 本地是否存在查询缓存
if not FileExists('CRM.pfADTG')then begin
TransformTable.Open;
TransformTable.SaveToFile('CRM.pfADTG',pfADTG);
end else TransformTable.LoadFromFile('CRM.pfADTG');
LoadSortData;
//显示每日事务
MainForm.ShowCalendar;
end;
procedure TDM1.AddClientTypeList(Field,Types:String;List:TStrings);
var
I : Integer;
begin
//检测输入的客户类型
with DM1.ADOQuery1 do try
Close;
SQL.Clear;
SQL.Add('Select * from Sort where '+Field+'='+''''+Types+'''');
Open;
List.Clear;
if RecordCount>0 then begin
First;
for i:=0 to RecordCount-1 do begin
List.Add(FieldByName('Items').AsString);
Next;
end;
end;
except
end;
end;
procedure TDM1.ADODataSet7CalcFields(DataSet: TDataSet);
begin
//计算字段
DataSet.FieldByName('Money').AsFloat:=DataSet.FieldByName('Number').AsFloat*DataSet.FieldByName('UnitPrice').AsFloat*DataSet.FieldByName('Agio').AsFloat/10;
end;
procedure TDM1.ADOTable1AfterScroll(DataSet: TDataSet);
begin
//数据滚动之后
UpdateAreaList;
end;
procedure TDM1.DataModuleDestroy(Sender: TObject);
begin
//注销
List.Destroy;
end;
procedure TDM1.ADODataSet1BeforeEdit(DataSet: TDataSet);
begin
//记录编辑内容
ClientNo:=DataSet.FieldByName('ID').AsString;
Co:=DataSet.FieldByName('CoName').AsString;
end;
procedure TDM1.ADODataSet5BeforeEdit(DataSet: TDataSet);
begin
//记录编辑内容
ProductNo[1]:=DataSet.FieldByName('ID').AsString;
ProductNo[2]:=DataSet.FieldByName('ProductName').AsString;
end;
procedure TDM1.ADODataSet6BeforeEdit(DataSet: TDataSet);
begin
//记录订单号
SellNo:=DataSet.FieldByName('OrderFormID').AsString;
end;
procedure TDM1.GoToDataSet(NowData, ToData: TADODataset);
var
S : String;
Datas : Integer;
begin
//定位数据内容
S := NowData.FieldByName('ClientName').AsString;
Datas := NowData.FieldByName('Num').AsInteger;
ADODataSet1.Locate('CoName',S,[]);
TOData.Locate('Num',Datas,[]);
end;
procedure TDM1.ADODataSet11BeforeEdit(DataSet: TDataSet);
begin
//记录用户名称
UserName:=DataSet.FieldByName('用户名').AsString;
end;
procedure TDM1.UpdateAreaList;
var
i:integer;
begin
//更新编辑客户资料时的地区列表
List.Clear;
ADOTable1.Open;
with ADOQuery1 do try
Close;
SQL.Clear;
SQL.Add('Select * from 销售区域 where 所属区域=:PM');
Parameters.ParamByName('pm').Value:=ADOTable1.FieldByName('所属区域').AsString;
Open;
First;
for i:=0 to RecordCount-1 do begin
List.Add(FieldByName('地区名称').AsString);
next;
end;
Close;
except
end;
EditClientForm.DBComboBox2.Items:=List;
end;
procedure TDM1.ADOTable1PostError(DataSet: TDataSet; E: EDatabaseError;
var Action: TDataAction);
var
SendError : String;
begin
//保存错误时
SendError:='您在对数据进行保存操作时,发生了如下错误:';
SendError:=SendError+#13#10
+'-----------------------------------------'+#13#13
+E.Message;
Messagebox(0,PChar(SendError),'错误',MB_OK+MB_ICONWARNING);
DataSet.Cancel;
Action:=daAbort;
end;
procedure TDM1.LoadSortData;
begin
//显示客户类型
AddClientTypeList('Sorts','客户类型',EditClientForm.RzDBComboBox1.Items);
//显示职务设置
//显示部门设置
AddClientTypeList('Sorts','联系方式',EditBespeakForm.RzDBComboBox1.Items);
AddClientTypeList('Sorts','联系方式',CallatForm.RzDBComboBox1.Items);
end;
procedure TDM1.ADODataSet2pingjiaGetText(Sender: TField; var Text: String;
DisplayText: Boolean);
begin
IF Sender.Value='A' THEN TEXT:='目标客户';
IF Sender.Value='B' THEN TEXT:='潜在客户' ;
IF Sender.Value='C' THEN TEXT:='一般客户' ;
IF Sender.Value='D' THEN TEXT:='其他' ;
end;
procedure TDM1.ADODataSet2pingjiaSetText(Sender: TField;
const Text: String);
begin
IF TEXT='目标客户' THEN Sender.Value:='A' ;
IF TEXT='潜在客户' THEN Sender.Value:='B' ;
IF TEXT='一般客户' THEN Sender.Value:='C' ;
IF TEXT='其他' THEN Sender.Value:='D' ;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -