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

📄 customerform.pas

📁 功能全面的商业财会系统源码,清晰,很有参考价值.扩展性强.
💻 PAS
📖 第 1 页 / 共 3 页
字号:
unit CustomerForm;

interface

uses Windows, Messages, SysUtils, Classes, Graphics, Forms, Dialogs, Controls, StdCtrls,
  Buttons, ComCtrls, ExtCtrls, Mask, DBCtrls, DB, DBTables, Menus, Grids, DBGrids, DBLookup, BDE, SHELLAPI;

type
  TfrmCustomer = class(TForm)
    Panel1: TPanel;
    PageControl1: TPageControl;
    TabSheet2: TTabSheet;
    dsCustomer: TDataSource;
    memoNotes: TDBMemo;
    Panel3: TPanel;
    TabSheet3: TTabSheet;
    TabSheet4: TTabSheet;
    Panel2: TPanel;
    TabSheet1: TTabSheet;
    Label1: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    editCustomerName: TDBEdit;
    editAddressLine1: TDBEdit;
    editAddressLine2: TDBEdit;
    editCity: TDBEdit;
    editCountry: TDBEdit;
    editZipCode: TDBEdit;
    editPhone: TDBEdit;
    editFax: TDBEdit;
    editContact: TDBEdit;
    DBGrid1: TDBGrid;
    tblCContact: TTable;
    dsCContact: TDataSource;
    Panel4: TPanel;
    btnOK: TButton;
    btnCancel: TButton;
    editStateProv: TDBEdit;
    Label14: TLabel;
    editEMail: TDBEdit;
    Label15: TLabel;
    editWebPage: TDBEdit;
    Label16: TLabel;
    editCustomerNo: TDBEdit;
    chkSuspended: TDBCheckBox;
    GroupBox1: TGroupBox;
    Label2: TLabel;
    editDiscPC: TDBEdit;
    Label7: TLabel;
    editDiscDays: TDBEdit;
    Label8: TLabel;
    editNetDays: TDBEdit;
    editCreditLimit: TDBEdit;
    Label9: TLabel;
    GroupBox2: TGroupBox;
    Label10: TLabel;
    popNotes: TPopupMenu;
    popWordWrap: TMenuItem;
    btnPhone: TSpeedButton;
    cboCurrency: TDBLookupComboBox;
    btnCurrency: TSpeedButton;
    tblCustomer: TTable;
    btnNew: TButton;
    btnEdit: TButton;
    btnDelete: TButton;
    tblCustomerCustomerID: TAutoIncField;
    tblCustomerCustomerNo: TStringField;
    tblCustomerCustomerName: TStringField;
    tblCustomerAddressLine1: TStringField;
    tblCustomerAddressLine2: TStringField;
    tblCustomerCity: TStringField;
    tblCustomerStateProv: TStringField;
    tblCustomerZipCode: TStringField;
    tblCustomerCountry: TStringField;
    tblCustomerContact: TStringField;
    tblCustomerPhone: TStringField;
    tblCustomerFax: TStringField;
    tblCustomerEMail: TStringField;
    tblCustomerWebPage: TStringField;
    tblCustomerBillToOnly: TBooleanField;
    tblCustomerCurrencyID: TIntegerField;
    tblCustomerCreditLimit: TCurrencyField;
    tblCustomerDiscPC: TFloatField;
    tblCustomerDiscDays: TSmallintField;
    tblCustomerNetDays: TSmallintField;
    tblCustomerCOD: TBooleanField;
    tblCustomerSuspended: TBooleanField;
    tblCustomerPrintStatement: TBooleanField;
    tblCustomerAllowBackorders: TBooleanField;
    tblCustomerSalesmanID: TIntegerField;
    tblCustomerCustomerTypeID: TIntegerField;
    tblCustomerMessage: TMemoField;
    tblCustomerNotes: TMemoField;
    tblCContactCustomerID: TIntegerField;
    tblCContactContactID: TAutoIncField;
    tblCContactLastName: TStringField;
    tblCContactFirstName: TStringField;
    tblCContactJobTitle: TStringField;
    tblCContactBusinessPhone: TStringField;
    tblCContactFullName: TStringField;
    TabSheet5: TTabSheet;
    chkCOD: TDBCheckBox;
    Label18: TLabel;
    editBillToNo: TDBEdit;
    Label13: TLabel;
    memoCustomerMessage: TDBMemo;
    GroupBox3: TGroupBox;
    editTax1ExemptionNo: TDBEdit;
    Label11: TLabel;
    chkPrintStatement: TDBCheckBox;
    chkBillToOnly: TDBCheckBox;
    GroupBox4: TGroupBox;
    Label19: TLabel;
    cboSalesman: TDBLookupComboBox;
    btnSalesman: TSpeedButton;
    btnCustomerType: TSpeedButton;
    cboCustomerType: TDBLookupComboBox;
    Label20: TLabel;
    chkAllowBackorders: TDBCheckBox;
    cboBillTo: TDBLookupComboBox;
    tblBillTo: TTable;
    dsBillTo: TDataSource;
    tblBillToCustomerName: TStringField;
    tblBillToCustomerNo: TStringField;
    Label17: TLabel;
    Label12: TLabel;
    Label21: TLabel;
    Label22: TLabel;
    Label23: TLabel;
    Label24: TLabel;
    lblBillToOnlyMessage: TLabel;
    popContacts: TPopupMenu;
    popNew: TMenuItem;
    popEdit: TMenuItem;
    popDelete: TMenuItem;
    N1: TMenuItem;
    popPhone: TMenuItem;
    tblCustCtl: TTable;
    tblCustCtlNextCustomerNo: TIntegerField;
    qryARInv: TQuery;
    tblBillToBillToNo: TStringField;
    tblCustomerBillToNo: TStringField;
    tblCustomerTax1ID: TIntegerField;
    tblCustomerTax2ID: TIntegerField;
    cboTax1: TDBLookupComboBox;
    cboTax2: TDBLookupComboBox;
    btnTax1: TSpeedButton;
    tblCustomerTax1ExemptionNo: TStringField;
    tblCustomerTax2ExemptionNo: TStringField;
    editTax2ExemptionNo: TDBEdit;
    Label25: TLabel;
    btnTax2: TSpeedButton;
    tblCustCtlNextCustomerID: TIntegerField;
    btnWebPage: TSpeedButton;
    btnEmail: TSpeedButton;
    tblCContactEMail: TStringField;
    popEMail: TMenuItem;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure dsCustomerDataChange(Sender: TObject; Field: TField);
    procedure FormShow(Sender: TObject);
    procedure Panel2DblClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure dsCustomerUpdateData(Sender: TObject);
    procedure btnOKClick(Sender: TObject);
    procedure btnCancelClick(Sender: TObject);
    procedure popWordWrapClick(Sender: TObject);
    procedure btnPhoneClick(Sender: TObject);
    procedure cboCurrencyKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure tblCustomerAfterPost(DataSet: TDataSet);
    procedure btnCurrencyClick(Sender: TObject);
    procedure btnDeleteClick(Sender: TObject);
    procedure btnNewClick(Sender: TObject);
    procedure btnEditClick(Sender: TObject);
    procedure DBGrid1KeyPress(Sender: TObject; var Key: Char);
    procedure tblCContactBeforeDelete(DataSet: TDataSet);
    procedure tblCContactCalcFields(DataSet: TDataSet);
    procedure tblCustomerNewRecord(DataSet: TDataSet);
    procedure btnSalesmanClick(Sender: TObject);
    procedure btnCustomerTypeClick(Sender: TObject);
    procedure tblSalesmanCalcFields(DataSet: TDataSet);
    procedure cboBillToKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure cboSalesmanKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure cboCustomerTypeKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure PageControl1Change(Sender: TObject);
    procedure tblCustomerBillToOnlyChange(Sender: TField);
    procedure tblBillToFilterRecord(DataSet: TDataSet;
      var Accept: Boolean);
    procedure popPhoneClick(Sender: TObject);
    procedure tblCustomerCurrencyIDValidate(Sender: TField);
    procedure tblCustomerBillToNoChange(Sender: TField);
    procedure tblCustomerBillToNoValidate(Sender: TField);
    procedure cboTax1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure cboTax2KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure btnTax1Click(Sender: TObject);
    procedure btnTax2Click(Sender: TObject);
    procedure tblCustomerBeforePost(DataSet: TDataSet);
    procedure btnWebPageClick(Sender: TObject);
    procedure btnEmailClick(Sender: TObject);
    procedure tblCustomerWebPageSetText(Sender: TField;
      const Text: string);
    procedure dsCContactDataChange(Sender: TObject; Field: TField);
    procedure popEMailClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmCustomer: TfrmCustomer;

