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

📄 editclient.pas

📁 针对快餐店的会员管理系统.具有详细的分类及管理作用
💻 PAS
字号:
unit EditClient;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, RzButton, DBCtrls, RzDBNav, StdCtrls, ComCtrls, RzDBEdit,
  RzDBCmbo, Mask, RzEdit, ExtCtrls, RzPanel, RzCmboBx, DB;

type
  TEditClientForm = class(TForm)
    RzGroupBox1: TRzGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    RzDBEdit1: TRzDBEdit;
    RzDBEdit2: TRzDBEdit;
    RzDBEdit3: TRzDBEdit;
    RzDBEdit4: TRzDBEdit;
    RzDBEdit5: TRzDBEdit;
    RzDBEdit6: TRzDBEdit;
    RzDBEdit7: TRzDBEdit;
    RzDBEdit8: TRzDBEdit;
    RzDBNavigator1: TRzDBNavigator;
    RzBitBtn3: TRzBitBtn;
    RzBitBtn1: TRzBitBtn;
    RzBitBtn2: TRzBitBtn;
    RzBitBtn4: TRzBitBtn;
    RzBitBtn5: TRzBitBtn;
    RzDBLookupComboBox2: TRzDBLookupComboBox;
    DBComboBox2: TRzDBComboBox;
    RzDBComboBox1: TRzDBComboBox;
    RzDBComboBox2: TRzDBComboBox;
    Label12: TLabel;
    RzDBMemo1: TRzDBMemo;
    procedure RzBitBtn1Click(Sender: TObject);
    procedure RzBitBtn2Click(Sender: TObject);
    procedure RzBitBtn3Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure RzBitBtn4Click(Sender: TObject);
    procedure RzBitBtn5Click(Sender: TObject);
    procedure DBComboBox2Exit(Sender: TObject);
    procedure RzDBEdit1Exit(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    //更变客户名称
    function ChangeClientName(Tablest,OClient,NClient:String):Boolean;
    procedure RzDBComboBox1Exit(Sender: TObject);
    //检测输入的类型是否和原来一致,如果不是,则写入
    procedure TestDataType(InText,Field:String; Lists:TStrings);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  EditClientForm: TEditClientForm;

implementation

uses DM, EditLinkmanForm1, EditBespeak, CallatForm1;

{$R *.dfm}

procedure TEditClientForm.RzBitBtn1Click(Sender: TObject);
var
   S : String;
begin
  S:=RzDBEdit2.Text;
//如果只是增加数据

  if DM1.ADODataSet1.State in[dsInsert] then
     DM1.ADODataSet1.UpdateBatch
  else if DM1.ADODataSet1.State in[dsEdit] then begin
  //检测关键的公司名称是否产生了变动
     if RzDBEdit2.Text=DM1.Co then
        DM1.ADODataSet1.UpdateBatch
     else begin
        //如果产生了变动,则需要改变多处表中关于  公司名称
        //********销售列表*********
        if ChangeClientName('ProductSell',DM1.Co,S)then begin
           DM1.ADODataSet6.Requery();
           DM1.SellList.Requery();
        end;
        //******销售明细**********
        if ChangeClientName('SellDetail',DM1.Co,S)then
           DM1.ADODataSet6.Requery();
        //***********联系人列表*****************
        if ChangeClientName('LinkMan',DM1.Co,S)then begin
           DM1.ADODataSet2.Requery();
           DM1.LinkManList.Requery();
        end;
        //************客户拜访记录****************
        if ChangeClientName('ClientVisit',DM1.Co,S)then begin
           DM1.ADODataSet4.Requery();
           DM1.ADODataSet10.Requery();
        end;
        //***********客户预约记录*****************
        if ChangeClientName('ClientBespeak',DM1.Co,S)then begin
           DM1.ADODataSet8.Requery();
           DM1.ADODataSet9.Requery();
        end;
        DM1.ADODataSet1.UpdateBatch;
     end;
  end;

Close;
end;

procedure TEditClientForm.RzBitBtn2Click(Sender: TObject);
begin
   Close;
end;

procedure TEditClientForm.RzBitBtn3Click(Sender: TObject);
begin
//添加联系人
   DM1.ADODataSet2.Append;
   EditLinkmanForm.ShowModal;
end;

procedure TEditClientForm.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
   DM1.ADODataSet1.Cancel;
end;

procedure TEditClientForm.RzBitBtn4Click(Sender: TObject);
begin
//增加拜访记录
   DM1.ADODataSet4.Append;
   CallatForm.ShowModal;
end;

procedure TEditClientForm.RzBitBtn5Click(Sender: TObject);
begin
//增加预约记录
   DM1.ADODataSet8.Append;
   EditBespeakForm.ShowModal;
end;

procedure TEditClientForm.DBComboBox2Exit(Sender: TObject);
var
   i:integer;
   B:Boolean;
begin
  //如果发现输入的名称与列表的不一致,则新增不一致名称到列表中
  B:=false;
  if DBComboBox2.Text=''then Exit;
  
  for i:=0 to DM1.List.Count-1 do begin
     if (DBComboBox2.Text<>DM1.List.Strings[i])and not(B=true) then
        B:=false
     else B:=true;
  end;
  if not B then begin
     DM1.ADODataSet3.Append;
     DM1.ADODataSet3.FieldByName('地区名称').AsString:=DBComboBox2.Text;
     DM1.ADODataSet3.Post;
     DM1.ADODataSet3.Requery();
     DM1.UpdateAreaList;
  end;

end;

procedure TEditClientForm.RzDBEdit1Exit(Sender: TObject);
begin
//检测客户编号是否重复
   with DM1.ADOQuery1 do try
      Close;
      SQL.Clear;
      SQL.Add('Select * from ClientData where ID=:PM');
      Parameters.ParamByName('PM').Value:=RzDBEdit1.Text;
      Open;
      if ((DM1.ADODataSet1.State in[dsEdit])and(RecordCount=1)and(RzDBEdit1.Text<>DM1.ClientNo))or
         ((DM1.ADODataSet1.State in[dsInsert])and(RecordCount>0))then
         begin
         Messagebox(handle,'您输入的编号已存在,请重新输入!','错误',MB_OK+MB_ICONERROR);
         RzDBEdit1.SetFocus;
         RzDBEdit1.Undo;

      end;
   except
   end;
end;

procedure TEditClientForm.FormCloseQuery(Sender: TObject;
  var CanClose: Boolean);
begin
   if DM1.ADODataSet1.State in [dsEdit,dsInsert] then begin
      if Messagebox(handle,'该客户资料已经修改过,您确定要放弃保存并退出吗?','询问',MB_YESNO+MB_ICONQUESTION)=IDYES then
         Canclose:=true
      else CanClose:=false;
   end;
end;

Function TEditClientForm.ChangeClientName(Tablest, OClient, NClient: String):Boolean;
var I : Integer;
begin
//更变客户名称
   Result:=FALSE;
   with DM1.ADOQuery1 do try
      Close;
      SQL.Clear;
      SQL.Add('Select * from '+Tablest+' where ClientName='+''''+OClient+'''');
      Open;
      if RecordCount>0 then begin
         Result:=true;
         First;
         Edit;
         for i:=0 to RecordCount-1 do begin
             FieldByName('ClientName').AsString:=NClient;
             Next;
             Edit;
         end;
         post;
      end;
   except
   end;

end;

procedure TEditClientForm.RzDBComboBox1Exit(Sender: TObject);
begin
   TestDataType(RzDBComboBox1.Text,'客户类型',RzDBComboBox1.Items);
end;

procedure TEditClientForm.TestDataType(InText, Field: String;
  Lists: TStrings);
begin
  //检测输入的类型是否和原来一致,如果不是,则写入
  if InText='' then Exit;
  with DM1.ADOQuery1 do try
     Close;
     SQL.Clear;
     SQL.Add('Select * from Sort where Sorts='+''''+Field+''''+' and Items='+''''+InText+'''');
     Open;
     if RecordCount<1 then begin
        Edit;
        FieldByName('Sorts').AsString:=Field;
        FieldByName('Items').AsString:=InText;
        Lists.Add(InText);
        post;
     end;
     DM1.ADOSort.Requery();
  except
  end;
end;

end.

⌨️ 快捷键说明

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