📄 glhistoryfilterform.pas
字号:
unit GLHistoryFilterForm;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls, Buttons, ComCtrls, DB, DBTables;
type
TfrmGLHistoryFilter = class(TForm)
btnReset: TButton;
btnOK: TButton;
btnCancel: TButton;
cboAccountType: TComboBox;
Label1: TLabel;
UpDownYear: TUpDown;
editYear: TEdit;
Label2: TLabel;
chkYearAll: TCheckBox;
cboGLAccount: TComboBox;
EditGLAccount: TEdit;
Label3: TLabel;
Label4: TLabel;
UpDownPeriod: TUpDown;
editPeriod: TEdit;
chkPeriodAll: TCheckBox;
procedure btnOKClick(Sender: TObject);
procedure btnCancelClick(Sender: TObject);
procedure btnResetClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure chkYearAllClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure UpDownYearClick(Sender: TObject; Button: TUDBtnType);
procedure cboGLAccountExit(Sender: TObject);
procedure EditGLAccountExit(Sender: TObject);
procedure cboGLAccountClick(Sender: TObject);
procedure EditGLAccountChange(Sender: TObject);
procedure chkPeriodAllClick(Sender: TObject);
procedure UpDownPeriodClick(Sender: TObject; Button: TUDBtnType);
private
procedure SetGLAccount(GLAccount: string);
function GetGLAccount: string;
public
property GLAccount: string read GetGLAccount write SetGLAccount;
end;
var
frmGLHistoryFilter: TfrmGLHistoryFilter;
implementation
uses BS1Form, GLHistoryForm, LookUpsData;
{$R *.DFM}
var
cboAccountTypeOld, GLAccountOld: string;
chkYearAllCheckedOld, chkPeriodAllCheckedOld: Boolean;
editYearOld, editPeriodOld: string;
cboGLAccounts: TStringList;
procedure TfrmGLHistoryFilter.SetGLAccount(GLAccount: string);
begin
cboGLAccount.ItemIndex := cboGLAccounts.IndexOf(GLAccount);
end;
function TfrmGLHistoryFilter.GetGLAccount: string;
begin
if cboGLAccount.ItemIndex > 0 then Result := cboGLAccounts[cboGLAccount.ItemIndex]
else Result := '';
end;
procedure cboGLAccount_Load(const Tbl: TTable; const Cbo: TCombobox);
begin
Cbo.Items.Clear; //Populate "GLAccount" combobox.
cboGLAccounts.Clear;
Cbo.Items.Add('<All>');
cboGLAccounts.Add('');
Tbl.First;
while not Tbl.EOF do begin
Cbo.Items.Add(Tbl['AccountName']);
cboGLAccounts.Add(Tbl['GLAccount']);
Tbl.Next;
end;
Cbo.ItemIndex := cboGLAccounts.IndexOf(GLAccountOld);
end;
procedure TfrmGLHistoryFilter.btnOKClick(Sender: TObject);
begin
if cboGLAccount.Items.IndexOf(cboGLAccount.Text) < 0 then begin //If Enter was pressed, this edit hasn't been done yet.
cboGLAccount.setfocus;
raise(Exception.Create('Choose an item from the list'));
end;
if (cboAccountType.text <> '<All>') or (chkYearAll.Checked <> true) or (chkPeriodAll.Checked <> true) or (cboGLAccount.ItemIndex > 0) then begin
frmGLHistory.mnuFilter.Checked := true;
frmGLHistory.qryGLHist.Filtered := true;
frmGLHistory.tblGLAccnt.Filtered := true;
end else begin
frmGLHistory.mnuFilter.Checked := false;
frmGLHistory.qryGLHist.Filtered := false;
frmGLHistory.tblGLAccnt.Filtered := false;
end;
frmGLHistory.FormShow(Sender);
frmGLHistory_cboFind_RequeryRequired := true;
editGLAccount.setfocus;
self.close;
end;
procedure TfrmGLHistoryFilter.btnCancelClick(Sender: TObject);
begin
cboAccountType.text := cboAccountTypeOld;
cboGLAccount.ItemIndex := cboGLAccounts.IndexOf(GLAccountOld);
if GLAccountOld = '' then editGLAccount.text := '<All>'
else editGLAccount.text := GLAccount;
chkYearAll.checked := chkYearAllCheckedOld;
editYear.text := editYearOld;
chkPeriodAll.checked := chkPeriodAllCheckedOld;
editPeriod.text := editPeriodOld;
editGLAccount.setfocus;
self.close;
end;
procedure TfrmGLHistoryFilter.btnResetClick(Sender: TObject);
begin
cboAccountType.text := '<All>';
cboGLAccount.ItemIndex := 0;
editGLAccount.text := '<All>';
chkYearAll.checked := true;
chkPeriodAll.checked := true;
editGLAccount.setfocus;
end;
procedure TfrmGLHistoryFilter.FormShow(Sender: TObject);
begin
if editYearOld = '' then editYear.text := '<All>';
if editPeriodOld = '' then editPeriod.text := '<All>';
if cboGLAccount.ItemIndex > 0 then GLAccountOld := cboGLAccounts[cboGLAccount.ItemIndex]
else GLAccountOld := '';
cboAccountTypeOld := cboAccountType.text;
chkYearAllCheckedOld := chkYearAll.checked;
editYearOld := editYear.text;
chkPeriodAllCheckedOld := chkPeriodAll.checked;
editPeriodOld := editPeriod.text;
cboGLAccount_Load(dmLookUps.tblGLAccnt, cboGLAccount); //Populate "GLAccount" combobox.
editGLAccount.SelectAll;
end;
procedure TfrmGLHistoryFilter.chkYearAllClick(Sender: TObject);
begin
if chkYearAll.checked = true then editYear.text := '<All>'
else begin
if frmBS1.tblCompanyFiscalYear.value > 0 then editYear.text := frmBS1.tblCompanyFiscalYear.AsString
else editYear.text := '1997';
end;
end;
procedure TfrmGLHistoryFilter.FormCreate(Sender: TObject);
begin
dmLookUps.tblGLAccnt.DatabaseName := strDatabaseName;
dmLookUps.tblGLAccnt.Active := true;
cboGLAccounts := TStringList.create; //Create a TStringList to store GLAccounts for the combobox.
//editYear.text := '<All>'; //Doesn't work in Delphi 3: UpDown control resets text after this. Now done in FormShow.
//editPeriod.text := '<All>';
end;
procedure TfrmGLHistoryFilter.UpDownYearClick(Sender: TObject;
Button: TUDBtnType);
begin
chkYearAll.checked := false;
if (editYear.text = '<All>') and (frmBS1.tblCompanyFiscalYear.value > 0) then UpDownYear.position := frmBS1.tblCompanyFiscalYear.value;
end;
procedure TfrmGLHistoryFilter.cboGLAccountExit(Sender: TObject);
begin
if cboGLAccount.Items.IndexOf(cboGLAccount.Text) < 0 then begin
cboGLAccount.setfocus;
raise(Exception.Create('Choose an item from the list'));
end;
end;
procedure TfrmGLHistoryFilter.EditGLAccountExit(Sender: TObject);
begin
if editGLAccount.text = '' then editGLAccount.text := '<All>';
if editGLAccount.text = '<All>' then cboGLAccount.ItemIndex := 0
else begin
if cboGLAccounts.IndexOf(editGLAccount.text) > -1 then cboGLAccount.ItemIndex := cboGLAccounts.IndexOf(editGLAccount.text)
else begin
editGLAccount.setfocus;
raise(Exception.Create('Account ' + '''' + editGLAccount.text + '''' + ' not found'));
end;
end;
end;
procedure TfrmGLHistoryFilter.cboGLAccountClick(Sender: TObject);
begin
if cboGLAccount.Items.IndexOf(cboGLAccount.text) > 0 then editGLAccount.text := GLAccount
else editGLAccount.text := '<All>';
end;
procedure TfrmGLHistoryFilter.EditGLAccountChange(Sender: TObject);
begin
if cboGLAccounts.IndexOf(editGLAccount.text) > -1 then cboGLAccount.ItemIndex := cboGLAccounts.IndexOf(editGLAccount.text);
end;
procedure TfrmGLHistoryFilter.chkPeriodAllClick(Sender: TObject);
begin
if chkPeriodAll.checked = true then editPeriod.text := '<All>'
else editPeriod.text := '1';
end;
procedure TfrmGLHistoryFilter.UpDownPeriodClick(Sender: TObject;
Button: TUDBtnType);
begin
chkPeriodAll.checked := false;
if editPeriod.text = '<All>' then UpDownPeriod.position := 1;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -