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

📄 arreportsform.pas

📁 功能全面的商业财会系统源码,清晰,很有参考价值.扩展性强.
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit ARReportsForm;

interface

uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls,
  Buttons, ExtCtrls, Mask, Dialogs, DB, DBTables;

type
  TfrmARReports = class(TForm)
    panelBottom: TPanel;
    btnBack: TButton;
    btnNext: TButton;
    btnCancel: TButton;
    PanelReports: TPanel;
    PanelOptions: TPanel;
    lboReports: TListBox;
    lblPeriod: TLabel;
    lblHeading: TLabel;
    Image1: TImage;
    lblReportTitle: TLabel;
    cboCurrency: TComboBox;
    lblCurrency: TLabel;
    lblCustomer: TLabel;
    cboCustomer: TComboBox;
    lblAsOfDate: TLabel;
    editAsOfDate: TMaskEdit;
    btnAsOfDate: TSpeedButton;
    editMinOwing: TEdit;
    editMinDays: TEdit;
    lblMinOwing: TLabel;
    lblMinDays: TLabel;
    editGLPeriod: TEdit;
    editGLYear: TEdit;
    procedure btnNextClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure btnBackClick(Sender: TObject);
    procedure lboReportsDblClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure cboCurrencyExit(Sender: TObject);
    procedure cboCustomerExit(Sender: TObject);
    procedure btnAsOfDateClick(Sender: TObject);
    procedure editAsOfDateEnter(Sender: TObject);
    procedure editAsOfDateExit(Sender: TObject);
    procedure editAsOfDateKeyPress(Sender: TObject; var Key: Char);
    procedure editGLPeriodEnter(Sender: TObject);
    procedure editGLPeriodExit(Sender: TObject);
    procedure editGLYearEnter(Sender: TObject);
    procedure editGLYearExit(Sender: TObject);
    procedure editMinDaysExit(Sender: TObject);
    procedure editMinDaysEnter(Sender: TObject);
    procedure editMinOwingEnter(Sender: TObject);
    procedure editMinOwingExit(Sender: TObject);
    procedure btnCancelClick(Sender: TObject);
  private
    procedure SetCurrencyID(CurrencyID: integer);
    function GetCurrencyID: integer;
    procedure SetCustomerID(CustomerID: integer);
    function GetCustomerID: integer;
    procedure SetGLPeriod(GLPeriod: integer);
    function GetGLPeriod: integer;
    procedure SetGLYear(GLYear: integer);
    function GetGLYear: integer;
    procedure SetAsOfDate1(AsOfDate1: TDateTime);
    function GetAsOfDate1: TDateTime;
    procedure SetMinOwing(MinOwing: currency);
    function GetMinOwing: currency;
    procedure SetMinDays(MinDays: integer);
    function GetMinDays: integer;
  public
    property CurrencyID: integer read GetCurrencyID write SetCurrencyID;
    property CustomerID: integer read GetCustomerID write SetCustomerID;
    property GLPeriod: integer read GetGLPeriod write SetGLPeriod;
    property GLYear: integer read GetGLYear write SetGLYear;
    property AsOfDate1: TDateTime read GetAsOfDate1 write SetAsOfDate1;
    property MinOwing: currency read GetMinOwing write SetMinOwing;
    property MinDays: integer read GetMinDays write SetMinDays;
  end;

var
  frmARReports: TfrmARReports;

implementation

uses AgedTrialBalanceReport, LookUpsData, ARHistoryReport, BS1Form, CalendarForm,
  ARStatementsReport;

{$R *.DFM}

var
  cboCurrencyIDs, cboCustomerIDs: TStringList;
  AsOfDate: TDateTime;
  intGLPeriod, intGLYear, intMinDays: integer;
  curMinOwing: currency;

procedure TfrmARReports.SetCurrencyID(CurrencyID: integer);
begin
  CboCurrency.ItemIndex := cboCurrencyIDs.IndexOf(IntToStr(CurrencyID));
end;

function TfrmARReports.GetCurrencyID: integer;
begin
  if cboCurrency.ItemIndex > 0 then Result := StrToInt(cboCurrencyIDs[cboCurrency.ItemIndex])
  else Result := 0;
end;

procedure TfrmARReports.SetCustomerID(CustomerID: integer);
begin
  cboCustomer.ItemIndex := cboCustomerIDs.IndexOf(IntToStr(CustomerID));
end;

function TfrmARReports.GetCustomerID: integer;
begin
  if cboCustomer.ItemIndex > 0 then Result := StrToInt(cboCustomerIDs[cboCustomer.ItemIndex])
  else Result := 0;
end;

procedure TfrmARReports.SetGLPeriod(GLPeriod: integer);
begin
  intGLPeriod := GLPeriod;
end;

function TfrmARReports.GetGLPeriod: integer;
begin
  Result := intGLPeriod;
end;

procedure TfrmARReports.SetGLYear(GLYear: integer);
begin
  intGLYear := GLYear;
end;

function TfrmARReports.GetGLYear: integer;
begin
  Result := intGLYear;
end;

procedure TfrmARReports.SetAsOfDate1(AsOfDate1: TDateTime);
begin
  AsOfDate := AsOfDate1;
end;

function TfrmARReports.GetAsOfDate1: TDateTime;
begin
  Result := AsOfDate;
end;

procedure TfrmARReports.SetMinOwing(MinOwing: currency);
begin
  curMinOwing := MinOwing;
