【delphi开源代码栏目提醒】:网学会员--在 delphi开源代码编辑为广大网友搜集整理了:BankForm.pas绩等信息,祝愿广大网友取得需要的信息,参考学习。
unit BankForm;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Forms, Dialogs, Controls, StdCtrls,
Buttons, ComCtrls, ExtCtrls, Mask, DBCtrls, DB, DBTables, Menus, DBLookup, BDE;
type
TfrmBank = class(TForm)
Panel1: TPanel;
PageControl1: TPageControl;
dsBank: TDataSource;
Panel3: TPanel;
Panel2: TPanel;
TabSheet1: TTabSheet;
Label1: TLabel;
editBankName: TDBEdit;
Panel4: TPanel;
btnOK: TButton;
btnCancel: TButton;
Label2: TLabel;
Label3: TLabel;
cboCurrency: TDBLookupComboBox;
btnCurrency: TSpeedButton;
qryAPCheq: TQuery;
editBankGLAccount: TDBEdit;
Label10: TLabel;
cboBankGLAccount: TDBLookupComboBox;
btnBankGLAccount: TSpeedButton;
tblBank: TTable;
tblBankBankID: TAutoIncField;
tblBankBankName: TStringField;
tblBankBankGLAccount: TStringField;
tblBankCurrencyID: TIntegerField;
qryLastID: TQuery;
qryBank: TQuery;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure dsBankDataChange(Sender: TObject; Field: TField);
procedure FormShow(Sender: TObject);
procedure Panel2DblClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormKeyPress(Sender: TObject; var Key: Char);
procedure dsBankUpdateData(Sender: TObject);
procedure btnOKClick(Sender: TObject);
procedure btnCancelClick(Sender: TObject);
procedure cboBankGLAccountKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure cboCurrencyKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure btnCurrencyClick(Sender: TObject);
procedure btnBankGLAccountClick(Sender: TObject);
procedure tblBankCurrencyIDValidate(Sender: TField);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmBank: TfrmBank;
implementation
uses BanksForm, CurrenciesFrom, GLAccountsFrom;
var
intClientHeight, intClientWidth: Integer;
{$R *.DFM}
procedure TfrmBank.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if tblBank.State in [dsInsert, dsEdit] then btnOKClick(sender);
Action := caFree;
end;
procedure TfrmBank.dsBankDataChange(Sender: TObject;
Field: TField);
begin
if (tblBankBankID.AsVariant = 'null') and (tblBankBankName.Value = '') then self.Caption := 'New Bank'
else self.Caption := tblBankBankName.value;
end;
procedure TfrmBank.FormShow(Sender: TObject);
begin
PageControl1.ActivePage := Tabsheet1;
editBankName.setfocus;
end;
procedure TfrmBank.Panel2DblClick(Sender: TObject);
begin
ClientHeight := intClientHeight;
ClientWidth := intClientWidth;
end;
procedure TfrmBank.FormCreate(Sender: TObject);
begin
tblBank.Active := true;
end;
procedure TfrmBank.FormKeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then begin
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 TfrmBank.dsBankUpdateData(Sender: TObject);
begin
if tblBankBankName.AsString = '' then begin
with editBankName do begin Show; SetFocus; end;
raise(exception.create('Field ' + '''Bank Name''' + ' must have a value'));
end;
if tblBankCurrencyID.AsInteger = 0 then begin
with cboCurrency do begin Show; SetFocus; end;
raise(exception.create('Field ' + '''Currency''' + ' must have a value'));
end;
if tblBankBankGLAccount.AsString = '' then begin
with editBankGLAccount do begin Show; SetFocus; end;
raise(exception.create('Field ' + '''Bank GL Account''' + ' must have a value'));
end;
end;
procedure TfrmBank.btnOKClick(Sender: TObject);
begin
if tblBank.State in [dsInsert, dsEdit] then begin
try tblBank.post; DbiSaveChanges(tblBank.handle);
except
on E: EDBEngineError do
if E.Errors[E.ErrorCount - 1].ErrorCode = 9729 then begin //Key violation (key already exists).
with editBankName do begin Show; SetFocus; end;
raise(exception.create('Bank already exists'));
end else raise;
end;
try
frmBanks.tblBank.refresh;
frmBanks.tblBank.Locate('BankID', tblBankBankID.AsInteger, []);
frmBanks.DBGrid1.Setfocus;
except; end;
end;
Close;
end;
procedure TfrmBank.btnCancelClick(Sender: TObject);
begin
tblBank.cancel;
Close;
end;
procedure TfrmBank.cboBankGLAccountKeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
if key = VK_Delete then
begin
tblBank.Edit;
end;
end;
procedure TfrmBank.cboCurrencyKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key = VK_Delete then begin
tblBank.Edit;
end;
end;
procedure TfrmBank.btnCurrencyClick(Sender: TObject);
var
aComponent: TComponent;
begin
screen.cursor := crHourglass;
aComponent := Application.FindComponent('frmCurrencies');
if not Assigned (aComponent) then
frmCurrencies := TfrmCurrencies.Create(Application);
if frmCurrencies.WindowState = wsMinimized then
frmCurrencies.WindowState := wsNormal;
if frmCurrencies.visible = true then
frmCurrencies.Show
else
frmCurrencies.Show;
screen.cursor := crDefault;
end;
procedure TfrmBank.btnBankGLAccountClick(Sender: TObject);
var
aComponent: TComponent;
begin
screen.cursor := crHourglass;
aComponent := Application.FindComponent('frmGLAccounts');
if not Assigned (aComponent) then
frmGLAccounts := TfrmGLAccounts.Create(Application);
aComponent := Application.FindComponent('frmGLAccountsFilter');
if frmGLAccounts.WindowState = wsMinimized then
frmGLAccounts.WindowState := wsNormal;
if frmGLAccounts.visible = true then
frmGLAccounts.Show
else
frmGLAccounts.Show;
screen.cursor := crDefault;
end;
procedure TfrmBank.tblBankCurrencyIDValidate(Sender: TField);
begin
with qryAPCheq do begin
close; open;
if Fields[0].value > 0 then raise(exception.create('Currency cannot be changed... ' + #13 + 'AP cheque(s) already exist'));
end;
end;
end.
上一篇:
BankBookForm.pas
下一篇:
天亮之后