翻譯|使用教程|編輯:李顯亮|2020-08-05 14:04:18.900|閱讀 825 次
概述:FastReport Open Source的結(jié)構(gòu)包括兩個庫:FastReport.OnlineDesigner 和FastReport.OnlineDesigner.Web。本文將講解如何在AvaloniaUI中使用FastReport Open Source。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
報表生成器FastReport .NET是適用于.NET Core 3,ASP.NET,MVC和Windows窗體的全功能報告庫。使用FastReport .NET,您可以創(chuàng)建獨立于應(yīng)用程序的.NET報告。
開源在我們這個時代非常流行。軟件市場的全球巨頭對其普及起到了相當(dāng)大的作用。畢竟,這些公司正在開發(fā)高端商業(yè)軟件,而它們的開源項目是基于經(jīng)過驗證的解決方案和最佳實踐的。
FastReport Open Source的結(jié)構(gòu)包括兩個庫:FastReport.OnlineDesigner 和FastReport.OnlineDesigner.Web
第一個包含從FastReport.Net繼承的報告生成器的主要功能。第二個是將報告生成器適應(yīng).Net Core框架。特別是,WebReport對象允許在網(wǎng)頁上顯示帶有導(dǎo)航元素的表單,該表單可以逐頁顯示報告。
本文將講解如何在AvaloniaUI中使用FastReport Open Source。
Avalonia平臺是WPF的意識形態(tài)繼承者,但是跨平臺版本。由于Avalonia程序的用戶界面基于XAML,因此我們可以以圖像格式輸出報告。也就是說,您必須首先將報告導(dǎo)出到圖像,然后僅將其顯示在標(biāo)記中。讓我們快速看一下執(zhí)行此操作的方法。
首先,要在Avalonia上創(chuàng)建應(yīng)用程序,需要在VisualStudio中安裝模板。這可以在菜單工具->擴展和更新中完成。在打開的表單中,在左側(cè)樹中選擇“在線”節(jié)點。然后在頂部的搜索欄中輸入Avalonia。選擇并安裝Avalonia for visual Studio擴展。
有兩種安裝此框架的方法:通過Visual Studio和從GIT存儲庫。
第一種方法非常簡單。在Visual Studio中,打開菜單:在左側(cè)的樹中,打開“在線”節(jié)點,然后在右上角的搜索欄中輸入Avalonia。并安裝發(fā)現(xiàn)的擴展名。
通過選擇Avalonia Application模板創(chuàng)建一個應(yīng)用程序。
不幸的是,WPF和Avalonia控件之間沒有兼容性,因此我們無法使用表單的外觀設(shè)計-僅XAML代碼。但是在XAML代碼中,與WPF有一些區(qū)別。它們與缺少許多組件的屬性有關(guān),這些組件要么由于時間緊迫而未能實現(xiàn),要么被廢棄。在前面的示例中,我們研究了加載報告,將報告導(dǎo)出到圖像并顯示的實現(xiàn)。讓我們來看看Avalonia的類似代碼如何:
通常,所有內(nèi)容看起來都相同,但是如上所述,許多屬性和控件都不可用。 因此,我們用StackPanel替換了ToolBar。 主要區(qū)別在于C#代碼。 我們不能直接訪問頁面對象。 您必須首先通過名稱找到它們:
public Button OpenBtn = this.FindControl <Button> ("Open");因此,如果您需要引用控件的屬性,則首先必須讓它可供使用。報告按鈕單擊處理程序的實現(xiàn)將類似于WPF示例:
public Listpages = new List (); // Export file list private async void OpenFile(object sender, RoutedEventArgs e) { // Open file OpenFileDialog myDialog = new OpenFileDialog(); myDialog.Filters.Add(new FileDialogFilter() { Name = "Prepared reports(*.FPX)", Extensions = new List { "fpx" } }); // Add filter by file extension myDialog.AllowMultiple = false; var result = await myDialog.ShowAsync(this); // Display the dialog Report report = new Report(); // Create report object report.LoadPrepared(result[0]); // Load the prepared report into the Report object. FastReport.Export.Image.ImageExport ex = new FastReport.Export.Image.ImageExport(); // Create export report ex.HasMultipleFiles = true; // Split the report page by page into several files when exporting ex.ImageFormat = ImageExportFormat.Png; // Set export format ex.Resolution = 96; // Set image resolution ex.Export(report, Directory.GetCurrentDirectory() + "/test.png"); // Export to test.png file foreach (string file in ex.GeneratedFiles) { pages.Add(new Avalonia.Media.Imaging.Bitmap(file)); // Add each export file to the list } img.Source = pages[0]; // Display the first page of the report. }
至于用于在頁面之間導(dǎo)航的導(dǎo)航按鈕,其實現(xiàn)與WPF示例沒有什么不同:
public int CurrentPage = 0; // Variable to store current page // Open the first report page private void First_Click(object sender, Avalonia.Interactivity.RoutedEventArgs e) { CurrentPage = 0; img.Source = pages[CurrentPage]; } // View previous report page private void Prev_Click(object sender, Avalonia.Interactivity.RoutedEventArgs e) { CurrentPage--; img.Source = pages[CurrentPage]; } // Open next report page private void Next_Click(object sender, Avalonia.Interactivity.RoutedEventArgs e) { CurrentPage++; img.Source = pages[CurrentPage]; } // Open last page of report private void Last_Click(object sender, Avalonia.Interactivity.RoutedEventArgs e) { CurrentPage = pages.Count - 1; img.Source = pages[CurrentPage]; }
雖然FastReport Open Source是非常強大的,但仍然有許多限制,你可以點擊下方鏈接查看具體差異。
【功能對比】報表開發(fā)工具FastReport Open Source和FastReport .NET都有哪些差異和限制
FastReport Open Source與FastReport .Net間的功能差異還是非常明顯的,如果您是企業(yè)用戶或是需要更完整的功能,建議您直接購買FastReport .Net,盛夏狂歡,在線下單立享85折起!點擊查看優(yōu)惠價格,或咨詢在線客服了解詳情。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn