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

📄 apinvoicesfilterform.pas

📁 功能全面的商业财会系统源码,清晰,很有参考价值.扩展性强.
💻 PAS
字号:
unit APInvoicesFilterForm;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ExtCtrls, Buttons, DB, DBTables, DBCtrls;

type
  TfrmAPInvoicesFilter = class(TForm)
    RadioGroup1: TRadioGroup;
    optPostedYes: TRadioButton;
    optPostedNo: TRadioButton;
    optPostedAll: TRadioButton;
    btnReset: TButton;
    btnOK: TButton;
    btnCancel: TButton;
    Label1: TLabel;
    cboCurrency: TComboBox;
    cboVendor: TComboBox;
    Label2: TLabel;
    procedure btnOKClick(Sender: TObject);
    procedure btnCancelClick(Sender: TObject);
    procedure btnResetClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure cboCurrencyExit(Sender: TObject);
    procedure cboVendorExit(Sender: TObject);
  private
    procedure SetCurrencyID(CurrencyID: integer);
    function GetCurrencyID: integer;
    procedure SetVendorID(VendorID: integer);
    function GetVendorID: integer;
  public
    property CurrencyID: integer read GetCurrencyID write SetCurrencyID;
    property VendorID: integer read GetVendorID write SetVendorID;
  end;

var
  frmAPInvoicesFilter: TfrmAPInvoicesFilter;

implementation

uses BS1Form, APInvoicesForm, LookUpsData;

{$R *.DFM}

var
  CurrencyIDOld, VendorIDOld: string;
  optPostedYesCheckedOld, optPostedNoCheckedOld: Boolean;
  cboCurrencyIDs, cboVendorIDs: TStringList;

procedure TfrmAPInvoicesFilter.SetCurrencyID(CurrencyID: integer);
begin
  CboCurrency.ItemIndex := cboCurrencyIDs.IndexOf(IntToStr(CurrencyID));
end;

function TfrmAPInvoicesFilter.GetCurrencyID: integer;
begin
  if cboCurrency.ItemIndex > 0 then Result := StrToInt(cboCurrencyIDs[cboCurrency.ItemIndex])
  else Result := 0;
end;

procedure TfrmAPInvoicesFilter.SetVendorID(VendorID: integer);
begin
  CboVendor.ItemIndex := cboVendorIDs.IndexOf(IntToStr(VendorID));
end;

function TfrmAPInvoicesFilter.GetVendorID: integer;
begin
  if cboVendor.ItemIndex > 0 then Result := StrToInt(cboVendorIDs[cboVendor.ItemIndex])
  else Result := 0;
end;

procedure cboCurrency_Load(const Tbl: TTable; const Cbo: TCombobox);
begin
  Cbo.Items.Clear;   //Populate "currency" combobox.
  cboCurrencyIDs.Clear;
  Cbo.Items.Add('<All>');
  cboCurrencyIDs.Add('');
  Tbl.First;
  while not Tbl.EOF do begin
    Cbo.Items.Add(Tbl['CurrencyName']);
    cboCurrencyIDs.Add(Tbl['CurrencyID']);
    Tbl.Next;
  end;
  Cbo.ItemIndex := cboCurrencyIDs.IndexOf(CurrencyIDOld);
end;

procedure cboVendor_Load(const Tbl: TTable; const Cbo: TCombobox);
begin
  Cbo.Items.Clear;   //Populate "vendor" combobox.
  cboVendorIDs.Clear;
  Cbo.Items.Add('<All>');
  cboVendorIDs.Add('');
  Tbl.First;
  while not Tbl.EOF do begin
    Cbo.Items.Add(Tbl['VendorName']);
    cboVendorIDs.Add(Tbl['VendorID']);
    Tbl.Next;
  end;
  Cbo.ItemIndex := cboVendorIDs.IndexOf(VendorIDOld);
end;

procedure TfrmAPInvoicesFilter.btnOKClick(Sender: TObject);
begin
  if cboVendor.Items.IndexOf(cboVendor.Text) < 0 then begin  //If Enter was pressed, this edit hasn't been done yet.
    cboVendor.setfocus;
    raise(Exception.Create('Choose an item from the list'));
  end;
  if cboCurrency.Items.IndexOf(cboCurrency.Text) < 0 then begin  //If Enter was pressed, this edit hasn't been done yet.
    cboCurrency.setfocus;
    raise(Exception.Create('Choose an item from the list'));
  end;

  if (cboCurrency.ItemIndex > 0) or (cboVendor.ItemIndex > 0) or (optPostedAll.Checked <> true) then begin
    frmAPInvoices.mnuFilter.Checked := true;
    frmAPInvoices.qryAPInv.Filtered := true;
  end else begin
    frmAPInvoices.mnuFilter.Checked := false;
    frmAPInvoices.qryAPInv.Filtered := false;
  end;
  frmAPInvoices.FormShow(Sender);
  cboVendor.setfocus;
  self.close;
end;

procedure TfrmAPInvoicesFilter.btnCancelClick(Sender: TObject);
begin
  cboCurrency.ItemIndex := cboCurrencyIDs.IndexOf(CurrencyIDOld);
  cboVendor.ItemIndex := cboVendorIDs.IndexOf(VendorIDOld);
  if optPostedYesCheckedOld = true then optPostedYes.checked := true
  else if optPostedNoCheckedOld = true then optPostedNo.checked := true
  else optPostedAll.checked := true;
  cboVendor.setfocus;
  self.close;
end;

procedure TfrmAPInvoicesFilter.btnResetClick(Sender: TObject);
begin
  cboCurrency.ItemIndex := 0;
  cboVendor.ItemIndex := 0;
  optPostedAll.checked := true;
  cboVendor.setfocus;
end;

procedure TfrmAPInvoicesFilter.FormShow(Sender: TObject);
begin
  if cboCurrency.ItemIndex > 0 then CurrencyIDOld := cboCurrencyIDs[cboCurrency.ItemIndex]
  else CurrencyIDOld := '';
  if cboVendor.ItemIndex > 0 then VendorIDOld := cboVendorIDs[cboVendor.ItemIndex]
  else VendorIDOld := '';
  optPostedYesCheckedOld := optPostedYes.checked;
  optPostedNoCheckedOld := optPostedNo.checked;

  cboCurrency_Load(dmLookUps.tblCurrency, cboCurrency);   //Populate "currency" combobox.
  cboVendor_Load(dmLookUps.tblVendor, cboVendor);   //Populate "vendor" combobox.
end;

procedure TfrmAPInvoicesFilter.FormCreate(Sender: TObject);
begin
  dmLookups.tblCurrency.DatabaseName := strDatabaseName;
  dmLookups.tblVendor.DatabaseName := strDatabaseName;
  dmLookups.tblCurrency.Active := true;
  dmLookups.tblVendor.Active := true;
  cboCurrencyIDs := TStringList.create;   //Create a TStringList to store CurrencyIDs for the combobox.
  cboVendorIDs := TStringList.create;   //Create a TStringList to store VendorIDs for the combobox.
end;

procedure TfrmAPInvoicesFilter.cboCurrencyExit(Sender: TObject);
begin
  if cboCurrency.Items.IndexOf(cboCurrency.Text) < 0 then begin
    cboCurrency.setfocus;
    raise(Exception.Create('Choose an item from the list'));
  end;
end;

procedure TfrmAPInvoicesFilter.cboVendorExit(Sender: TObject);
begin
  if cboVendor.Items.IndexOf(cboVendor.Text) < 0 then begin
    cboVendor.setfocus;
    raise(Exception.Create('Choose an item from the list'));
  end;
end;

end.

⌨️ 快捷键说明

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