📄 unit_customers.pas
字号:
unit unit_customers;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ImgList, Buttons, ToolWin, ComCtrls, StdCtrls, DBCtrls, Mask,
Grids, DBGrids, DB, ADODB, ExtCtrls;
type
TfrmCustomers = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
DBGCustomers: TDBGrid;
TBCusterDetail: TTabSheet;
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
Label16: TLabel;
Label18: TLabel;
Label17: TLabel;
DBGLinker: TDBGrid;
Memo: TMemo;
StatusBar3: TStatusBar;
TVCustomers: TTreeView;
CoolBar1: TCoolBar;
SB_Exit: TSpeedButton;
SB_Save: TSpeedButton;
SB_Filter: TSpeedButton;
SB_Add: TSpeedButton;
SB_Del: TSpeedButton;
SB_First: TSpeedButton;
SB_Forward: TSpeedButton;
ImageList1: TImageList;
DSCustomers: TDataSource;
ADOCustomers: TADOQuery;
DSLinker: TDataSource;
ADOLinker: TADOTable;
SB_Next: TSpeedButton;
DBN: TDBNavigator;
ADOCustomersID: TAutoIncField;
ADOCustomersCuster_No: TStringField;
ADOCustomersCuster_Name: TStringField;
ADOCustomersCuster_Type_ID: TIntegerField;
ADOCustomersBegin_Date: TDateTimeField;
ADOCustomersSeller: TStringField;
ADOCustomersCredit: TStringField;
ADOCustomersCLevel: TStringField;
ADOCustomersAddress: TStringField;
ADOCustomersEmail: TStringField;
ADOCustomersPhone: TStringField;
ADOCustomersFax: TStringField;
ADOCustomersHttp: TStringField;
ADOCustomersBank_No: TStringField;
ADOCustomersTax_No: TStringField;
ADOCustomersCorporate: TStringField;
ADOCustomersContract_Count: TIntegerField;
ADOCustomersSum_Money: TBCDField;
ADOCustomersNote: TStringField;
ADO_Customer_Type: TADOTable;
ADO_Level: TADOTable;
ADO_Credit: TADOTable;
ADOCustomerstype_name: TStringField;
ADOCustomerslevelname: TStringField;
DB_CNo: TDBEdit;
DB_CName: TDBEdit;
DB_CType: TDBLookupComboBox;
DB_CLevel: TDBLookupComboBox;
DB_CSDate: TDBEdit;
DB_CAddress: TDBEdit;
DB_CCredit: TDBLookupComboBox;
DB_CSeller: TDBEdit;
DB_CPhone: TDBEdit;
DB_CEmail: TDBEdit;
DB_CBank_No: TDBEdit;
DB_CCorporate: TDBEdit;
DB_CFax: TDBEdit;
DB_CHttp: TDBEdit;
DB_CSum_Money: TDBEdit;
DB_CContract_Count: TDBEdit;
DB_Memo: TDBMemo;
ADOCustomerscreditname: TStringField;
SB_Last: TSpeedButton;
DS_Type: TDataSource;
procedure FormShow(Sender: TObject);
procedure TVCustomersClick(Sender: TObject);
procedure SB_AddClick(Sender: TObject);
procedure DBNClick(Sender: TObject; Button: TNavigateBtn);
procedure DBGLinkerKeyPress(Sender: TObject; var Key: Char);
procedure SB_SaveClick(Sender: TObject);
procedure DB_CNoChange(Sender: TObject);
procedure DB_CNoEnter(Sender: TObject);
procedure SB_DelClick(Sender: TObject);
procedure SB_ExitClick(Sender: TObject);
procedure DSCustomersStateChange(Sender: TObject);
procedure SB_FirstClick(Sender: TObject);
procedure SB_ForwardClick(Sender: TObject);
procedure SB_NextClick(Sender: TObject);
procedure SB_LastClick(Sender: TObject);
procedure ADOCustomersBeforeScroll(DataSet: TDataSet);
private
procedure Link_DBEditToField();
procedure InsertNewRecord();
procedure UpdateTVNode();
public
bInsert,bSave:boolean;
oldvalue,newvalue:string;
end;
var
frmCustomers: TfrmCustomers;
implementation
uses unit_main_dm, main;
{$R *.dfm}
procedure TfrmCustomers.FormShow(Sender: TObject);
var _sql:String;
begin
ADOCustomers.Active:=true;
{ _sql:='select * from ms_custer_hdr';
Main_DM.IniTreeView_OpenADOQuery(TVCustomers,ADOCustomers,'客户资料','Custer_No',_sql);
bSave:=false;
bInsert:=true; }
end;
procedure TfrmCustomers.Link_DBEditToField();//初始化数据集和DBEDIT的连接.
begin
{DB_CNo.Text:=Trim(ADOCustomers.FieldByName('Custer_No').AsString);
DB_CName.Text:=Trim(ADOCustomers.FieldByName('Custer_Name').AsString);
try
//DB_CSDate.Date:=StrToDate(Trim(ADOCustomers.FieldByName('Begin_Date').AsString));
except
// DB_CSDate.Date:=Now();
end ;
DB_CAddress.Text:=Trim(ADOCustomers.FieldByName('Address').AsString);
DB_CSeller.Text:=Trim(ADOCustomers.FieldByName('Seller').AsString);
DB_CPhone.Text:=Trim(ADOCustomers.FieldByName('Phone').AsString);
DB_CEmail.Text:=Trim(ADOCustomers.FieldByName('Email').AsString);
DB_CBank_No.Text:=Trim(ADOCustomers.FieldByName('Bank_No').AsString);
DB_CCorporate.Text:=Trim(ADOCustomers.FieldByName('Corporate').AsString);
DB_CFax.Text:=Trim(ADOCustomers.FieldByName('Fax').AsString);
DB_CHttp.Text:=Trim(ADOCustomers.FieldByName('Http').AsString);
DB_CSum_Money.Text:=Trim(ADOCustomers.FieldByName('Sum_Money').AsString);
DB_CContract_Count.Text:=Trim(ADOCustomers.FieldByName('Contract_Count').AsString);
DB_Memo.Text:=Trim(ADOCustomers.FieldByName('Note').AsString);
DB_CType.Text:=Trim(ADOCustomers.FieldByName('Custer_Type_ID').AsString); //表示的字段
DB_CLevel.Text:=Trim(ADOCustomers.FieldByName('CLevel').AsString);
DB_CCredit.Text:=Trim(ADOCustomers.FieldByName('Credit').AsString); }
end;
procedure TfrmCustomers.TVCustomersClick(Sender: TObject);
begin
Main_DM.ClickTreeView(TVCustomers,ADOCustomers,'Custer_No');
end;
procedure TfrmCustomers.SB_AddClick(Sender: TObject);
begin
if (ADOCustomers.State=dsEdit) or (ADOCustomers.State=dsInsert) then
begin
if (MessageBox(self.Handle,'增加数据需要保存当前编辑','提示!',MB_YESNOCANCEL+MB_ICONQUESTION))=IDYES then
ADOCustomers.Post
else
exit;
end;
ADOCustomers.Append;
DB_CNo.Text:=Main_DM.AutoCreateDateTimeNo;
//DB_CSDate.Date:=Now();
//SB_Add.Enabled:=false;
// SB_Save.Enabled:=true;
end;
//新增一条记录时的函数实现部分
procedure TfrmCustomers.InsertNewRecord();
begin
end;
procedure TfrmCustomers.DBNClick(Sender: TObject; Button: TNavigateBtn);
begin
case Button of
nbFirst : DBN.DataSource.DataSet.First;
nbPrior : DBN.DataSource.DataSet.Prior;
nbNext : DBN.DataSource.DataSet.Next;
nbLast : DBN.DataSource.DataSet.Last;
nbInsert : DBN.DataSource.DataSet.Append;
nbDelete : DBN.DataSource.DataSet.Delete;
nbEdit : DBN.DataSource.DataSet.Edit;
nbPost : DBN.DataSource.DataSet.Post;
nbCancel : DBN.DataSource.DataSet.Cancel;
nbRefresh: DBN.DataSource.DataSet.Refresh;
end;
end;
procedure TfrmCustomers.DBGLinkerKeyPress(Sender: TObject; var Key: Char);
begin
if(Key=#13) then
sendmessage(DBGLinker.handle,WM_KEYDOWN,VK_TAB,0) ;
end;
procedure TfrmCustomers.SB_SaveClick(Sender: TObject);
var _sql:string;
begin
if (ADOCustomers.State=dsEdit) or (ADOCustomers.State=dsInsert) then
begin
ADOCustomers.Post;
SB_Save.Enabled:=false;
end;
{ tmp:=TADOQuery.Create(self);
tmp.Connection:=Main_DM.ADOConn;
tmp.Close;
tmp.SQL.Clear;
_sql:='exec sp_cjh_insert_customers_hdr';
_sql:=_sql+' '+ ''''+Trim(DB_CNo.Text)+'''';
_sql:=_sql+','+ ''''+Trim(DB_CName.Text)+'''';
_sql:=_sql+','+ ''''+Trim(DB_CType.Text)+'''';
// _sql:=_sql+','+ ''''+DateToStr(DB_CSDate.Date)+'''';
_sql:=_sql+','+ ''''+Trim(DB_CSeller.Text)+'''';
_sql:=_sql+','+ ''''+Trim(DB_CCredit.Text)+'''';
_sql:=_sql+','+ ''''+Trim(DB_CLevel.Text)+'''';
_sql:=_sql+','+ ''''+Trim(DB_CAddress.Text)+'''';
_sql:=_sql+','+ ''''+Trim(DB_CEmail.Text)+'''';
_sql:=_sql+','+ ''''+Trim(DB_CPhone.Text)+'''';
_sql:=_sql+','+ ''''+Trim(DB_CFax.Text)+'''';
_sql:=_sql+','+ ''''+Trim(DB_CHttp.Text)+'''';
_sql:=_sql+','+ ''''+Trim(DB_CBank_No.Text)+'''';
_sql:=_sql+','+ ''''+Trim(DB_CCorporate.Text)+'''';
_sql:=_sql+','+ ''''+Trim(DB_Memo.Text)+'''';
tmp.SQL.Add(_sql);
try
begin
UpdateTVNode();
tmp.ExecSQL;
SB_Save.Enabled:=false;
SB_Add.Enabled:=true;
ADOCustomers.Close;
ADOCustomers.Open;
Main_DM.ClickTreeView(TVCustomers,ADOCustomers,'Custer_No');
end;
except
ShowMessage('Insert or Edit Data Error!');
end; }
end;
procedure TfrmCustomers.UpdateTVNode();
var tmp:TADOQuery;newnode:TTreeNode;
begin
tmp:=TADOQuery.Create(self);
tmp.Connection:=Main_DM.ADOConn;
tmp.Close;
tmp.SQL.Clear;
tmp.SQL.Add('select * from ms_custer_hdr where Custer_No='''+DB_CNo.Text+'''');
tmp.Open;
if tmp.IsEmpty then
begin
newnode:=TVCustomers.Items.AddChild(TVCustomers.TopItem,DB_CNo.Text);
newnode.ImageIndex:=1;
newnode.SelectedIndex:=2;
newnode.Selected:=true;
end;
tmp.Free;
end;
procedure TfrmCustomers.DB_CNoChange(Sender: TObject);
begin
{
newvalue:=DB_CNo.Text+ DB_CName.Text+DB_CType.Text+DateToStr(DB_CSDate.Date)+DB_CSeller.Text;
newvalue:=oldvalue+ DB_CCredit.Text+ DB_CLevel.Text+ DB_CAddress.Text+DB_CEmail.Text+ DB_CPhone.Text;
newvalue:=oldvalue+ DB_CFax.Text+ DB_CHttp.Text+ DB_CBank_No.Text+DB_CCorporate.Text+DB_Memo.Text;
if newvalue<>oldvalue then
begin
SB_Add.Enabled:=false;
SB_Save.Enabled:=true;
end; }
end;
procedure TfrmCustomers.DB_CNoEnter(Sender: TObject);
begin
{ oldvalue:=DB_CNo.Text+ DB_CName.Text+DB_CType.Text+DateToStr(DB_CSDate.Date)+DB_CSeller.Text;
oldvalue:=oldvalue+ DB_CCredit.Text+ DB_CLevel.Text+ DB_CAddress.Text+DB_CEmail.Text+ DB_CPhone.Text;
oldvalue:=oldvalue+ DB_CFax.Text+ DB_CHttp.Text+ DB_CBank_No.Text+DB_CCorporate.Text+DB_Memo.Text; }
end;
procedure TfrmCustomers.SB_DelClick(Sender: TObject);
var sCNo:string;i:integer;
begin
sCNo:= ADOCustomers.FieldByName('Custer_No').AsString;
if((ADOCustomers.RecordCount>0) and (MessageBox(handle,'确定删除这笔记录吗?', '提示', MB_YESNO+MB_ICONWARNING)=IDYES)) then
begin
ADOCustomers.Delete;
for i:=0 to TVCustomers.Items.Count do
begin
if(TVCustomers.Items.Item[i].Text=sCNo) then
begin
TVCustomers.Items.Item[i].Delete;
break;
end;
end;
end;
end;
procedure TfrmCustomers.SB_ExitClick(Sender: TObject);
begin
PostMessage(frmMain.Handle,CloseForm,0,0);
end;
procedure TfrmCustomers.DSCustomersStateChange(Sender: TObject);
begin
// if (DSCustomers.State=dsEdit) or (DSCustomers.State=dsInsert) then
// SB_Save.Enabled:=true;
end;
procedure TfrmCustomers.SB_FirstClick(Sender: TObject);
begin
ADOCustomers.First;
end;
procedure TfrmCustomers.SB_ForwardClick(Sender: TObject);
begin
ADOCustomers.Prior;
end;
procedure TfrmCustomers.SB_NextClick(Sender: TObject);
begin
ADOCustomers.Next;
end;
procedure TfrmCustomers.SB_LastClick(Sender: TObject);
begin
ADOCustomers.Last;
end;
procedure TfrmCustomers.ADOCustomersBeforeScroll(DataSet: TDataSet);
begin
if (ADOCustomers.State=dsEdit) or (ADOCustomers.State=dsInsert) then
begin
if (MessageBox(self.Handle,'增加数据需要保存当前编辑','提示!',MB_YESNOCANCEL+MB_ICONQUESTION))=IDYES then
ADOCustomers.Post
else
ADOCustomers.Cancel;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -