📄 apchequesform.pas
字号:
mnuSortDateAscending.checked := true;
qryAPCheq.close;
qryAPCheq.sql[0] := 'SELECT C.*, V.VendorNo, V.VendorName, V.CurrencyID, V.Phone, V.EMail FROM APCheq C LEFT OUTER JOIN Vendor V ON C.VendorID = V.VendorID';
qryAPCheq.sql[2] := 'ORDER BY C.ChequeDate, V.VendorName, C.ChequeNo';
qryAPCheq.open;
screen.cursor := crDefault;
end;
procedure TfrmAPCheques.mnuSortDateDescendingClick(Sender: TObject);
begin
screen.cursor := crHourglass;
mnuSortDate.checked := true;
mnuSortDateDescending.checked := true;
qryAPCheq.close;
qryAPCheq.sql[0] := 'SELECT C.*, V.VendorNo, V.VendorName, V.CurrencyID, V.Phone, V.EMail FROM APCheq C LEFT OUTER JOIN Vendor V ON C.VendorID = V.VendorID';
qryAPCheq.sql[2] := 'ORDER BY C.ChequeDate DESC, V.VendorName, C.ChequeNo DESC';
qryAPCheq.open;
screen.cursor := crDefault;
end;
procedure TfrmAPCheques.mnuSortNameClick(Sender: TObject);
begin
screen.cursor := crHourglass;
mnuSortName.checked := true;
mnuSortDateAscending.checked := false;
mnuSortDateDescending.checked := false;
qryAPCheq.close;
qryAPCheq.sql[0] := 'SELECT C.*, V.VendorNo, V.VendorName, V.CurrencyID, V.Phone, V.EMail FROM APCheq C LEFT OUTER JOIN Vendor V ON C.VendorID = V.VendorID';
qryAPCheq.sql[2] := 'ORDER BY V.VendorName, V.VendorNo, C.ChequeDate, C.ChequeNo';
qryAPCheq.open;
screen.cursor := crDefault;
end;
procedure TfrmAPCheques.mnuSortAmountClick(Sender: TObject);
begin
screen.cursor := crHourglass;
mnuSortAmount.checked := true;
mnuSortDateAscending.checked := false;
mnuSortDateDescending.checked := false;
qryAPCheq.close;
qryAPCheq.sql[0] := 'SELECT C.*, V.VendorNo, V.VendorName, V.CurrencyID, V.Phone, V.EMail FROM APCheq C LEFT OUTER JOIN Vendor V ON C.VendorID = V.VendorID';
qryAPCheq.sql[2] := 'ORDER BY C.ChequeAmount DESC, C.ChequeDate';
qryAPCheq.open;
screen.cursor := crDefault;
end;
procedure TfrmAPCheques.mnuSortVendorNoClick(Sender: TObject);
begin
screen.cursor := crHourglass;
mnuSortVendorNo.checked := true;
mnuSortDateAscending.checked := false;
mnuSortDateDescending.checked := false;
qryAPCheq.close;
qryAPCheq.sql[0] := 'SELECT C.*, V.VendorNo, V.VendorName, V.CurrencyID, V.Phone, V.EMail FROM APCheq C LEFT OUTER JOIN Vendor V ON C.VendorID = V.VendorID';
qryAPCheq.sql[2] := 'ORDER BY V.VendorNo, C.ChequeDate, C.ChequeNo';
qryAPCheq.open;
screen.cursor := crDefault;
end;
procedure TfrmAPCheques.mnuSortChequenoClick(Sender: TObject);
begin
screen.cursor := crHourglass;
mnuSortChequeno.checked := true;
mnuSortDateAscending.checked := false;
mnuSortDateDescending.checked := false;
qryAPCheq.close;
qryAPCheq.sql[0] := 'SELECT C.*, V.VendorNo, V.VendorName, V.CurrencyID, V.Phone, V.EMail FROM APCheq C LEFT OUTER JOIN Vendor V ON C.VendorID = V.VendorID';
qryAPCheq.sql[2] := 'ORDER BY C.ChequeNo, V.VendorName';
qryAPCheq.open;
screen.cursor := crDefault;
end;
procedure TfrmAPCheques.mnuVendorClick(Sender: TObject);
begin
if qryAPCheqVendorID.AsVariant = null then exit; //Bypass if no record selected (eg. if no records).
screen.cursor := crHourglass;
application.createform (TfrmVendor,frmVendor);
if (frmVendor.tblVendor.Locate('VendorID', qryAPCheqVendorID.value, [])) = true then frmVendor.Show;
screen.cursor := crDefault;
end;
procedure TfrmAPCheques.editFindKeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then begin
Key := #0; //Cancel Enter key.
if (editFind.Text = '') or (editFind.Text = '<Cheque no.>') then Perform(WM_NEXTDLGCTL, 0, 0) //Advance to next control.
else begin
if qryAPCheq.Locate('ChequeNo', editFind.Text, []) <> true then begin
editFind.SelectAll;
raise(Exception.Create('Cheque ' + '''' + editFind.Text + '''' + ' not found'));
end else DBGrid1.setfocus;
end;
end;
end;
procedure TfrmAPCheques.FormResize(Sender: TObject);
begin
if (WindowState <> OldWindowState) //Prevent grid resize bugs.
and (WindowState <> wsMinimized)
and (OldWindowState <> wsMinimized)
then mnuRefreshClick(sender);
OldWindowState := WindowState;
end;
procedure TfrmAPCheques.mnuPostClick(Sender: TObject);
begin
screen.cursor := crHourglass;
application.createform (TfrmAPChequesPost,frmAPChequesPost);
screen.cursor := crDefault;
if frmAPChequesPost.ShowModal = mrOk then begin //Show cheques post form & if posting done, show JVs post form.
screen.cursor := crHourglass;
application.createform (TfrmJVsPost,frmJVsPost);
screen.cursor := crDefault;
if frmJVsPost.qryJV.RecordCount = 0 then frmJVsPost.close
else frmJVsPost.ShowModal;
mnuRefreshClick(sender);
end;
end;
procedure TfrmAPCheques.mnuFilterClick(Sender: TObject);
var
aComponent: TComponent;
begin
aComponent := Application.FindComponent('frmAPChequesFilter');
if not Assigned (aComponent) then frmAPChequesFilter := TfrmAPChequesFilter.Create(Application);
frmAPChequesFilter.ShowModal;
end;
procedure TfrmAPCheques.qryAPCheqFilterRecord(DataSet: TDataSet;
var Accept: Boolean);
begin
Accept := true; //Default.
try //Try in case filter form not loaded.
if (frmAPChequesFilter.optPostedYes.checked = true) and (qryAPCheqPosted.value <> true) then Accept := false
else if (frmAPChequesFilter.optPostedNo.checked = true) and (qryAPCheqPosted.value <> false) then Accept := false;
if (frmAPChequesFilter.CurrencyID > 0) and (qryAPCheqCurrencyID.value <> frmAPChequesFilter.CurrencyID) then Accept := false;
if (frmAPChequesFilter.VendorID > 0) and (qryAPCheqVendorID.value <> frmAPChequesFilter.VendorID) then Accept := false;
except; end;
end;
procedure TfrmAPCheques.mnuPrintClick(Sender: TObject);
var
strWHERE: string;
begin
//if license = '' then begin frmBS1.FreewareMessage; exit; end;
screen.cursor := crHourglass;
application.createform (TrptAPCheques,rptAPCheques);
rptAPCheques.qryAPCheq.SQL := frmAPCheques.qryAPCheq.SQL;
{if mnuFilter.checked = true then begin
strWHERE := ' WHERE (1 = 1)';
try //Try in case filter form not loaded.
if (frmAPChequesFilter.optPostedYes.checked = true) then strWHERE := strWHERE + ' AND (Posted = true)'
else if (frmAPChequesFilter.optPostedNo.checked = true) then strWHERE := strWHERE + ' AND (Posted = false)';
if (frmAPChequesFilter.CurrencyID > 0) then strWHERE := strWHERE + ' AND (CurrencyID = ' + IntToStr(frmAPChequesFilter.CurrencyID) + ')';
if (frmAPChequesFilter.VendorID > 0) then strWHERE := strWHERE + ' AND (VendorID = ' + IntToStr(frmAPChequesFilter.VendorID) + ')';
except; end;
rptAPCheques.qryAPCheq.SQL[0] := rptAPCheques.qryAPCheq.SQL[0] + strWHERE;
end;}
if mnuFilter.checked = true then begin
if rptAPCheques.qryAPCheq.SQL[1] = '' then rptAPCheques.qryAPCheq.SQL[1] := ' WHERE (1 = 1)';
try //Try in case filter form not loaded.
if (frmAPChequesFilter.optPostedYes.checked = true) then rptAPCheques.qryAPCheq.SQL[1] := rptAPCheques.qryAPCheq.SQL[1] + ' AND (Posted = true)'
else if (frmAPChequesFilter.optPostedNo.checked = true) then rptAPCheques.qryAPCheq.SQL[1] := rptAPCheques.qryAPCheq.SQL[1] + ' AND (Posted = false)';
if (frmAPChequesFilter.CurrencyID > 0) then rptAPCheques.qryAPCheq.SQL[1] := rptAPCheques.qryAPCheq.SQL[1] + ' AND (CurrencyID = ' + IntToStr(frmAPChequesFilter.CurrencyID) + ')';
if (frmAPChequesFilter.VendorID > 0) then rptAPCheques.qryAPCheq.SQL[1] := rptAPCheques.qryAPCheq.SQL[1] + ' AND (VendorID = ' + IntToStr(frmAPChequesFilter.VendorID) + ')';
except; end;
end;
if mnuOutstanding.checked = true then rptAPCheques.QuickReport.ReportTitle := 'AP Cheques (Outstanding)';
rptAPCheques.qryAPCheq.Active := true;
screen.cursor := crDefault;
rptAPCheques.QuickReport.Preview;
end;
procedure TfrmAPCheques.popPhoneClick(Sender: TObject);
begin
with frmDialer do begin
NameToDial := qryAPCheqVendorName.value;
NumberToDial := qryAPCheqPhone.value;
ShowModal;
end;
end;
procedure TfrmAPCheques.mnuPrintChequesClick(Sender: TObject);
begin
//if license = '' then begin frmBS1.FreewareMessage; exit; end;
screen.cursor := crHourglass;
application.createform (TfrmAPChequesPrint,frmAPChequesPrint);
screen.cursor := crDefault;
if frmAPChequesPrint.ShowModal = mrOk then mnuRefreshClick(sender);
end;
procedure TfrmAPCheques.dsAPCheqDataChange(Sender: TObject; Field: TField);
begin
mnuReconciled.checked := qryAPCheqReconciled.value;
popReconciled.checked := qryAPCheqReconciled.value;
if qryAPCheqPhone.AsString = '' then popPhone.Enabled := False
else popPhone.Enabled := True;
if qryAPCheqEMail.AsString = '' then popEMail.Enabled := False
else popEMail.Enabled := True;
end;
procedure TfrmAPCheques.mnuReconciledClick(Sender: TObject);
var
Bookmark: TBookmark;
begin
tblAPCheq.Active := true; //Update table as query is read-only.
tblAPCheq.Database.TransIsolation := tiDirtyRead;
if tblAPCheq.Locate('ChequeID', qryAPCheqChequeID.value, []) = true then begin
tblAPCheq.edit;
if tblAPCheqReconciled.value = false then tblAPCheqReconciled.value := true
else tblAPCheqReconciled.value := false;
tblAPCheq.post;
tblAPCheq.Database.ApplyUpdates([tblAPCheq]);
Bookmark := qryAPCheq.GetBookmark;
with qryAPCheq do begin close; open; end; //Refresh.
try qryAPCheq.GotoBookmark(Bookmark); except; end;
qryAPCheq.FreeBookmark(BookMark);
if qryAPCheqChequeID.AsVariant = null then qryAPCheq.first; //If reconciling last record & showing outstanding only, prevent blank record with focus after last record (move to 1st record as per other grids).
end;
end;
procedure TfrmAPCheques.qryAPCheqChequeNoGetText(Sender: TField;
var Text: string; DisplayText: Boolean);
begin
//if (qryAPCheqChequeID.AsVariant <> null) and (qryAPCheqChequeNo.value = 0) then text := 'Not Printed '
if (qryAPCheqChequeID.AsVariant <> null) and (qryAPCheqChequeNo.AsVariant = null) then text := 'Not Printed ' //Cheque no. 0 used for clearing out debits and credits.
else text := Copy(qryAPCheqChequeNo.AsString,1,10);
end;
procedure TfrmAPCheques.mnuAPInvoicesHelpClick(Sender: TObject);
begin
Application.HelpContext(130);
end;
procedure TfrmAPCheques.mnuOutstandingClick(Sender: TObject);
begin
screen.cursor := crHourglass;
if mnuOutstanding.checked = true then begin
mnuOutstanding.checked := false;
if mnuFilter.checked = true then caption := 'AP Cheques (Filtered)'
else caption := 'AP Cheques';
qryAPCheq.close; qryAPCheq.SQL[1] := ''; qryAPCheq.open;
end else begin
mnuOutstanding.checked := true;
if mnuFilter.checked = true then caption := 'AP Cheques (Outstanding, Filtered)'
else caption := 'AP Cheques (Outstanding)';
qryAPCheq.close; qryAPCheq.SQL[1] := 'WHERE C.Reconciled <> true'; qryAPCheq.open;
end;
screen.cursor := crDefault;
end;
procedure TfrmAPCheques.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
screen.cursor := crHourglass;
application.createform (TfrmAPChequesPost,frmAPChequesPost);
screen.cursor := crDefault;
if frmAPChequesPost.qryAPCheq.RecordCount = 0 then begin
frmAPChequesPost.close;
exit;
end;
//if frmAPChequesPost.ShowModal = mrOk then mnuRefreshClick(sender);
if frmAPChequesPost.ShowModal = mrOk then begin //Show cheques post form & if posting done, show JVs post form.
screen.cursor := crHourglass;
application.createform (TfrmJVsPost,frmJVsPost);
screen.cursor := crDefault;
if frmJVsPost.qryJV.RecordCount = 0 then frmJVsPost.close
else frmJVsPost.ShowModal;
end;
end;
procedure TfrmAPCheques.popEMailClick(Sender: TObject);
var
zFileName, zParams, zDir: array[0..79] of Char;
begin
ShellExecute(Application.MainForm.Handle, nil,
StrPCopy(zFileName, 'mailto:' + qryAPCheqEMail.value), {filename}
StrPCopy(zParams, ' '), {command line perameters}
StrPCopy(zDir, ''), {default directory}
SW_SHOW); {SW_SHOW Normal window. or SW_SHOWMINIMIZED, SW_HIDE, etc}
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -