📄 arreportsform.pas
字号:
panelReports.visible := false;
btnBack.enabled := true;
panelOptions.visible := true;
if (lboReports.ItemIndex = 0) or (lboReports.ItemIndex = 2) then begin
editAsOfDate.enabled := true; editAsOfDate.visible := true; lblAsOfDate.visible := true; btnAsOfDate.visible := true; btnAsOfDate.enabled := true; editAsOfDate.setfocus;
editGLPeriod.enabled := false; editGLYear.enabled := false; editGLPeriod.visible := false; editGLYear.visible := false; lblPeriod.visible := false;
editMinOwing.enabled := true; editMinOwing.visible := true; lblMinOwing.visible := true;
editMinDays.enabled := true; editMinDays.visible := true; lblMinDays.visible := true;
lblCurrency.top := Trunc(76*FontFactor); cboCurrency.top := Trunc(72*FontFactor);
lblCustomer.top := Trunc(100*FontFactor); cboCustomer.top := Trunc(96*FontFactor);
end else begin
editGLPeriod.enabled := true; editGLYear.enabled := true; editGLPeriod.visible := true; editGLYear.visible := true; lblPeriod.visible := true; editGLPeriod.setfocus;
editAsOfDate.enabled := false; editAsOfDate.visible := false; lblAsOfDate.visible := false; btnAsOfDate.visible := false; btnAsOfDate.enabled := false;
editMinOwing.enabled := false; editMinOwing.visible := false; lblMinOwing.visible := false;
editMinDays.enabled := false; editMinDays.visible := false; lblMinDays.visible := false;
lblCurrency.top := Trunc(88*FontFactor); cboCurrency.top := Trunc(84*FontFactor);
lblCustomer.top := Trunc(116*FontFactor); cboCustomer.top := Trunc(112*FontFactor);
end;
btnNext.caption := '&Preview';
lblReportTitle.caption := lboReports.Items[lboReports.ItemIndex];
end else if panelOptions.visible = true then begin
if screen.ActiveControl.name = 'editAsOfDate' then SetAsOfDate(AsOfDate, editAsOfDate); //If Enter was pressed, this hasn't been done yet.
if screen.ActiveControl.name = 'editGLPeriod' then SetintGLPeriod(intGLPeriod, editGLPeriod); //If Enter was pressed, this hasn't been done yet.
if screen.ActiveControl.name = 'editGLYear' then SetintGLYear(intGLYear, editGLYear); //If Enter was pressed, this hasn't been done yet.
if screen.ActiveControl.name = 'editMinOwing' then SetcurMinOwing(curMinOwing, editMinOwing); //If Enter was pressed, this hasn't been done yet.
if screen.ActiveControl.name = 'editMinDays' then SetintMinDays(intMinDays, editMinDays); //If Enter was pressed, this hasn't been done yet.
if cboCustomer.Items.IndexOf(cboCustomer.Text) < 0 then begin //If Enter was pressed, this edit hasn't been done yet.
cboCustomer.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;
modalResult := mrOK;
//if license = '' then begin frmBS1.FreewareMessage; exit; end;
if lboReports.ItemIndex = 0 then begin
screen.cursor := crHourglass;
application.createform (TrptAgedTrialBalance,rptAgedTrialBalance);
rptAgedTrialBalance.lblAsOf.caption := 'Aged as of: ' + FormatDateTime('dd mmm yy', AsOfDate);
rptAgedTrialBalance.lblSelection.caption := '';
rptAgedTrialBalance.lblSelection2.caption := '';
if (frmARReports.CurrencyID > 0) or (frmARReports.CustomerID > 0) then begin
//strWHERE := ' WHERE (1 = 1)';
strWHERE := ''; //SQL already has a WHERE clause.
if (frmARReports.CurrencyID > 0) then begin
strWHERE := strWHERE + ' AND (CurrencyID = ' + IntToStr(frmARReports.CurrencyID) + ')';
rptAgedTrialBalance.lblSelection.caption := rptAgedTrialBalance.lblSelection.caption + ' Currency: ' + cboCurrency.Text;
end;
if (frmARReports.CustomerID > 0) then begin
strWHERE := strWHERE + ' AND (CustomerID = ' + IntToStr(frmARReports.CustomerID) + ')';
rptAgedTrialBalance.lblSelection.caption := rptAgedTrialBalance.lblSelection.caption + ' Customer: ' + cboCustomer.Text;
end;
rptAgedTrialBalance.qryARInv.SQL[0] := rptAgedTrialBalance.qryARInv.SQL[0] + strWHERE;
end;
if MinOwing > 0 then rptAgedTrialBalance.lblSelection2.caption := rptAgedTrialBalance.lblSelection2.caption + ' Min Owing: ' + FloatToStrF(MinOwing,ffCurrency,18,2);
if MinDays >0 then rptAgedTrialBalance.lblSelection2.caption := rptAgedTrialBalance.lblSelection2.caption + ' Min Days Old: ' + IntToStr(MinDays);
if rptAgedTrialBalance.lblSelection2.caption = '' then begin
rptAgedTrialBalance.lblSelection.top := 19;
rptAgedTrialBalance.lblSelection2.top := 0;
end else begin
rptAgedTrialBalance.lblSelection.top := 5;
rptAgedTrialBalance.lblSelection2.top := 19;
end;
rptAgedTrialBalance.qryARInv.Active := true;
self.hide;
screen.cursor := crDefault;
rptAgedTrialBalance.QuickReport.Preview;
{end else if lboReports.ItemIndex = 1 then begin
Showmessage('AR Statements... ' + 'This program has not been written yet.' + #13 +
'Please check our website www.dbsonline.com for a more recent version.' + #13 + #13 +
'Meanwhile you can access this data via MS Access, MS Excel, Paradox, etc.' + #13 +
'To avoid upsetting data, close BS/1, then copy all files from folder "data" and' + #13 +
'only open the copies. Tables are in Paradox format.' + #13 + #13 +
'arinv.db, arpmt.db, and customer.db contain invoices, payments, and customer names, etc.');}
end else if lboReports.ItemIndex = 1 then begin
screen.cursor := crHourglass;
application.createform (TrptARHistory,rptARHistory);
rptARHistory.lblSelection.caption := '';
if (frmARReports.CurrencyID > 0) then rptARHistory.lblSelection.caption := rptARHistory.lblSelection.caption + ' Currency: ' + cboCurrency.Text;
if (frmARReports.CustomerID > 0) then rptARHistory.lblSelection.caption := rptARHistory.lblSelection.caption + ' Bill-to: ' + cboCustomer.Text;
self.hide;
screen.cursor := crDefault;
rptARHistory.QuickReport.Preview;
end else if lboReports.ItemIndex = 2 then begin
screen.cursor := crHourglass;
application.createform (TrptARStatements,rptARStatements);
rptARStatements.lblAsOf.caption := FormatDateTime('dd mmmm yyyy', AsOfDate);
rptARStatements.lblHAsOf.caption := rptARStatements.lblAsOf.caption;
if (frmARReports.CustomerID = 0) then rptARStatements.qryARInv.SQL[0] := rptARStatements.qryARInv.SQL[0] + ' AND (PrintStatement = True)'; //If all customers selected: only select those with "PrintStatement" checked.
if (frmARReports.CurrencyID > 0) or (frmARReports.CustomerID > 0) then begin
//strWHERE := ' WHERE (1 = 1)';
strWHERE := ''; //SQL already has a WHERE clause.
if (frmARReports.CurrencyID > 0) then begin
strWHERE := strWHERE + ' AND (CurrencyID = ' + IntToStr(frmARReports.CurrencyID) + ')';
end;
if (frmARReports.CustomerID > 0) then begin
strWHERE := strWHERE + ' AND (CustomerID = ' + IntToStr(frmARReports.CustomerID) + ')';
end;
rptARStatements.qryARInv.SQL[0] := rptARStatements.qryARInv.SQL[0] + strWHERE;
end;
rptARStatements.qryARInv.Active := true;
self.hide;
screen.cursor := crDefault;
rptARStatements.QuickReport.Preview;
end;
end;
end;
procedure TfrmARReports.FormShow(Sender: TObject);
var
Year, Month, Day: word;
begin
panelReports.visible := true;
panelOptions.visible := false;
btnBack.enabled := false;
btnNext.caption := '&Next >';
lboReports.setfocus;
lboReports.ItemIndex := 0;
cboCurrency_Load(dmLookUps.tblCurrency, cboCurrency); //Populate "currency" combobox.
cboCustomer_Load(dmLookUps.tblCustomer, cboCustomer); //Populate "customer" combobox.
AsOfDate := Date;
editAsOfDate.text := FormatDateTime('dd mmm yy', AsOfDate);
DecodeDate(Date, Year, Month, Day);
if frmBS1.tblCompanyDefaultPeriodPP.value > 0 then GLPeriod := frmBS1.tblCompanyDefaultPeriodPP.value
else GLPeriod := Month;
if frmBS1.tblCompanyDefaultPeriodYYYY.value > 0 then GLYear := frmBS1.tblCompanyDefaultPeriodYYYY.value
//else if frmBS1.tblCompanyFiscalYear.value > 0 then GLYear := frmBS1.tblCompanyFiscalYear.value
else GLYear := Year;
editGLPeriod.text := IntToStr(GLPeriod);
editGLYear.text := IntToStr(GLYear);
MinOwing := 0;
editMinOwing.text := FloatToStrF(MinOwing,ffCurrency,18,2);
MinDays := 0;
editMinDays.text := IntToStr(MinDays);
end;
procedure TfrmARReports.btnBackClick(Sender: TObject);
begin
if panelOptions.visible = true then begin
panelOptions.visible := false;
panelReports.visible := true;
btnNext.caption := '&Next >';
lboReports.setfocus;
btnBack.enabled := false;
end;
end;
procedure TfrmARReports.lboReportsDblClick(Sender: TObject);
begin
btnNextClick(sender);
end;
procedure TfrmARReports.FormCreate(Sender: TObject);
begin
cboCurrencyIDs := TStringList.create; //Create a TStringList to store CurrencyIDs for the combobox.
cboCustomerIDs := TStringList.create; //Create a TStringList to store CustomerIDs for the combobox.
end;
procedure TfrmARReports.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 TfrmARReports.cboCustomerExit(Sender: TObject);
begin
if cboCustomer.Items.IndexOf(cboCustomer.Text) < 0 then begin
cboCustomer.setfocus;
raise(Exception.Create('Choose an item from the list'));
end;
end;
procedure TfrmARReports.btnAsOfDateClick(Sender: TObject);
begin
if screen.ActiveControl.name = 'editAsOfDate' then SetAsOfDate(AsOfDate, editAsOfDate); //If on date and it was changed, this hasn't been done yet.
frmCalendar.caption := 'Report As Of Date';
if AsOfDate > StrToDate('01' + DateSeparator + '01' + DateSeparator + '1900') then frmCalendar.date := AsOfDate
else frmCalendar.date := Date;
if frmCalendar.ShowModal = mrOk then AsOfDate := frmCalendar.Date;
editAsOfDateEnter(Sender);
editAsOfDate.setfocus;
//editAsOfDate.SelectAll;
end;
procedure TfrmARReports.editAsOfDateEnter(Sender: TObject);
begin
editAsOfDate.EditMask := '!99/99/00;1;_';
editAsOfDate.text := DateToStr(AsOfDate);
editAsOfDate.SelectAll;
end;
procedure TfrmARReports.editAsOfDateExit(Sender: TObject);
begin
SetAsOfDate(AsOfDate, editAsOfDate);
editAsOfDate.EditMask := '';
editAsOfDate.text := FormatDateTime('dd mmm yy', AsOfDate);
end;
procedure TfrmARReports.editAsOfDateKeyPress(Sender: TObject;
var Key: Char);
begin
if Key = ^J then begin //Ctrl+Enter show calendar.
btnAsOfDateClick(sender);
Key := #0;
end else if Key = '+' then begin //Increase/decrease date via +/- keys.
SetAsOfDate(AsOfDate, editAsOfDate); //Update date for any changes keyed.
if AsOfDate < StrToDate('01' + DateSeparator + '01' + DateSeparator + '1900') then AsOfDate := Date;
AsOfDate := AsOfDate + 1;
editAsOfDate.text := DateToStr(AsOfDate);
key := #0;
end else if Key = '-' then begin
SetAsOfDate(AsOfDate, editAsOfDate); //Update date for any changes keyed.
if AsOfDate < StrToDate('01' + DateSeparator + '01' + DateSeparator + '1900') then AsOfDate := Date;
AsOfDate := AsOfDate - 1;
editAsOfDate.text := DateToStr(AsOfDate);
key := #0;
end;
end;
procedure TfrmARReports.editGLPeriodEnter(Sender: TObject);
begin
editGLPeriod.text := IntToStr(GLPeriod);
editGLPeriod.SelectAll;
end;
procedure TfrmARReports.editGLPeriodExit(Sender: TObject);
begin
SetintGLPeriod(intGLPeriod, editGLPeriod);
end;
procedure TfrmARReports.editGLYearEnter(Sender: TObject);
begin
editGLYear.text := Copy(IntToStr(GLYear),3,2); //If editing, show last 2 digits of year.
editGLYear.SelectAll;
end;
procedure TfrmARReports.editGLYearExit(Sender: TObject);
begin
SetintGLYear(intGLYear, editGLYear);
editGLYear.text := IntToStr(GLYear);
end;
procedure TfrmARReports.editMinDaysEnter(Sender: TObject);
begin
editMinDays.text := IntToStr(MinDays);
editMinDays.SelectAll;
end;
procedure TfrmARReports.editMinDaysExit(Sender: TObject);
begin
SetintMinDays(intMinDays, editMinDays);
end;
procedure TfrmARReports.editMinOwingEnter(Sender: TObject);
begin
editMinOwing.text := FloatToStr(MinOwing);
editMinOwing.SelectAll;
end;
procedure TfrmARReports.editMinOwingExit(Sender: TObject);
begin
SetcurMinOwing(curMinOwing, editMinOwing);
editMinOwing.text := FloatToStrF(MinOwing,ffCurrency,18,2);
end;
procedure TfrmARReports.btnCancelClick(Sender: TObject);
begin
Close;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -