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

📄 vendorform.pas

📁 功能全面的商业财会系统源码,清晰,很有参考价值.扩展性强.
💻 PAS
📖 第 1 页 / 共 2 页
字号:
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 + -