implementation

uses CustomersForm, BS1Form, CurrenciesForm, CContactForm, SalesmenForm,
  CusTypesForm, DialerForm, TaxesForm, LookUpsData;

var
  intClientHeight, intClientWidth: Integer;

{$R *.DFM}

procedure TfrmCustomer.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  if tblCustomer.State in [dsInsert, dsEdit] then btnOKClick(sender);
  try frmCustomers.DBGrid1.Setfocus; except; end;
  Action := caFree;
end;

procedure TfrmCustomer.dsCustomerDataChange(Sender: TObject;
  Field: TField);
begin
  if (tblCustomer.state = dsInsert) and (tblCustomerCustomerName.Value = '') then self.Caption := 'New Customer'
  else self.Caption := tblCustomerCustomerName.value;

  if tblCustomerPhone.AsString = '' then btnPhone.Enabled := False
  else btnPhone.Enabled := True;
  if tblCustomerEMail.AsString = '' then btnEMail.Enabled := False
  else btnEMail.Enabled := True;
  if tblCustomerWebPage.AsString = '' then btnWebPage.Enabled := False
  else btnWebPage.Enabled := True;

  if tblCustomerBillToNo.AsVariant = null then begin
    editDiscPC.enabled := true; editDiscPC.color := clWindow;
    editDiscDays.enabled := true; editDiscDays.color := clWindow;
    editNetDays.enabled := true; editNetDays.color := clWindow;
    chkCOD.enabled := true; chkCOD.caption := 'C.O.D.:'; chkCOD.left := Trunc(20*FontFactor); chkCOD.width := Trunc(81*FontFactor);
    editCreditLimit.enabled := true; editCreditLimit.color := clWindow;
    cboCurrency.enabled := true; cboCurrency.color := clWindow;
    memoCustomerMessage.enabled := true; memoCustomerMessage.color := clWindow;
    chkPrintStatement.enabled := true; chkPrintStatement.caption := 'Print Stmt:'; chkPrintStatement.left := Trunc(20*FontFactor); chkPrintStatement.width := Trunc(81*FontFactor);
    chkBillToOnly.enabled := true; chkBillToOnly.caption := 'Bill-to Only:'; chkBillToOnly.left := Trunc(138*FontFactor); chkBillToOnly.width := Trunc(75*FontFactor);
  end else begin
    editDiscPC.enabled := false; editDiscPC.color := clSilver;
    editDiscDays.enabled := false; editDiscDays.color := clSilver;
    editNetDays.enabled := false; editNetDays.color := clSilver;
    chkCOD.enabled := false; chkCOD.caption := ''; chkCOD.left := Trunc(81*FontFactor); chkCOD.width := Trunc(20*FontFactor);
    editCreditLimit.enabled := false; editCreditLimit.color := clSilver;
    cboCurrency.enabled := false; cboCurrency.color := clSilver;
    memoCustomerMessage.enabled := false; memoCustomerMessage.color := clSilver;
    chkPrintStatement.enabled := false; chkPrintStatement.caption := ''; chkPrintStatement.left := Trunc(81*FontFactor); chkPrintStatement.width := Trunc(20*FontFactor);
    chkBillToOnly.enabled := false; chkBillToOnly.caption := ''; chkBillToOnly.left := Trunc(193*FontFactor); chkBillToOnly.width := Trunc(20*FontFactor);
  end;

  if tblCustomerBillToOnly.value = false then begin
    cboTax1.enabled := true; cboTax1.color := clWindow;
    cboTax2.enabled := true; cboTax2.color := clWindow;
    editTax1ExemptionNo.enabled := true; editTax1ExemptionNo.color := clWindow;
    editTax2ExemptionNo.enabled := true; editTax2ExemptionNo.color := clWindow;
    cboSalesman.enabled := true; cboSalesman.color := clWindow;

⌨️ 快捷键说明

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