翻譯|使用教程|編輯:龔雪|2023-10-11 10:09:12.373|閱讀 96 次
概述:本文將為大家介紹如何使用DevExpress Reporting控件在macOS等系統(tǒng)中生成導(dǎo)出報(bào)表文檔,歡迎下載組件體驗(yàn)!
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
DevExpress Reporting是.NET Framework下功能完善的報(bào)表平臺(tái),它附帶了易于使用的Visual Studio報(bào)表設(shè)計(jì)器和豐富的報(bào)表控件集,包括數(shù)據(jù)透視表、圖表,因此您可以構(gòu)建無與倫比、信息清晰的報(bào)表。
在本文中,我們將討論如何在.NET MAUI項(xiàng)目中合并DevExpress Reports和Blazor Report Viewer(報(bào)表查看器)。
在開始之前,提醒一下因?yàn)樾碌腄evExpress.Drawing圖形渲染引擎,我們的.NET Reporting工具不再依賴GDI+,這種與GDI+的分離允許您在新的平臺(tái)上部署由DevExpress Reports驅(qū)動(dòng)的應(yīng)用程序,包括 .NET MAUI,在這個(gè)新的/新興的平臺(tái)上有以下功能:
接下來,讓我們深入研究并將DevExpress Reports集成到.NET MAUI項(xiàng)目中。
獲取DevExpress Reporting v23.1正式版下載
DevExpress技術(shù)交流群9:909157416 歡迎一起進(jìn)群討論
DevExpress Visual Studio Report Designer(報(bào)表設(shè)計(jì)器)分析項(xiàng)目引用和依賴關(guān)系,并根據(jù)收集的數(shù)據(jù)啟動(dòng)單獨(dú)的后臺(tái)進(jìn)程。在測(cè)試期間,.NET MAUI與其他應(yīng)用程序類型相比存在項(xiàng)目結(jié)構(gòu)差異。由于這個(gè)問題,Visual Studio的DevExpress報(bào)表設(shè)計(jì)器無法立即集成到.NET MAUI項(xiàng)目中。
要在 .NET MAUI應(yīng)用程序中創(chuàng)建和編輯報(bào)表,建議您在單獨(dú)的類庫中創(chuàng)建和存儲(chǔ)報(bào)表,然后在.NET MAUI項(xiàng)目中引用該庫。添加一個(gè)新的報(bào)表:
1. 按CTRL+SHIFT+A或在Visual Studio菜單中點(diǎn)擊Project | Add New Item。
2. 選擇DevExpress Report項(xiàng)目,指定一個(gè)報(bào)表名稱,然后點(diǎn)擊Add。
3. 在Report Wizard(報(bào)表向?qū)В┲羞x擇報(bào)表類型然后點(diǎn)擊Finish,如果要從頭創(chuàng)建報(bào)表請(qǐng)選擇Blank。
完成后,Visual Studio報(bào)表設(shè)計(jì)器將出現(xiàn)在屏幕上:
如果您的應(yīng)用需要在.NET MAUI中顯示報(bào)表預(yù)覽(在打印輸出或?qū)С霾僮髦?,可以使用DevExpress Blazor報(bào)表查看器。為了整合Blazor報(bào)表查看器,首先需要?jiǎng)?chuàng)建一個(gè).NET MAUI Blazor混合應(yīng)用程序,引用所需的包,并將WebAssembly (Native)組件的報(bào)表查看器添加到Razor頁面。
要從.NET MAUI Blazor應(yīng)用程序中導(dǎo)出和共享報(bào)表,您需要自定義DevExpress報(bào)表查看器的導(dǎo)出過程。要定制導(dǎo)出過程,實(shí)現(xiàn)IExportProcessor接口(授予您訪問包含文檔數(shù)據(jù)的字節(jié)數(shù)組的權(quán)限)。完成后使用.NET MAUI的內(nèi)置IShare接口,該接口包含一個(gè)API,用于向設(shè)備共享功能發(fā)送數(shù)據(jù)(如文本或web鏈接)。
下面的代碼片段共享一個(gè)文件:
public class SharedReportExportProcessor : IExportProcessor { public async Task ProcessExportResult(ExportResultItem exportResultItem, bool isPrintOperation) { var fileName = Path.Combine(FileSystem.CacheDirectory, exportResultItem.FileName); using (var file = File.Create(fileName)) { file.Write(exportResultItem.Bytes); } await Share.Default.RequestAsync(new ShareFileRequest { Title = "Share a Report", File = new ShareFile(fileName) }); } }
如果以這種方式實(shí)現(xiàn),當(dāng)您選擇所需的導(dǎo)出格式時(shí),共享窗口將打開并提示用戶選擇要共享的應(yīng)用程序。
請(qǐng)注意,安裝在開發(fā)機(jī)器上的字體集與移動(dòng)設(shè)備上的字體集不同。如果在系統(tǒng)中找不到報(bào)表中使用的字體,則文本裝飾可能會(huì)恢復(fù)到默認(rèn)的Open Sans字體。
要在部署的應(yīng)用程序中維護(hù)報(bào)表的外觀,首先需要調(diào)用MauiProgram類中的方法。
下一步是使用DXFontRepository類注冊(cè)報(bào)告中使用的字體,DevExpress.Drawing程序集使用此字體字典在文檔呈現(xiàn)期間解析字體,在ConfigureFonts方法調(diào)用之后使用以下代碼片段:
using (StreamReader rd = new StreamReader(Assets.Open("Arial.ttf"))) { using (var ms = new MemoryStream()) { rd.BaseStream.CopyTo(ms); DXFontRepository.Instance.AddFont(ms); } }
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自:慧都網(wǎng)