亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? qm_rconsole.pas

?? 計(jì)算機(jī)系畢業(yè)設(shè)計(jì)
?? PAS
?? 第 1 頁(yè) / 共 4 頁(yè)
字號(hào):
{*******************************************************}
{                                                       }
{                   QReportMaker 2.0                    }
{              TQMReportConsole Component               }
{                                                       }
{            Copyright (c) 2003,2004 by Zwm.            }
{                                                       }
{*******************************************************}
                                   
unit QM_RConsole;

interface


uses
  Windows, SysUtils, Graphics, Classes, Forms, DB, QM_DCtrl, QM_RGrid;

type

  { TQMReportConsole }
  TQMReportConsole = class(TComponent)
  private
    FOnAfterPrint: TNotifyEvent;
    FOnBeforePrint: TNotifyEvent;
    FOnAfterPreview: TNotifyEvent;
    FOnBeforePreview: TNotifyEvent;
    FOnBeforeDraw: TNotifyEvent;
    FOptions: TQMOptions;
    FPage: TQMPage;
    FPageFooter: TQMBand;
    FPageHeader: TQMBand;
    FParameters: TQMParameters;
    FReportTitle: TQMTitle;
    FLogo: TQMLogo;
    FSection: String;
    FSummary: TQMBand;
    FTitle: TQMBand;
    FFont: TFont;
    FDocumentTitle: String;
    FColorMode: TQMColorMode;
    FBackColor: TColor;
    FLineColor: TColor;
    FPercent: Integer;
    FScale:Integer;
    
    FBGColor: TColor;
    FNeedName: Boolean;
    FQROwner: TComponent;
    FScaleHT, FScaleWL: Real;
    FLftMargin: Integer;
    FFrame: TQMFrame;
    procedure SetOptions(const Value: TQMOptions);
    procedure SetPage(const Value: TQMPage);
    procedure SetPageFooter(const Value: TQMBand);
    procedure SetPageHeader(const Value: TQMBand);
    procedure SetSummary(const Value: TQMBand);
    procedure SetReportTitle(const Value: TQMTitle);
    procedure SetTitle(const Value: TQMBand);
    procedure SetParameters(const Value: TQMParameters);
    procedure SetFont(const Value: TFont);
    procedure SetPercent(const Value: Integer);
    procedure SetScale(const Value: Integer);
    procedure SetLogo(const Value: TQMLogo);
    function GetDocumentTitle: String;
    procedure SetSection(const Value: String);
  protected
    procedure FormatReport(ReportWidth: Integer);
    procedure DrawReport; virtual;
    function GetRecordCount: Integer; virtual;
    property BGColor: TColor read FBGColor;
    property QROwner: TComponent read FQROwner;
    property NeedName: Boolean read FNeedName;
    property LftMargin: Integer read FLftMargin;
    property ScaleHT: real read FScaleHT;
    property ScaleWL: real read FScaleWL;
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
    procedure Preview; virtual;
    procedure Print; virtual;
    function PageSetup: Boolean;
    procedure DrawTo(QuickRep: TObject);
    procedure ReDraw;
    property RecordCount: Integer read GetRecordCount;
  published
    property Font: TFont read FFont write SetFont;
    property ColorMode: TQMColorMode read FColorMode write FColorMode default pmColor;
    property BackColor: TColor read FBackColor write FBackColor default clWhite;
    property LineColor: TColor read FLineColor write FLineColor default clBlack;
    property Section: String read FSection write SetSection;
    property Options: TQMOptions read FOptions write SetOptions;
    property Page: TQMPage read FPage write SetPage;
    property PageFooter: TQMBand read FPageFooter write SetPageFooter;
    property PageHeader: TQMBand read FPageHeader write SetPageHeader;
    property Summary: TQMBand read FSummary write SetSummary;
    property Title: TQMBand read FTitle write SetTitle;
    property ReportTitle: TQMTitle read FReportTitle write SetReportTitle;
    property Logo: TQMLogo read FLogo write SetLogo;
    property DocumentTitle: String read GetDocumentTitle write FDocumentTitle;
    property Parameters: TQMParameters read FParameters write SetParameters;
    property Percent: Integer read FPercent write SetPercent default 100;
    property Scale: Integer read FScale write SetScale default 100;
    property Frame: TQMFrame read FFrame write FFrame;
    property OnAfterPrint: TNotifyEvent read FOnAfterPrint write FOnAfterPrint;
    property OnAfterPreview: TNotifyEvent read FOnAfterPreview write FOnAfterPreview;
    property OnBeforePreview: TNotifyEvent read FOnBeforePreview write FOnBeforePreview;
    property OnBeforePrint: TNotifyEvent read FOnBeforePrint write FOnBeforePrint;
    property OnBeforeDraw: TNotifyEvent read FOnBeforeDraw write FOnBeforeDraw;
  end;

  { TQMDataReport }
  TQMDataReport = class(TQMReportConsole)
  private
    FGrid: TQMCustomGrid;
    FDataSet: TDataSet;
    FCurrentIndex: Integer;
    FDataRowCount: Integer;
    procedure SetDataSet(const Value: TDataSet);
    procedure SetGrid(const Value: TQMCustomGrid);
  protected
    procedure Notification(AComponent: TComponent; Operation: TOperation); override;
    procedure DrawQMGrid(HasDataSet: Boolean);
    function GetData(ACol: Integer): string; virtual;
    function GridType: TQMGridType; virtual;
    property CurrentIndex: Integer read FCurrentIndex write FCurrentIndex;
    property DataRowCount: Integer read FDataRowCount write FDataRowCount;
    procedure OnNeedData(Sender: TObject; var MoreData: Boolean);
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
    property DataSet: TDataSet read FDataSet write SetDataSet;
  published
    property Grid: TQMCustomGrid read FGrid write SetGrid;
  end;

