翻譯|使用教程|編輯:李顯亮|2020-08-05 14:04:18.900|閱讀 825 次
概述:FastReport Open Source的結構包括兩個庫:FastReport.OnlineDesigner 和FastReport.OnlineDesigner.Web。本文將講解如何在AvaloniaUI中使用FastReport Open Source。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
報表生成器FastReport .NET是適用于.NET Core 3,ASP.NET,MVC和Windows窗體的全功能報告庫。使用FastReport .NET,您可以創建獨立于應用程序的.NET報告。
開源在我們這個時代非常流行。軟件市場的全球巨頭對其普及起到了相當大的作用。畢竟,這些公司正在開發高端商業軟件,而它們的開源項目是基于經過驗證的解決方案和最佳實踐的。
FastReport Open Source的結構包括兩個庫:FastReport.OnlineDesigner 和FastReport.OnlineDesigner.Web
第一個包含從FastReport.Net繼承的報告生成器的主要功能。第二個是將報告生成器適應.Net Core框架。特別是,WebReport對象允許在網頁上顯示帶有導航元素的表單,該表單可以逐頁顯示報告。
本文將講解如何在AvaloniaUI中使用FastReport Open Source。
Avalonia平臺是WPF的意識形態繼承者,但是跨平臺版本。由于Avalonia程序的用戶界面基于XAML,因此我們可以以圖像格式輸出報告。也就是說,您必須首先將報告導出到圖像,然后僅將其顯示在標記中。讓我們快速看一下執行此操作的方法。
首先,要在Avalonia上創建應用程序,需要在VisualStudio中安裝模板。這可以在菜單工具->擴展和更新中完成。在打開的表單中,在左側樹中選擇“在線”節點。然后在頂部的搜索欄中輸入Avalonia。選擇并安裝Avalonia for visual Studio擴展。
有兩種安裝此框架的方法:通過Visual Studio和從GIT存儲庫。
第一種方法非常簡單。在Visual Studio中,打開菜單:在左側的樹中,打開“在線”節點,然后在右上角的搜索欄中輸入Avalonia。并安裝發現的擴展名。
通過選擇Avalonia Application模板創建一個應用程序。
不幸的是,WPF和Avalonia控件之間沒有兼容性,因此我們無法使用表單的外觀設計-僅XAML代碼。但是在XAML代碼中,與WPF有一些區別。它們與缺少許多組件的屬性有關,這些組件要么由于時間緊迫而未能實現,要么被廢棄。在前面的示例中,我們研究了加載報告,將報告導出到圖像并顯示的實現。讓我們來看看Avalonia的類似代碼如何:
通常,所有內容看起來都相同,但是如上所述,許多屬性和控件都不可用。 因此,我們用StackPanel替換了ToolBar。 主要區別在于C#代碼。 我們不能直接訪問頁面對象。 您必須首先通過名稱找到它們:
public Button OpenBtn = this.FindControl <Button> ("Open");因此,如果您需要引用控件的屬性,則首先必須讓它可供使用。報告按鈕單擊處理程序的實現將類似于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. }
至于用于在頁面之間導航的導航按鈕,其實現與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是非常強大的,但仍然有許多限制,你可以點擊下方鏈接查看具體差異。
【功能對比】報表開發工具FastReport Open Source和FastReport .NET都有哪些差異和限制
FastReport Open Source與FastReport .Net間的功能差異還是非常明顯的,如果您是企業用戶或是需要更完整的功能,建議您直接購買FastReport .Net,盛夏狂歡,在線下單立享85折起!點擊查看優惠價格,或咨詢在線客服了解詳情。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn