📄 vendorform.pas
字号:
unit VendorForm;
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
TfrmVendor = class(TForm)
Panel1: TPanel;
PageControl1: TPageControl;
TabSheet2: TTabSheet;
dsVendor: TDataSource;
memoNotes: TDBMemo;
Panel3: TPanel;
TabSheet3: TTabSheet;
TabSheet4: TTabSheet;
Panel2: TPanel;
TabSheet1: TTabSheet;
Label1: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
editVendorName: TDBEdit;
editAddressLine1: TDBEdit;
editAddressLine2: TDBEdit;
editCity: TDBEdit;
editCountry: TDBEdit;
editZipCode: TDBEdit;
editPhone: TDBEdit;
editFax: TDBEdit;
editContact: TDBEdit;
DBGrid1: TDBGrid;
tblVContact: TTable;
dsVContact: TDataSource;
Panel4: TPanel;
btnOK: TButton;
btnCancel: TButton;
tblVContactContactID: TAutoIncField;
tblVContactLastName: TStringField;
tblVContactFirstName: TStringField;
tblVContactJobTitle: TStringField;
tblVContactBusinessPhone: TStringField;
editStateProv: TDBEdit;
Label14: TLabel;
editEMail: TDBEdit;
Label15: TLabel;
editWebPage: TDBEdit;
Label16: TLabel;
editVendorNo: TDBEdit;
chkSuspended: TDBCheckBox;
GroupBox1: TGroupBox;
Label2: TLabel;
editDiscPC: TDBEdit;
Label7: TLabel;
editDiscDays: TDBEdit;
Label8: TLabel;
editNetDays: TDBEdit;
editDelayDays: TDBEdit;
Label9: TLabel;
GroupBox2: TGroupBox;
editDefaultInvDescription: TDBEdit;
editTaxNo: TDBEdit;
Label12: TLabel;
Label13: TLabel;
Label10: TLabel;
popNotes: TPopupMenu;
popWordWrap: TMenuItem;
btnPhone: TSpeedButton;
cboCurrency: TDBLookupComboBox;
btnCurrency: TSpeedButton;
tblVendor: TTable;
tblVendorVendorName: TStringField;
tblVendorAddressLine1: TStringField;
tblVendorAddressLine2: TStringField;
tblVendorCity: TStringField;
tblVendorStateProv: TStringField;
tblVendorZipCode: TStringField;
tblVendorCountry: TStringField;
tblVendorContact: TStringField;
tblVendorPhone: TStringField;
tblVendorFax: TStringField;
tblVendorEMail: TStringField;
tblVendorWebPage: TStringField;
tblVendorNotes: TMemoField;
tblVendorDefaultInvDescription: TStringField;
tblVendorDiscPC: TFloatField;
tblVendorDiscDays: TSmallintField;
tblVendorNetDays: TSmallintField;
tblVendorDelayDays: TSmallintField;
tblVendorCurrencyID: TIntegerField;
tblVendorSuspended: TBooleanField;
btnNew: TButton;
btnEdit: TButton;
btnDelete: TButton;
tblVContactFullName: TStringField;
tblVendorVendorID: TAutoIncField;
tblVendorVendorNo: TStringField;
tblVContactVendorID: TIntegerField;
popContacts: TPopupMenu;
popNew: TMenuItem;
popEdit: TMenuItem;
popDelete: TMenuItem;
N1: TMenuItem;
popPhone: TMenuItem;
qryAPInv: TQuery;
tblVendCtl: TTable;
tblVendCtlNextVendorNo: TIntegerField;
tblVendorTaxNo: TStringField;
tblVendCtlNextVendorID: TIntegerField;
btnEmail: TSpeedButton;
btnWebPage: TSpeedButton;
tblVContactEMail: TStringField;
popEMail: TMenuItem;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure dsVendorDataChange(Sender: TObject; Field: TField);
procedure FormShow(Sender: TObject);
procedure Panel2DblClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormKeyPress(Sender: TObject; var Key: Char);
procedure dsVendorUpdateData(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 tblVendorAfterPost(DataSet: TDataSet);
procedure tblVendorBeforePost(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 tblVContactBeforeDelete(DataSet: TDataSet);
procedure tblVContactCalcFields(DataSet: TDataSet);
procedure tblVendorNewRecord(DataSet: TDataSet);
procedure PageControl1Change(Sender: TObject);
procedure popPhoneClick(Sender: TObject);
procedure tblVendorCurrencyIDValidate(Sender: TField);
procedure btnEmailClick(Sender: TObject);
procedure btnWebPageClick(Sender: TObject);
procedure tblVendorWebPageSetText(Sender: TField; const Text: string);
procedure dsVContactDataChange(Sender: TObject; Field: TField);
procedure popEMailClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmVendor: TfrmVendor;
implementation
uses VendorsForm, BS1Form, CurrenciesForm, VContactForm, DialerForm,
LookUpsData;
var
intClientHeight, intClientWidth: Integer;
{$R *.DFM}
procedure TfrmVendor.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if tblVendor.State in [dsInsert, dsEdit] then btnOKClick(sender);
try frmVendors.DBGrid1.Setfocus; except; end;
Action := caFree;
end;
procedure TfrmVendor.dsVendorDataChange(Sender: TObject;
Field: TField);
begin
if (tblVendor.state = dsInsert) and (tblVendorVendorName.Value = '') then self.Caption := 'New Vendor'
else self.Caption := tblVendorVendorName.value;
if tblVendorPhone.AsString = '' then btnPhone.Enabled := False
else btnPhone.Enabled := True;
if tblVendorEMail.AsString = '' then btnEMail.Enabled := False
else btnEMail.Enabled := True;
if tblVendorWebPage.AsString = '' then btnWebPage.Enabled := False
else btnWebPage.Enabled := True;
end;
procedure TfrmVendor.FormShow(Sender: TObject);
begin
PageControl1.ActivePage := Tabsheet1;
editVendorNo.setfocus;
end;
procedure TfrmVendor.Panel2DblClick(Sender: TObject);
begin
ClientHeight := intClientHeight; //Resize form.
ClientWidth := intClientWidth;
end;
procedure TfrmVendor.FormCreate(Sender: TObject);
var
x, intDBGrid1Width: integer;
begin
tblVendor.DatabaseName := strDatabaseName;
tblVendCtl.DatabaseName := strDatabaseName;
tblVContact.DatabaseName := strDatabaseName;
//tblCurrency.DatabaseName := strDatabaseName;
qryAPInv.DatabaseName := strDatabaseName;
tblVendor.Active := true;
//tblVContact.Active := true; //Postpone till later to improve performance.
//tblCurrency.Active := true;
if FontFactor <> 1 then begin //If using large fonts, resize form.
intDBGrid1Width := Trunc(20*FontFactor) + DBGrid1.Columns.Count -1; //Row selector + scrollbar + grid lines.
for x := 0 to DBGrid1.Columns.Count - 1 do begin
DBGrid1.Columns[x].width := Trunc(DBGrid1.Columns[x].width*FontFactor);
intDBGrid1Width := intDBGrid1Width + DBGrid1.Columns[x].width;
end;
DBGrid1.Width := intDBGrid1Width;
ClientHeight := Trunc(ClientHeight*FontFactor);
ClientWidth := Trunc(ClientWidth*FontFactor);
PageControl1.TabWidth := Trunc(PageControl1.TabWidth*FontFactor);
end;
intClientHeight := ClientHeight; //Store form size.
intClientWidth := ClientWidth;
end;
procedure TfrmVendor.FormKeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then begin //Enter key: advance to next control.
if (ActiveControl.ClassType <> TDBMemo) and (ActiveControl.ClassType <> TDBLookupCombobox) and (ActiveControl.ClassType <> TDBGrid) then begin
Key := #0;
Perform(WM_NEXTDLGCTL, 0, 0);
end else if (ActiveControl.ClassType = TDBLookupComboBox) and (TDBLookupComboBox(ActiveControl).ListVisible = false) then begin
Key := #0;
Perform(WM_NEXTDLGCTL, 0, 0);
end;
end;
end;
procedure TfrmVendor.dsVendorUpdateData(Sender: TObject);
begin
if tblVendorVendorNo.AsString = '' then begin
with editVendorNo do begin Show; SetFocus; end;
raise(exception.create('Field ' + '''Vendor no.''' + ' must have a value'));
end;
if tblVendorVendorName.AsString = '' then begin
with editVendorName do begin Show; SetFocus; end;
raise(exception.create('Field ' + '''Vendor Name''' + ' must have a value'));
end;
if tblVendorCurrencyID.AsInteger = 0 then begin
//tblCurrency.Active := true; //Data Module used instead.
with cboCurrency do begin Show; SetFocus; end;
raise(exception.create('Field ' + '''Currency''' + ' must have a value'));
end;
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -