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

📄 companyform.pas

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

interface

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

type
  TfrmCompany = class(TForm)
    Panel1: TPanel;
    PageControl1: TPageControl;
    dsCompany: TDataSource;
    Panel3: TPanel;
    Panel2: TPanel;
    TabSheet1: TTabSheet;
    Label1: TLabel;
    editCompanyName: TDBEdit;
    Panel4: TPanel;
    btnOK: TButton;
    btnCancel: TButton;
    tblCompany: TTable;
    tblCompanyCompanyNo: TSmallintField;
    tblCompanyCompanyName: TStringField;
    Label2: TLabel;
    editFiscalYear: TDBEdit;
    tblCompanyNotes: TMemoField;
    TabSheet2: TTabSheet;
    memoNotes: TDBMemo;
    popNotes: TPopupMenu;
    popWordWrap: TMenuItem;
    tblCompanyFiscalYear: TSmallintField;
    Label3: TLabel;
    editDefaultPeriodPP: TDBEdit;
    editDefaultPeriodYYYY: TDBEdit;
    tblCompanyDefaultPeriodYYYY: TSmallintField;
    tblCompanyDefaultPeriodPP: TSmallintField;
    tblCompanyWPeriodToYYYY: TSmallintField;
    tblCompanyWPeriodToPP: TSmallintField;
    tblCompanyEPeriodFromYYYY: TSmallintField;
    tblCompanyEPeriodFromPP: TSmallintField;
    tblCompanyEPeriodToYYYY: TSmallintField;
    tblCompanyEPeriodToPP: TSmallintField;
    Label4: TLabel;
    editWPeriodFromPP: TDBEdit;
    editWPeriodFromYYYY: TDBEdit;
    Label5: TLabel;
    editEPeriodFromPP: TDBEdit;
    editEPeriodFromYYYY: TDBEdit;
    Label6: TLabel;
    editWPeriodToPP: TDBEdit;
    editWPeriodToYYYY: TDBEdit;
    Label7: TLabel;
    editEPeriodToPP: TDBEdit;
    editEPeriodToYYYY: TDBEdit;
    tblCompanyWPeriodFromYYYY: TSmallintField;
    tblCompanyWPeriodFromPP: TSmallintField;
    Label10: TLabel;
    cboCurrency: TDBLookupComboBox;
    btnCurrency: TSpeedButton;
    tblCompanyDefaultCurrencyID: TIntegerField;
    TabSheet3: TTabSheet;
    tblCompanyAPInvPONumbers: TBooleanField;
    tblCompanyAPInvDescriptions: TBooleanField;
    GroupBox1: TGroupBox;
    DBCheckBox1: TDBCheckBox;
    DBCheckBox2: TDBCheckBox;
    tblJV: TTable;
    tblGLHist: TTable;
    btnYearEnd: TSpeedButton;
    tblCompanyDfltSalesGLAccount: TStringField;
    TabSheet4: TTabSheet;
    btnDfltSalesGLAccount: TSpeedButton;
    Label11: TLabel;
    editDfltSalesGLAccount: TDBEdit;
    cboDfltSalesGLAccount: TDBLookupComboBox;
    Label8: TLabel;
    tblAPInv: TTable;
    tblARInv: TTable;
    btnHelp: TButton;
    tblCompanyAddressLine1: TStringField;
    tblCompanyAddressLine2: TStringField;
    tblCompanyAddressLine3: TStringField;
    Label9: TLabel;
    editAddressLine1: TDBEdit;
    editAddressLine2: TDBEdit;
    editAddressLine3: TDBEdit;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormShow(Sender: TObject);
    procedure Panel2DblClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure dsCompanyUpdateData(Sender: TObject);
    procedure btnOKClick(Sender: TObject);
    procedure btnCancelClick(Sender: TObject);
    procedure popWordWrapClick(Sender: TObject);
    procedure tblCompanyFiscalYearGetText(Sender: TField; var Text: string;
      DisplayText: Boolean);
    procedure tblCompanyFiscalYearSetText(Sender: TField;
      const Text: string);
    procedure tblCompanyDefaultPeriodYYYYGetText(Sender: TField;
      var Text: string; DisplayText: Boolean);
    procedure tblCompanyDefaultPeriodYYYYSetText(Sender: TField;
      const Text: string);
    procedure tblCompanyWPeriodToYYYYGetText(Sender: TField;
      var Text: string; DisplayText: Boolean);
    procedure tblCompanyEPeriodFromYYYYGetText(Sender: TField;
      var Text: string; DisplayText: Boolean);
    procedure tblCompanyEPeriodToYYYYGetText(Sender: TField;
      var Text: string; DisplayText: Boolean);
    procedure tblCompanyWPeriodToYYYYSetText(Sender: TField;
      const Text: string);
    procedure tblCompanyEPeriodFromYYYYSetText(Sender: TField;
      const Text: string);
    procedure tblCompanyEPeriodToYYYYSetText(Sender: TField;
      const Text: string);
    procedure tblCompanyWPeriodFromYYYYGetText(Sender: TField;
      var Text: string; DisplayText: Boolean);
    procedure tblCompanyWPeriodFromYYYYSetText(Sender: TField;
      const Text: string);
    procedure btnCurrencyClick(Sender: TObject);
    procedure cboCurrencyKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure tblCompanyFiscalYearValidate(Sender: TField);
    procedure dsCompanyDataChange(Sender: TObject; Field: TField);
    procedure btnYearEndClick(Sender: TObject);
    procedure cboDfltSalesGLAccountKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure btnDfltSalesGLAccountClick(Sender: TObject);
    procedure tblCompanyDfltSalesGLAccountValidate(Sender: TField);
    procedure btnHelpClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmCompany: TfrmCompany;

