翻譯|行業(yè)資訊|編輯:胡濤|2024-06-13 09:40:33.010|閱讀 71 次
概述:有時,人們會聯(lián)系我們的技術(shù)支持,詢問一個常見問題:如何正確地將多份報告合并為一份,尤其是在導(dǎo)出之前。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
Stimulsoft Ultimate (原Stimulsoft Reports.Ultimate)是用于創(chuàng)建報表和儀表板的通用工具集。該產(chǎn)品包括用于WinForms、ASP.NET、.NET Core、JavaScript、WPF、PHP、Java和其他環(huán)境的完整工具集。無需比較產(chǎn)品功能,Stimulsoft Ultimate包含了所有內(nèi)容!
有時,人們會聯(lián)系我們的技術(shù)支持,詢問一個常見問題:如何正確地將多份報告合并為一份,尤其是在導(dǎo)出之前。雖然這在技術(shù)上很簡單,但仍有一些選項需要考慮。例如,在合并報告時如何管理不同的度量單位或頁碼。沒有通用的解決方案,因為它取決于報告創(chuàng)建者的具體目標(biāo)和目的。為了說明如何將多份報告合并為一份,我們?yōu)镴S和.NET開發(fā)了幾個示例。
即使是小代碼,也很容易出錯。為了簡化流程,我們MergeDocument()在 StiReport 類中添加了一個用于合并報表的方法。在 JavaScript 報表工具中,此方法稱為mergeDocumentAsync()。
該方法以報表作為輸入,其頁面將添加到當(dāng)前報表中。它還有一個重載,接受布爾值作為第二個參數(shù),以確定是否需要預(yù)先構(gòu)建報表。這允許在一行中合并兩個 StiReport 對象:report.MergeDocument(report2, true)。
使用儀表板的模板文件可以同時包含報表頁面和儀表板。但是,儀表板不是靜態(tài)對象,沒有固定的尺寸。雖然儀表板有一個Render()方法,但它只是一個占位符,不能像報表那樣構(gòu)建。儀表板的具體尺寸只能在導(dǎo)出期間設(shè)置,因此無法將報表和儀表板組合成單個現(xiàn)成的文檔。該MergeDocument方法僅將另一個模板中的報表頁面添加到主報表中。如果模板僅包含儀表板,則該方法將引發(fā)異常。在準(zhǔn)備合并模板時應(yīng)考慮到這一點。
功能
首先,確定哪個報告將嵌入到另一個報告非常重要,因為這會影響報告單元和頁面順序。請考慮以下代碼示例:
report1.MergeDocument(report2);report2 中的頁面將添加到 report1 的頁面之后,并轉(zhuǎn)換為 report1 的單元。
var report = StiReport.CreateNewReport(); report.LoadDocument("documents\\Invoice.mdc"); var report2 = StiReport.CreateNewReport(); report2.LoadDocument("documents\\Christmas.mdc"); report.MergeDocument(report2); report.Show();
但在某些情況下,您只需在一個地方下載、構(gòu)建和合并兩個報告模板。合并報告的示例代碼:
var report = StiReport.CreateNewReport(); report.Load("Reports\\Invoice.mrt"); var report2 = StiReport.CreateNewReport(); report2.Load("Reports\\Christmas.mrt"); report.Render(); report2.Render(); report.MergeDocument(report2); report.Show();
為了簡化代碼,您可以使用MergeDocument()具有兩個參數(shù)的方法重載,并將 true 作為第二個參數(shù)傳遞。這樣,兩個報告的呈現(xiàn)將在方法中自動處理。例如,使用 build 重載合并報告的代碼如下所示:
var report = StiReport.CreateNewReport(); report.Load("Reports\\Invoice.mrt"); var report2 = StiReport.CreateNewReport(); report2.Load("Reports\\Christmas.mrt"); report.MergeDocument(report2, true); report.Show();
如果要合并兩份以上的報告,請務(wù)必保持一致性,并記住使用主報告的單位。以下是合并三份報告的示例:
var report = StiReport.CreateNewReport(); report.Load("Reports\\Invoice.mrt"); var report2 = StiReport.CreateNewReport(); report2.Load("Reports\\Christmas.mrt"); var report3 = StiReport.CreateNewReport(); report3.Load("Reports\\Report3.mrt"); report.MergeDocument(report2, true); report.MergeDocument(report3, true); //report is containing a rendered pages of the report, report2 and report3 report.Show();
JavaScript 報告工具使用一種稱為 的異步合并方法mergeDocumentAsync()。總體而言,上述所有內(nèi)容都適用于此方法。報告頁面的合并及其呈現(xiàn)都是異步進(jìn)行的。因此,如果該mergeDocumentAsync()方法使用一個參數(shù),并且需要在合并之前構(gòu)建報告,renderAsync2()則應(yīng)在 JavaScript 中對它們調(diào)用該方法。例如,合并多個報告:
var report = StiReport.CreateNewReport(); report.Load("Reports\\Invoice.mrt"); var report2 = StiReport.CreateNewReport(); report2.Load("Reports\\Christmas.mrt"); await report.renderAsync2(); await report2.renderAsync2(); await report.mergeDocumentAsync(report2); viewer.report = report;
使用該mergeDocumentAsync(,)方法將多個模板合并為一份報告。
var report = StiReport.CreateNewReport(); report.Load("Reports\\Invoice.mrt"); var report2 = StiReport.CreateNewReport(); report2.Load("Reports\\Christmas.mrt"); await report.mergeDocumentAsync(report2, true); viewer.report = report;
這使得在查看、打印或?qū)С鲋昂喜蟾孀兊酶尤菀住?
想要了解Stimulsoft Reports 報價信息的朋友,歡迎咨詢。
加入官方社群 740060302,歡迎相互交流
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn