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

📄 dm.pas

📁 针对快餐店的会员管理系统.具有详细的分类及管理作用
💻 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 + -