📄 customerform.pas
字号:
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 + -