implementation

uses QRCtrls, QuickRpt, QRPrntr, QM_Prntr, QM_Prvfrm, QM_Utils, QM_QRFuns;

procedure QM_SpaceBand(Margin: Integer; Band: TQRBand);
var
  i:integer;
begin
  for i := 0 to Band.ControlCount - 1 do
    Band.Controls[i].Top := Band.Controls[i].Top + Margin;
  Band.Height := Band.Height + Margin;
end;

{ TQMReportConsole }

const
  rcTBMargin=5;
  rcLRMargin=3;
  rcLblSpace=3;

var
  R_HasPageCount: Boolean;

constructor TQMReportConsole.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  FFont := TFont.Create;
  FBackColor := clWhite;
  FPage := TQMPage.Create;
  FPageFooter := TQMBand.Create(FFont);
  FPageHeader := TQMBand.Create(FFont);
  FSummary := TQMBand.Create(FFont);
  FTitle := TQMBand.Create(FFont);
  FLogo := TQMLogo.Create;
  FReportTitle := TQMTitle.Create(FFont);
  FParameters := TQMParameters.Create(self, TQMParameter);
  FFrame := TQMFrame.Create;
  FPercent := 100;
  FScale := 100;
  FSection := ClassName + FormatDateTime('mmsszzz', time);
  Options := [rcFirstPageHeader, rcLastPageFooter, rcRepWidth];
end;

destructor TQMReportConsole.Destroy;
begin
  FPage.Free;
  FPageFooter.Free;
  FPageHeader.Free;
  FSummary.Free;
  FTitle.Free;
  FLogo.Free;
  FReportTitle.Free;
  FParameters.Free;
  FFont.Free;
  FFrame.Free;
  inherited Destroy;
end;

procedure TQMReportConsole.Preview;
var
  tmpFrm: TQMPreviewForm;
begin
  tmpFrm := TQMPreviewForm.Create(nil);
  try
    if not (csDesigning in ComponentState) then QM_LoadSetting(self);
    FNeedName := False;
    with tmpFrm do
    begin
      QM_QRep := TQuickRep.Create(tmpFrm);
      QM_QRep.OnPreview := QM_QRepOnPreview;
      QMReportConsole := self;
      QMQuickRep := QM_QRep;
      QM_ApplySetting(self);
      DrawReport();
      if Assigned(OnBeforePreview) then OnBeforePreview(self);
      if R_HasPageCount then QM_ChkPageCount();
      QM_QRep.PreviewModal;
      ShowModal;
      if Assigned(OnAfterPreview) then OnAfterPreview(self);
    end;
  finally
    tmpFrm.Free;
  end;
end;

procedure TQMReportConsole.Print;
var
  tmpRep: TQuickRep;
begin
  tmpRep := TQuickRep.Create(self.Owner);
  try
    if not (csDesigning in ComponentState) then QM_LoadSetting(self);
    FNeedName := False;
    QMQuickRep := tmpRep;
    QM_ApplySetting(self);
    DrawReport();
    if Assigned(OnBeforePrint) then OnBeforePrint(self);
    if R_HasPageCount then QM_ChkPageCount();
    tmpRep.Print;
    if Assigned(OnAfterPrint) then OnAfterPrint(self);
  finally
    tmpRep.Free;
  end; 
end;

procedure TQMReportConsole.SetOptions(const Value: TQMOptions);
begin
  FOptions := Value;
end;

procedure TQMReportConsole.SetPage(const Value: TQMPage);
begin
  FPage.Assign(Value);
end;

procedure TQMReportConsole.SetPageFooter(const Value: TQMBand);
begin
  FPageFooter.Assign(Value);
end;

procedure TQMReportConsole.SetPageHeader(const Value: TQMBand);
begin
  FPageHeader.Assign(Value);
end;

procedure TQMReportConsole.SetTitle(const Value: TQMBand);
begin
  FTitle.Assign(Value);
end;

procedure TQMReportConsole.SetSummary(const Value: TQMBand);
begin
  FSummary.Assign(Value);
end;

procedure TQMReportConsole.SetReportTitle(const Value: TQMTitle);
begin
  FReportTitle.Assign(Value);
end;

procedure TQMReportConsole.SetParameters(const Value: TQMParameters);
begin
  FParameters.Assign(Value);
end;

procedure TQMReportConsole.SetFont(const Value: TFont);
begin
  FFont.Assign(Value);
end;

procedure TQMReportConsole.SetPercent(const Value: Integer);
begin
  FPercent := QM_GetIntValue(Value, 0, 100);
end;

procedure TQMReportConsole.SetScale(const Value: Integer);
begin
  FScale := QM_GetIntValue(Value, 10, 500);
end;

var
  R_PageWd, R_ReportWd: Integer;

procedure TQMReportConsole.FormatReport(ReportWidth: Integer);
var
  T_Real: Real;
  T_Val: Integer;
begin
  if QMQuickRep.Owner = nil then FQROwner := QMQuickRep
  else FQROwner := QMQuickRep.Owner;
  if ColorMode = pmBlack then FBGColor := clWhite
  else FBGColor := QM_PrintColor(self, BackColor);
  R_PageWd := QM_FindBand(rbTitle, BGColor).Width;
  QMQuickRep.Bands.HasTitle := False;
  if R_PageWd < 10 then R_PageWd := 10;
  if ReportWidth < 10 then R_ReportWd := R_PageWd
  else R_ReportWd := ReportWidth;
  FScaleWL := Scale/100;
  FScaleHT := FScaleWL;
  T_Val := Round(R_ReportWd * FScaleWL);
  T_Real := Round(R_PageWd/R_ReportWd * 100)/100;
  if rcFitToPageWidth in Options then
  begin
    if (rcAllowExtend in Options) or (T_Val > R_PageWd) then
      if rcScaleWhole in Options then
      begin
        FScaleWL := T_Real;
        FScaleHT := T_Real;
      end else
        FScaleWL := T_Real;
  end;
  FScaleHT := QM_GetFloatValue(FScaleHT, 0.1, 5);
  FScaleWL := QM_GetFloatValue(FScaleWL, 0.1, 5);
  if (rcCenter in Options) and (T_Val < R_PageWd)
    and ( not ((rcFitToPageWidth in Options) and (rcAllowExtend in Options))) then
    FLftMargin := (R_PageWd - T_Val) div 2 - 1
  else FLftMargin := 0;
end;

procedure TQMReportConsole.DrawReport;
var
  R_LblWd,R_TitleTop,R_LineTop,R_TtlHg,R_TitleHg,R_TitleMargin: Integer;
  R_QRBand: TQRBand;
  R_Font, R_RepFont: TFont;
  T_Cnt,T_Val,T_TextHg: Integer;

  function Max(Val1, Val2, Val3: Integer):Integer;
  begin
    Result := Val1;
    if Val2 > Result then Result := Val2;
    if Val3 > Result then Result := Val3;
  end;

  procedure DrawLine(Ltyp: TQMLineType; iTop: Integer);
  var
    C_QRShape: TQRShape;
  begin
    if ltyp=rltNone then exit;
    C_QRShape := TQRShape.Create(QROwner);
    C_QRShape.Parent := R_QRBand;
    with C_QRShape do
    begin
      Left := 0;
      Top := iTop;
      Width := R_LblWd + 5;
      if rcRepWidth in Options then
      begin
        Width := Round(Width * FScaleWL);
        Left := FLftMargin;
      end;
      if ltyp=rltSingle then
      begin
        Height := 1;
        Shape := qrsHorLine;
      end else
      begin
        Height := 3;
        Shape := qrsTopAndBottom;
      end;
      Pen.Color := QM_PrintColor(self, LineColor);
      if FNeedName then
        Name := QM_UniqueName(QROwner, 'QRShape');
    end;
  end;

  procedure DrawBand(sList: TStrings; iAlign,iTop: Integer; isStored: Boolean);
  var
    i,iType: Integer;
    cCaption: String;
    C_QRLabel: TQRLabel;
    C_QRExpr: TQRExpr;
  begin
    for i := 0 to sList.Count - 1 do
    begin
      if Trim(sList[i])='' then Continue;
      cCaption := sList[i];
      iType := QM_GetParaString(self, cCaption);
      if iType < 2 then
      begin
        C_QRLabel := TQRLabel.Create(QROwner);
        C_QRLabel.Parent := R_QRBand;
        with C_QRLabel do
        begin

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
自拍偷拍亚洲激情| 国产精华液一区二区三区| 中文字幕欧美一区| 久久综合久久综合久久综合| 日韩精品一区二区三区老鸭窝| 欧美午夜一区二区三区免费大片| 91久久精品国产91性色tv| 91免费精品国自产拍在线不卡| 不卡欧美aaaaa| 99精品在线免费| 99国产欧美另类久久久精品| 色欧美片视频在线观看在线视频| 91猫先生在线| 欧美色欧美亚洲另类二区| 欧美影视一区在线| 欧美福利电影网| 欧美男同性恋视频网站| 欧美一级生活片| 欧美mv日韩mv亚洲| 国产欧美日韩三区| 日韩一区欧美小说| 亚洲高清不卡在线观看| 日本午夜精品视频在线观看| 激情国产一区二区| 成人三级在线视频| 972aa.com艺术欧美| 精品视频在线看| 91精品国产美女浴室洗澡无遮挡| 精品国产精品网麻豆系列| 国产亚洲精久久久久久| 亚洲日本青草视频在线怡红院| 亚洲韩国一区二区三区| 久久99日本精品| 成人午夜视频在线观看| 在线精品视频小说1| 欧美一区二区日韩| 欧美极品xxx| 亚洲免费av网站| 六月丁香婷婷久久| www.成人在线| 欧美一区二区三区小说| 国产清纯白嫩初高生在线观看91| 亚洲欧美日韩一区二区| 日韩高清中文字幕一区| 成人一二三区视频| 欧美日韩一区不卡| 久久久久久久久久久久久夜| 亚洲天堂免费在线观看视频| 日韩福利电影在线| 成人精品免费网站| 欧美日韩成人一区二区| 欧美韩日一区二区三区| 天天爽夜夜爽夜夜爽精品视频| 国产一区视频网站| 欧美午夜精品一区二区蜜桃| 欧美精品一区二区三区久久久| 亚洲另类在线一区| 国产另类ts人妖一区二区| 欧美伊人久久大香线蕉综合69| 精品国产在天天线2019| 一区二区三区四区在线播放| 狠狠色伊人亚洲综合成人| 在线亚洲精品福利网址导航| 久久精品人人做人人爽人人| 亚洲第一精品在线| 东方欧美亚洲色图在线| 在线播放日韩导航| 亚洲乱码中文字幕综合| 国产精品原创巨作av| 欧美日韩成人一区二区| 日韩理论片一区二区| 国产精品一区专区| 69堂成人精品免费视频| 一级日本不卡的影视| 国产ts人妖一区二区| 日韩亚洲欧美在线| 亚洲高清不卡在线| 一本到三区不卡视频| 亚洲国产精品99久久久久久久久| 裸体歌舞表演一区二区| 欧美高清www午色夜在线视频| 一区二区三区在线视频播放 | 捆绑紧缚一区二区三区视频| 色视频欧美一区二区三区| 欧美国产日韩亚洲一区| 狠狠色狠狠色综合系列| 7777精品伊人久久久大香线蕉经典版下载 | xfplay精品久久| 亚洲国产成人av网| 一本久久综合亚洲鲁鲁五月天| 国产精品久久免费看| 国产精品 欧美精品| 久久蜜臀中文字幕| 久久99国内精品| 日韩精品一区国产麻豆| 日本成人在线电影网| 欧美日韩高清在线播放| 亚洲一区欧美一区| 在线亚洲高清视频| 亚洲午夜羞羞片| 欧美三级三级三级| 亚洲影院理伦片| 精品视频在线视频| 婷婷开心激情综合| 在线播放日韩导航| 麻豆精品一二三| 精品国产123| 国产一区二区精品久久| 久久精品人人做人人综合| 国产69精品久久99不卡| 中文字幕国产一区| proumb性欧美在线观看| 中文字幕永久在线不卡| 色婷婷亚洲综合| 一区二区三区资源| 欧美挠脚心视频网站| 老汉av免费一区二区三区| 久久久综合激的五月天| 国产精品99久久久久久有的能看 | 免费日韩伦理电影| 精品理论电影在线观看| 国产精品亚洲一区二区三区在线 | 丝袜亚洲精品中文字幕一区| 91精品黄色片免费大全| 久久精品久久99精品久久| www激情久久| 成人avav影音| 亚洲精品第1页| 777久久久精品| 国产一区二区久久| 亚洲欧美激情小说另类| 欧美日本国产视频| 极品少妇一区二区| 亚洲国产成人私人影院tom | 亚洲免费毛片网站| 欧美挠脚心视频网站| 国产资源在线一区| 亚洲视频一区二区在线观看| 欧美日韩成人在线一区| 国产综合色精品一区二区三区| 亚洲欧洲精品一区二区三区不卡| 在线观看视频一区| 久88久久88久久久| 亚洲欧洲综合另类| 日韩一区二区三区免费看 | 精品国产99国产精品| www..com久久爱| 免费观看久久久4p| 国产精品久久久久婷婷 | 亚洲一区二区三区免费视频| 日韩视频一区二区| eeuss国产一区二区三区| 亚洲国产精品视频| 久久精品视频一区| 欧美人xxxx| 成人天堂资源www在线| 五月激情综合色| 欧美激情综合在线| 欧美一区二区三区免费视频| 99久久伊人网影院| 免费的成人av| 亚洲精品欧美激情| 久久久亚洲综合| 欧美日韩国产综合一区二区三区| 高清不卡一区二区在线| 五月天一区二区三区| 中文一区在线播放| 欧美va在线播放| 欧美性色欧美a在线播放| 国产91清纯白嫩初高中在线观看 | 欧美午夜精品一区二区三区| 国产成人欧美日韩在线电影| 天天av天天翘天天综合网色鬼国产| 国产欧美日本一区视频| 日韩欧美区一区二| 91高清在线观看| 成人爱爱电影网址| 久久99蜜桃精品| 午夜精品影院在线观看| 亚洲欧洲另类国产综合| 久久无码av三级| 欧美一二区视频| 欧美性生活久久| 91农村精品一区二区在线| 丁香婷婷综合激情五月色| 久久精品国产一区二区三区免费看| 亚洲成a人v欧美综合天堂| 日韩理论片在线| 国产精品免费丝袜| 精品少妇一区二区三区视频免付费| 欧美日韩国产高清一区二区| 91激情五月电影| 91在线一区二区| 成人午夜av电影| 丁香亚洲综合激情啪啪综合| 国产美女娇喘av呻吟久久| 久久www免费人成看片高清| 麻豆成人在线观看| 日本vs亚洲vs韩国一区三区| 五月天激情综合网|