• <menu id="w2i4a"></menu>
  • logo FastReport VCL程序員手冊
    文檔首頁>>FastReport VCL程序員手冊>>FastReport VCL程序員手冊:使用TfrxReport組件

    FastReport VCL程序員手冊:使用TfrxReport組件


    FastReport VCL是用于Delphi,C ++ Builder,RAD Studio和Lazarus的報告和文檔創(chuàng)建VCL庫。它提供了可視化模板設(shè)計器,可以訪問最受歡迎的數(shù)據(jù)源,報告引擎,預(yù)覽,將過濾器導(dǎo)出為30多種格式,并可以部署到云,Web,電子郵件和打印中。

    近日,F(xiàn)astReport VCL更新至v6.9,在新版本中,在PDF導(dǎo)出中增加了對以下對象的交互式表單支持:文本,復(fù)選框和圖片。能夠通過InteractiveFormsFontSubset屬性將所需的字形僅包含在交互式形式中。同時修復(fù)了多個Bug問題。歡迎下載體驗。(點擊下方按鈕下載)

    立即點擊下載FastReport VCL v6.9最新版

    加載和保存報告

    默認(rèn)情況下,報告表單與項目表單一起存儲,即存儲在DFM文件中。在大多數(shù)情況下,不需要任何其他操作,因此您無需采取特殊措施即可加載報告。如果您決定將報告表單存儲在文件中或DB BLOb字段中(這提供了極大的靈活性,即您可以在不重新編譯程序的情況下修改報告),則必須使用以下TfrxReport方法來加載和保存報告:

    function LoadFromFile(const FileName: String; ExceptionIfNotFound: Boolean = False): Boolean;
    從文件中加載具有給定名稱的報告。如果第二個參數(shù)等于“ True”,但找不到該文件,則它將生成異常。如果文件加載成功,則返回“ True”。
    procedure LoadFromStream(Stream: TStream);
    從流中加載報告
    procedure SaveToFile(const FileName: String);
    將報告保存到具有指定名稱的文件中
    procedure SaveToStream(Stream: TStream);
    將報告保存到流中

    帶有報告表單的文件默認(rèn)情況下具有“ FR3”擴展名。

    例子:
    Pascal:

    frxReport1.LoadFromFile('c:\1.fr3');
    frxReport1.SaveToFile('c:\2.fr3');
    C ++:
    frxReport1->LoadFromFile("c:\\1.fr3");
    frxReport1->SaveToFile("c:\\2.fr3");
    設(shè)計報告

    調(diào)用報表設(shè)計器是通過TfrxReport.DesignReport方法執(zhí)行的。設(shè)計人員必須包含在您的項目中(使用TfrxDesigner組件或?qū)ⅰ?frxDesgn”單元添加到使用列表中就足夠了)。

    該DesignReport方法采用兩個默認(rèn)參數(shù):

    procedure DesignReport(Modal: Boolean = True; MDIChild: Boolean = False);
    Modal參數(shù)確定設(shè)計者是否應(yīng)該是模態(tài)的。MDIChild參數(shù)允許使設(shè)計器窗口成為MDI子窗口。

    例子:

    frxReport1.DesignReport;
    運行報告

    應(yīng)用以下兩種TfrxReport方法之一將啟動報告:

    procedure ShowReport(ClearLastReport: Boolean = True);
    啟動報告并在預(yù)覽窗口中顯示結(jié)果。如果“ ClearLastReport”參數(shù)等于“ False”,則該報告將添加到先前構(gòu)建的報告中,否則將清除先前構(gòu)建的報告(默認(rèn)情況下)。
    function PrepareReport(ClearLastReport: Boolean = True): Boolean;
    在不打開預(yù)覽窗口的情況下啟動報告。參數(shù)分配與“ ShowReport”方法中的相同。如果成功構(gòu)建了報告,則返回“ True”。

    在大多數(shù)情況下,使用第一種方法更為方便。它會立即顯示預(yù)覽窗口,同時繼續(xù)構(gòu)建報告。

    如果需要在先前構(gòu)造的報表中添加另一個報表(此技術(shù)用于批量報表打印),則可以方便地使用“ ClearLastReport”參數(shù)。
    例子:

    frxReport1.ShowReport;
    預(yù)覽報告

    可以通過兩種方式在預(yù)覽窗口中顯示報告:通過調(diào)用TfrxReport.ShowReport 方法(如上所述)或借助該TfrxReport.ShowPreparedReport方法。在第二種情況下,不執(zhí)行報告構(gòu)造,但顯示完成的報告。這意味著,您應(yīng)該在PrepareReport方法的幫助下預(yù)先構(gòu)建它,或者從文件中加載以前構(gòu)建的報告(請參閱加載和保存完成的報告)。

    例子:
    Pascal:

    if frxReport1.PrepareReport then
      frxReport1.ShowPreparedReport;
    C ++:
    if(frxReport1->PrepareReport(true))
      frxReport1->ShowPreparedReport();
    在這種情況下,報告構(gòu)建首先完成,然后顯示在預(yù)覽窗口中。構(gòu)造大型報告可能要花費很多時間,因此使用ShowReport異步方法比PrepareReport/更好ShowPreparedReport。默認(rèn)情況下,可以通過TfrxReport.PreviewOptions屬性分配預(yù)覽設(shè)置。

    打印報告

    在大多數(shù)情況下,您將從預(yù)覽窗口中打印報告。要手動打印報告,應(yīng)使用以下TfrxReport.Print方法,例如:

    frxReport1.LoadFromFile(...);
    frxReport1.PrepareReport;
    frxReport1.Print;
    同時,將出現(xiàn)可以設(shè)置打印參數(shù)的對話框。您可以默認(rèn)分配設(shè)置,并在該TfrxReport.PrintOptions屬性的幫助下禁用打印對話框。

    加載并保存完成的報告

    可以從預(yù)覽窗口執(zhí)行。這也可以在TfrxReport.PreviewPages方法的幫助下手動執(zhí)行:

        function LoadFromFile(const FileName: String; ExceptionIfNotFound: Boolean = False): Boolean;
        procedure SaveToFile(const FileName: String);
        procedure LoadFromStream(Stream: TStream);
        procedure SaveToStream(Stream: TStream);
    分配和參數(shù)類似于相應(yīng)的TfrxReport方法。默認(rèn)情況下,包含完成的報告的文件的擴展名為“ FP3”。

    例子:
    帕斯卡:

    frxReport1.PreviewPages.LoadFromFile('c:\1.fp3');
    frxReport1.ShowPreparedReport;
    C ++:
    frxReport1->PreviewPages->LoadFromFile("c:\\1.fp3");
    frxReport1->ShowPreparedReport();
    注意:完成報表加載后,將通過ShowPreparedReport方法執(zhí)行其預(yù)覽!

    匯出報告

    可以從預(yù)覽窗口執(zhí)行。也可以通過TfrxReport.Export方法手動執(zhí)行該操作。在此方法的參數(shù)中,應(yīng)指定要使用的導(dǎo)出過濾器:

    frxReport1.Export(frxHTMLExport1);
    導(dǎo)出過濾器組件必須可用(您必須將其放在項目的窗體上)并已正確調(diào)整。

    創(chuàng)建一個自定義預(yù)覽窗口

    FastReport在標(biāo)準(zhǔn)預(yù)覽窗口中顯示報告。如果由于某種原因它不適合您,則可能會創(chuàng)建一個自定義預(yù)覽表單。為此,TfrxPreview設(shè)計了FastReport組件面板中的組件。要顯示報告,應(yīng)將此TfrxReport.Preview屬性的鏈接分配給該屬性。

    使用TfrxPreview組件時有兩個典型的問題。它不處理鍵(箭頭,PgUp,PgDown等)和鼠標(biāo)滾輪(如果有)。要TfrxPreview使用鍵,請將焦點傳遞給它(例如,可以在OnShow表單的事件處理程序中完成):

    frxPreview.SetFocus;
    要TfrxPreview使用鼠標(biāo)滾動,必須創(chuàng)建OnMouseWheel表單的事件處理程序并TfrxPreview.MouseWheelScroll在此處理程序中調(diào)用方法:
    procedure TForm1.FormMouseWheel(Sender: TObject; Shift: TShiftState; 
      WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
    begin
      frxPreview1.MouseWheelScroll(WheelDelta);
    end;

    還想要更多嗎?您可以點擊閱讀【FastReport 報表2020最新資源盤點】查找需要的教程資源。讓人興奮的是FastReport .NET正在慧都網(wǎng)火熱銷售中!在線訂購惠享超低折扣。>>查看價格詳情
    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();