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

📄 apchequesform.pas

📁 功能全面的商业财会系统源码,清晰,很有参考价值.扩展性强.
💻 PAS
📖 第 1 页 / 共 2 页
字号:
  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 + -