end;

function TfrmARReports.GetMinOwing: currency;
begin
  Result := curMinOwing;
end;

procedure TfrmARReports.SetMinDays(MinDays: integer);
begin
  intMinDays := MinDays;
end;

function TfrmARReports.GetMinDays: integer;
begin
  Result := intMinDays;
end;

procedure cboCurrency_Load(const Tbl: TTable; const Cbo: TCombobox);
begin
  Cbo.Items.Clear;   //Populate "currency" combobox.
  cboCurrencyIDs.Clear;
  Cbo.Items.Add('<All>');
  cboCurrencyIDs.Add('');
  Tbl.First;
  while not Tbl.EOF do begin
    Cbo.Items.Add(Tbl['CurrencyName']);
    cboCurrencyIDs.Add(Tbl['CurrencyID']);
    Tbl.Next;
  end;
  Cbo.ItemIndex := 0;
end;

procedure cboCustomer_Load(const Tbl: TTable; const Cbo: TCombobox);
begin
  Cbo.Items.Clear;   //Populate "customer" combobox.
  cboCustomerIDs.Clear;
  Cbo.Items.Add('<All>');
  cboCustomerIDs.Add('');
  Tbl.First;
  while not Tbl.EOF do begin
    Cbo.Items.Add(Tbl['CustomerName']);
    cboCustomerIDs.Add(Tbl['CustomerID']);
    Tbl.Next;
  end;
  Cbo.ItemIndex := 0;
end;

procedure SetintGLPeriod(var intGLPeriod: integer; var editGLPeriod: TEdit);
var
  intWork: integer;
begin
  try intWork := StrToInt(editGLPeriod.text); except; editGLPeriod.text := '0'; end;   //Prevent error if can't convert text to integer.
  if (StrToInt(editGLPeriod.text) > 0) and (StrToInt(editGLPeriod.text) <= 12) then intGLPeriod := StrToInt(editGLPeriod.text)
  else begin
    editGLPeriod.setfocus;
    editGLPeriod.SelectAll;
    raise(exception.create('Period must be between 1 and 12'));
  end;
end;

procedure SetintGLYear(var intGLYear: integer; var editGLYear: TEdit);
var
  intWork: integer;
begin
  try intWork := StrToInt(editGLYear.text); except; editGLYear.text := '0'; end;   //Prevent error if can't convert text to integer.
  if (StrToInt(editGLYear.text) < 0) or (StrToInt(editGLYear.text) > 99) then begin
    editGLYear.setfocus;
    editGLYear.SelectAll;
    raise(exception.create('Period invalid...' + #13 + 'Enter year as 2 digits'));
  end else if StrToInt(editGLYear.text) < 50 then intGLYear := StrToInt(editGLYear.text) + 2000   //Convert 2 digit year to 4.
  else intGLYear := StrToInt(editGLYear.text) + 1900;
end;

procedure SetAsOfDate(var AsOfDate: TDateTime; var editAsOfDate: TMaskEdit);
var
  Year, Month, Day: Word;
begin
  try
    AsOfDate := StrToDate(editAsOfDate.text);
    DecodeDate(AsOfDate, Year, Month, Day);
    if (Year < 1950) and (Year > 1899) then begin
      Year := Year + 100;
      AsOfDate := EncodeDate(Year,Month,Day);
    end else if (Year > 2050) then begin
      Year := Year - 100;
      AsOfDate := EncodeDate(Year,Month,Day);
    end;
  except;
    if (editAsOfDate.text = ' 2' + DateSeparator + '29' + DateSeparator + '00') or (editAsOfDate.text = '02' + DateSeparator + '29' + DateSeparator + '00') then AsOfDate := StrToDate('02' + DateSeparator + '29' + DateSeparator + '2000')
    else if (editAsOfDate.text = '29' + DateSeparator + '02' + DateSeparator + '00') then AsOfDate := StrToDate('29' + DateSeparator + '02' + DateSeparator + '2000')
    else begin
      editAsOfDate.setfocus;
      raise;
    end;
  end;
end;

procedure SetcurMinOwing(var curMinOwing: currency; var editMinOwing: TEdit);
var
  curWork: currency;
begin
  try curWork := StrToFloat(editMinOwing.text); except; editMinOwing.text := '0'; end;   //Prevent error if can't convert text to integer.
  if (StrToFloat(editMinOwing.text) >= 0) and (StrToFloat(editMinOwing.text) <= 100000) then curMinOwing := StrToFloat(editMinOwing.text)
  else begin
    editMinOwing.setfocus;
    editMinOwing.SelectAll;
    raise(exception.create('Min Owing must be between 0 and ' + FloatToStrF(100000,ffCurrency,18,2)));
  end;
end;

procedure SetintMinDays(var intMinDays: integer; var editMinDays: TEdit);
var
  intWork: integer;
begin
  try intWork := StrToInt(editMinDays.text); except; editMinDays.text := '0'; end;   //Prevent error if can't convert text to integer.
  if (StrToInt(editMinDays.text) >= 0) and (StrToInt(editMinDays.text) <= 100) then intMinDays := StrToInt(editMinDays.text)
  else begin
    editMinDays.setfocus;
    editMinDays.SelectAll;
    raise(exception.create('Min Days Old must be between 0 and 100'));
  end;
end;

procedure TfrmARReports.btnNextClick(Sender: TObject);
var
  strWHERE: string;
begin
  if panelReports.visible = true then begin

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -