📄 clientlist.pas
字号:
unit ClientList;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, RzTabs, ExtCtrls, ComCtrls, ToolWin,
Menus, StdCtrls, DBCtrls, ADODB, DB, Shellapi,
cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage,
cxEdit, cxDBData, cxTextEdit, cxGridCustomTableView, cxGridTableView,
cxGridDBTableView, cxControls, cxGridCustomView, cxClasses, cxGridLevel,
cxGrid, RzDBEdit;
type
TClientListForm = class(TForm)
RzPageControl1: TRzPageControl;
Splitter1: TSplitter;
RzPageControl2: TRzPageControl;
TabSheet1: TRzTabSheet;
TabSheet2: TRzTabSheet;
TabSheet3: TRzTabSheet;
TabSheet4: TRzTabSheet;
TabSheet5: TRzTabSheet;
PopupMenu1: TPopupMenu;
TabSheet6: TRzTabSheet;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
PopupMenu2: TPopupMenu;
MenuItem1: TMenuItem;
MenuItem2: TMenuItem;
MenuItem3: TMenuItem;
MenuItem4: TMenuItem;
MenuItem5: TMenuItem;
PopupMenu3: TPopupMenu;
MenuItem6: TMenuItem;
MenuItem7: TMenuItem;
MenuItem8: TMenuItem;
MenuItem9: TMenuItem;
MenuItem10: TMenuItem;
PopupMenu4: TPopupMenu;
MenuItem11: TMenuItem;
MenuItem12: TMenuItem;
MenuItem13: TMenuItem;
MenuItem14: TMenuItem;
MenuItem15: TMenuItem;
PopupMenu5: TPopupMenu;
MenuItem16: TMenuItem;
MenuItem17: TMenuItem;
MenuItem18: TMenuItem;
MenuItem19: TMenuItem;
MenuItem20: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
N9: TMenuItem;
N10: TMenuItem;
N12: TMenuItem;
N13: TMenuItem;
N14: TMenuItem;
N15: TMenuItem;
N16: TMenuItem;
N17: TMenuItem;
N18: TMenuItem;
N19: TMenuItem;
N20: TMenuItem;
RzDBMemo1: TRzDBMemo;
cxGrid1: TcxGrid;
cxGrid1Level1: TcxGridLevel;
cxGrid1DBTableView1: TcxGridDBTableView;
cxGrid1DBTableView1DBColumn: TcxGridDBColumn;
cxGrid1DBTableView1DBColumn1: TcxGridDBColumn;
cxGrid1DBTableView1DBColumn2: TcxGridDBColumn;
cxGrid1DBTableView1DBColumn3: TcxGridDBColumn;
cxGrid1DBTableView1DBColumn4: TcxGridDBColumn;
cxGrid1DBTableView1DBColumn5: TcxGridDBColumn;
cxGrid1DBTableView1DBColumn6: TcxGridDBColumn;
cxGrid1DBTableView1DBColumn7: TcxGridDBColumn;
cxGrid1DBTableView1DBColumn8: TcxGridDBColumn;
cxGrid1DBTableView1EMAIL: TcxGridDBColumn;
cxGrid1DBTableView1DBColumn9: TcxGridDBColumn;
cxGrid2: TcxGrid;
cxGrid2Level1: TcxGridLevel;
cxGrid2DBTableView1: TcxGridDBTableView;
cxGrid2DBTableView1ID: TcxGridDBColumn;
cxGrid2DBTableView1DBColumn1: TcxGridDBColumn;
cxGrid2DBTableView1DBColumn2: TcxGridDBColumn;
cxGrid2DBTableView1EMail: TcxGridDBColumn;
cxGrid2DBTableView1DBColumn3: TcxGridDBColumn;
cxGrid2DBTableView1DBColumn4: TcxGridDBColumn;
cxGrid2DBTableView1DBColumn5: TcxGridDBColumn;
cxGrid2DBTableView1DBColumn6: TcxGridDBColumn;
cxGrid2DBTableView1DBColumn7: TcxGridDBColumn;
cxGrid2DBTableView1DBColumn8: TcxGridDBColumn;
cxGrid2DBTableView1DBColumn9: TcxGridDBColumn;
cxGrid3: TcxGrid;
cxGrid3Level1: TcxGridLevel;
cxGrid3DBTableView1: TcxGridDBTableView;
cxGrid3DBTableView1DBColumn: TcxGridDBColumn;
cxGrid3DBTableView1DBColumn1: TcxGridDBColumn;
cxGrid3DBTableView1DBColumn2: TcxGridDBColumn;
cxGrid3DBTableView1DBColumn3: TcxGridDBColumn;
cxGrid3DBTableView1DBColumn4: TcxGridDBColumn;
cxGrid3DBTableView1DBColumn5: TcxGridDBColumn;
cxGrid3DBTableView1DBColumn6: TcxGridDBColumn;
cxGrid4: TcxGrid;
cxGrid4Level1: TcxGridLevel;
cxGrid4DBTableView1: TcxGridDBTableView;
cxGrid4DBTableView1DBColumn: TcxGridDBColumn;
cxGrid4DBTableView1DBColumn1: TcxGridDBColumn;
cxGrid4DBTableView1DBColumn2: TcxGridDBColumn;
cxGrid4DBTableView1DBColumn3: TcxGridDBColumn;
cxGrid5: TcxGrid;
cxGrid5Level1: TcxGridLevel;
cxGrid5DBTableView1: TcxGridDBTableView;
cxGrid5DBTableView1DBColumn: TcxGridDBColumn;
cxGrid5DBTableView1DBColumn1: TcxGridDBColumn;
cxGrid5DBTableView1DBColumn2: TcxGridDBColumn;
cxGrid5DBTableView1DBColumn3: TcxGridDBColumn;
cxGrid5DBTableView1DBColumn4: TcxGridDBColumn;
cxGrid5DBTableView1DBColumn5: TcxGridDBColumn;
cxGrid5DBTableView1DBColumn6: TcxGridDBColumn;
cxGrid2DBTableView1DBColumn10: TcxGridDBColumn;
N21: TMenuItem;
N23: TMenuItem;
N24: TMenuItem;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
//编辑客户信息内容
procedure EditClient(ID:integer);
//清除数据表的内容
procedure ClearData(TableName,CoName,Co : String);
//删除一条记录
procedure DeleteData(DataSet, UpDateDataSet :TADODataSet);
procedure N1Click(Sender: TObject);
procedure FormResize(Sender: TObject);
procedure N8Click(Sender: TObject);
//发E-MAIL或上WEB
procedure SendEMailorWeb(ID : Integer);
procedure cxGrid1DBTableView1DblClick(Sender: TObject);
procedure cxGrid2DBTableView1DblClick(Sender: TObject);
procedure cxGrid3DBTableView1DblClick(Sender: TObject);
procedure cxGrid4DBTableView1DblClick(Sender: TObject);
procedure cxGrid5DBTableView1DblClick(Sender: TObject);
procedure N13Click(Sender: TObject);
//自动生成订单号
procedure AutoOrderFormID;
private
{ Private declarations }
public
{ Public declarations }
end;
var
ClientListForm: TClientListForm;
implementation
uses DM, EditClient, EditLinkmanForm1, MAIN, CallatForm1, Editsell,
EditBespeak;
{$R *.dfm}
procedure TClientListForm.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action:=caFree;
end;
procedure TClientListForm.EditClient(ID: integer);
var
Cos : String;
begin
//编辑客户信息内容
Cos:= DM1.ADODataSet1.FieldByName('CoName').AsString;
case ID of
1 : DM1.ADODataSet1.Append;
3 : begin
if Messagebox(handle,'删除该客户记录将会使与该客户相关的所有基本资料都被删除,您确定要删除这些记录吗?删除后不可恢复!','警告',MB_YESNO+MB_ICONWARNING+MB_DEFBUTTON2)=IDYES then begin
if DM1.ADODataSet1.RecordCount>0 then begin
ClearData('LinkMan','ClientName', Cos);
DM1.ADODataSet2.Requery;
ClearData('ClientVisit','ClientName',Cos);
DM1.ADODataSet4.Requery;
ClearData('ProductSell','ClientName',Cos);
DM1.ADODataSet6.Requery;
ClearData('ClientBespeak','ClientName',Cos);
DM1.ADODataSet8.Requery;
ClearData('SellDetail','ClientName',Cos);
DM1.ADODataSet7.Requery;
DM1.ADODataSet1.Delete;
end else Messagebox(handle,'没有发现可删除的记录','错误',MB_OK+MB_ICONWARNING);
end;
end;
4 : DM1.ADODataSet1.Requery;
32 : begin
with DM1.ADODataSet1 do try
Close;
CommandText:='Select * from ClientData';
Open;
except
end;
end;
//**************************************
5 : DM1.ADODataSet2.Append;
//6 : DM1.ADODataSet2.Edit;
7 : DeleteData(DM1.ADODataSet2,DM1.LinkManList);
8 : DM1.ADODataSet2.Requery;
//*********************************
9 : DM1.ADODataSet4.Append;
11 : DeleteData(DM1.ADODataSet4, DM1.ADODataSet10);
12 : DM1.ADODataSet4.Requery;
//*********************************
13 : AutoOrderFormID;
14 : begin
if DM1.ADODataSet6.RecordCount=0 then begin
Messagebox(handle,'没有任何可编辑的销售记录,请增加记录!','提示',MB_OK+MB_ICONINFORMATION);
Exit;
end else begin
EditSellForm.IsInsert:=false;
DM1.ADODataSet6.Edit;
end;
end;
15 : begin
if Messagebox(handle,'删除本条销售记录将会使与之相关的具体销售信息被删除,您确定要这么做吗?','询问',MB_YESNO+MB_ICONWARNING)=IDYES then begin
if DM1.ADODataSet6.RecordCount>0 then begin
ClearData('SellDetail','ClientName',Cos);
DM1.ADODataSet6.Delete;
MainForm.StatProductSell;
DM1.SellList.Requery();
end else Messagebox(handle,'没有发现可删除的记录','错误',MB_OK+MB_ICONWARNING);
end;
end;
16 : DM1.ADODataSet6.Requery;
//**********************************
17 : DM1.ADODataSet8.Append;
19 : begin
DeleteData(DM1.ADODataSet8, DM1.ADODataSet9);
MainForm.ShowCalendar;
end;
20 : DM1.ADODataSet8.Requery;
end;
case ID of
1,2 : EditClientForm.ShowModal; //客户编辑窗口
5,6 : EditLinkmanForm.ShowModal; //联系人编辑窗口
9,10: CallatForm.ShowModal; //会面记录
14: EditSellForm.ShowModal; //销售窗口
17,18: EditBespeakForm.ShowModal;//预约窗口
end;
end;
procedure TClientListForm.N1Click(Sender: TObject);
begin
EditClient(TPopupMenu(sender).Tag);
end;
procedure TClientListForm.FormResize(Sender: TObject);
begin
//调整窗口
RzPageControl2.Height:=(ClientListForm.Height div 2)-30;
end;
procedure TClientListForm.ClearData(TableName, CoName, Co: String);
begin
//清除数据表的内容
with DM1.ADOQuery1 do try
Close;
SQL.Clear;
SQL.Add('Delete From '+TableName+' Where '+CoName+'='+''''+Co+'''');
ExecSQL;
except
Messagebox(handle,'内容删除失败!在此之前,可能记录已经被删除!','错误',MB_OK+MB_ICONERROR);
Exit;
end;
end;
procedure TClientListForm.DeleteData(DataSet, UpDateDataSet: TADODataSet);
begin
//删除一条记录
try
if Messagebox(handle,'您确定要删除这条记录吗?','询问',MB_YESNO+MB_ICONQUESTION)=IDYES then
if DataSet.RecordCount>0 then begin
DataSet.Delete;
UpDateDataSet.Requery();
end
else Messagebox(handle,'没有发现可删除的记录','错误',MB_OK+MB_ICONWARNING);
except
Messagebox(Handle,'记录删除失败,可能在此之前已经被删除或更改过,请刷新数据库。','警告',MB_OK+MB_ICONWARNING);
end;
end;
procedure TClientListForm.N8Click(Sender: TObject);
begin
SendEMailorWeb(TPopupMenu(sender).Tag);
end;
procedure TClientListForm.SendEMailorWeb(ID: Integer);
var
Web, EMail, Email2 : String;
begin
//发送电子邮件或上该公司主页
Web := DM1.ADODataSet1.FieldByName('WEBs').AsString;
EMail := 'mailto:'+DM1.ADODataSet1.FieldByName('EMail').AsString;
Email2:= 'mailto:'+DM1.ADODataSet2.FieldByName('EMail').AsString;
case ID of
100 : begin
if Web<>'' then
ShellExecute(handle,nil,PChar(web),nil,nil,SW_SHOWNORMAL)
else Messagebox(handle,'该公司没有主页信息!','提示',MB_OK+MB_ICONINFORMATION);
end;
101 : begin
if (Email<>'mailto:')then
ShellExecute(handle,nil,pchar(Email),nil,nil,SW_SHOWNORMAL)
else Messagebox(handle,'没有该公司的电子邮件信息!','提示',MB_OK+MB_ICONINFORMATION);
end;
102 : begin
if Email2<>'mailto:' then
ShellExecute(handle,nil,pchar(EMail2),nil,nil,SW_SHOWNORMAL)
else Messagebox(handle,'没有该联系人的电子邮件信息!','提示',MB_OK+MB_ICONINFORMATION);
end;
end;
end;
procedure TClientListForm.cxGrid1DBTableView1DblClick(Sender: TObject);
begin
EditClient(2);
end;
procedure TClientListForm.cxGrid2DBTableView1DblClick(Sender: TObject);
begin
EditClient(6);
end;
procedure TClientListForm.cxGrid3DBTableView1DblClick(Sender: TObject);
begin
EditClient(10);
end;
procedure TClientListForm.cxGrid4DBTableView1DblClick(Sender: TObject);
begin
EditClient(14);
end;
procedure TClientListForm.cxGrid5DBTableView1DblClick(Sender: TObject);
begin
EditClient(18);
end;
procedure TClientListForm.N13Click(Sender: TObject);
begin
MainForm.PrintReport(TMenuItem(sender).Tag);
end;
procedure TClientListForm.AutoOrderFormID;
var
Order, OrderID,
AddID : String;
GetID : Word;
Index : Integer;
begin
//自动生成订单号
with DM1.ADOQuery1 do try
Close;
SQL.Clear;
//按NUM排序
SQL.Add('Select * from ProductSell ORDER BY Num ASC');
Open;
Last;
Order:=FieldByName('OrderFormID').AsString;
Close;
except
end;
//如果没有今天的销售编号
GetID:=pos('XS'+FormatDateTime('yyyyMMdd',now),Order);
if GetID=0 then begin
OrDerID:='XS'+FormatDateTime('yyyyMMdd',now)+'001';
end else begin
//如果有,则提取最后三位数
AddID:=Copy(Order,11,3);
Index:=StrToInt(addid);
Inc(index);
OrderID:='XS'+FormatDateTime('yyyyMMdd',now)+FormatFloat('000',Index);
end;
if Length(OrderID)=13 then begin
with DM1.ADODataSet6 do try
Append;
FieldByName('OrderFormID').AsString:=OrderID;
post;
except
end;
EditSellForm.IsInsert:=true;
DM1.ADODataSet6.Edit;
EditSellForm.ShowModal;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -