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

📄 unit_customers.~pas

📁 学习程序,用于初学进销存的参考代码学习程序,用于初学进销存的参考代码
💻 ~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 + -