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

📄 orderrpt.pas

📁 Delphi利用MVC开发的典型例子
💻 PAS
字号:
unit OrderRpt;

interface

uses SysUtils, Windows, Messages, Classes, Graphics, Controls,
  StdCtrls, ExtCtrls, Forms, Quickrpt, QRCtrls, patterns;

type
  TOrdersByDateReport = class(TQuickRep)
    TitleBand1: TQRBand;
    QRLabel1: TQRLabel;
    QRLabel2: TQRLabel;
    QRLabel3: TQRLabel;
    ColumnHeaderBand1: TQRBand;
    QRLabel4: TQRLabel;
    QRLabel5: TQRLabel;
    QRLabel6: TQRLabel;
    QRLabel7: TQRLabel;
    QRLabel8: TQRLabel;
    QRLabel9: TQRLabel;
    QRLabel10: TQRLabel;
    QRLabel11: TQRLabel;
    QRLabel12: TQRLabel;
    FromToHeading: TQRLabel;
    DetailBand1: TQRBand;
    QRDBText3: TQRDBText;
    QRDBText4: TQRDBText;
    QRDBText5: TQRDBText;
    QRDBText1: TQRDBText;
    QRDBText6: TQRDBText;
    QRDBText7: TQRDBText;
    QRDBText8: TQRDBText;
    QRDBText9: TQRDBText;
    QRDBText2: TQRDBText;
  private

  public

  end;

  TControllerOrderReport = class(TController)
  private
    procedure PrintOrderReport(Preview: Boolean);
  protected
    procedure DoCommand(Command: string; const args: string=''); override;
  end;


var
  OrdersByDateReport: TOrdersByDateReport;

implementation
uses DataMod, QryCust, commandlist;
{$R *.DFM}


procedure TControllerOrderReport.DoCommand(Command: string; const args: string='');
begin
  if command = CMD_RPT_ORDER then
  begin
    PrintOrderReport(lowercase(args) = 'preview');
  end;
end;

procedure TControllerOrderReport.PrintOrderReport(Preview: Boolean);
const
  FromToHeading = 'From ''%s'' To ''%s''';
begin
  // Request the 'From' and 'To' dates from the user.
  with TQueryCustDlg.Create(nil) do
  begin
    MsgLab.Caption := 'Print all orders ranging:';
    if FromDate = 0 then FromDate := EncodeDate(95, 01, 01);
    if ToDate = 0 then ToDate := Now;

    if ShowModal = mrOk then
      with TMastData.GetInstance.OrdersByDateQuery do
      begin
        Close;
        PArams.ParamByName('FromDate').AsDate := FromDate;
        PArams.ParamByName('ToDate').AsDate := ToDate;
        Open;

      // Format the From To header with the user's dates entered
        OrdersByDateReport.FromToHeading.Caption :=
          Format(FromToHeading, [DateToStr(FromDate), DateToStr(ToDate)]);

        if Preview then
          OrdersByDateReport.Preview
        else
          OrdersByDateReport.Print;
        Close;
      end;
    free;
  end;
end;



initialization
  ControlCenter.RegController(TControllerOrderReport.Create);
  OrdersByDateReport := TOrdersByDateReport.create(application);


end.

⌨️ 快捷键说明

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