implementation

uses BS1Form, CurrenciesForm, GLAccountsForm, GLAccountsFilterForm, LookUpsData,
  YearEndForm;

var
  intClientHeight, intClientWidth: Integer;
  YearEnd: boolean;

{$R *.DFM}

procedure TfrmCompany.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  if tblCompany.State in [dsInsert, dsEdit] then btnOKClick(sender);
  //Action := caFree;
end;

procedure TfrmCompany.FormShow(Sender: TObject);
var
  Year, Month, Day: Word;
begin
  PageControl1.ActivePage := Tabsheet1;
  editCompanyName.setfocus;
  
  if tblCompany.RecordCount = 0 then begin   //Put form into insert state so OK button triggers mandatory field edits.
    if tblCompany.state <> dsInsert then begin
      tblCompany.Insert;
      tblCompanyCompanyNo.value := 1;
      DecodeDate(Date(), Year, Month, Day);
      tblCompanyFiscalYear.value := Year;
      tblCompanyAPInvPONumbers.value := false;
      tblCompanyAPInvDescriptions.value := false;
    end;  
  end;
end;

procedure TfrmCompany.Panel2DblClick(Sender: TObject);
begin
  ClientHeight := intClientHeight;   //Resize form.
  ClientWidth := intClientWidth;
end;

procedure TfrmCompany.FormCreate(Sender: TObject);
begin
  tblCompany.DatabaseName := strDatabaseName;
  //tblCurrency.DatabaseName := strDatabaseName;
  //tblGLAccnt.DatabaseName := strDatabaseName;
  tblJV.DatabaseName := strDatabaseName;
  tblAPInv.DatabaseName := strDatabaseName;
  tblARInv.DatabaseName := strDatabaseName;
  tblGLHist.DatabaseName := strDatabaseName;
  tblCompany.Active := true;
  //tblCurrency.Active := true;   //Data Module used instead.
  //tblGLAccnt.Active := true;   //Data Module used instead.

  if FontFactor <> 1 then begin   //If using large fonts, resize form.
    ClientHeight := Trunc(ClientHeight*FontFactor);
    ClientWidth := Trunc(ClientWidth*FontFactor);
  end;
  intClientHeight := ClientHeight;   //Store form size.
  intClientWidth := ClientWidth;
end;

procedure TfrmCompany.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) 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 TfrmCompany.dsCompanyUpdateData(Sender: TObject);
begin
  if tblCompanyCompanyName.AsString = '' then begin
    with editCompanyName do begin Show; SetFocus; end;
    raise(exception.create('Field ' + '''Company Name''' + ' must have a value'));
  end;

  if (tblCompanyFiscalYear.AsInteger < 1995) or (tblCompanyFiscalYear.AsInteger > 2050) then begin
    with editFiscalYear do begin Show; SetFocus; end;
    raise(exception.create('Fiscal Year must be between 1995 and 2050'));
  end;
end;

procedure TfrmCompany.btnOKClick(Sender: TObject);
begin
  if tblCompany.State in [dsInsert, dsEdit] then begin
    tblCompany.post;
    DbiSaveChanges(tblCompany.handle);
    frmBS1.tblCompany.Refresh;
  end;
  Close;
end;

⌨️ 快捷键说明

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