📄 apinvoicesfilterform.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 + -