• <menu id="w2i4a"></menu>
  • logo FastReport.Net教程2020(持續(xù)更新中)

    文檔首頁>>FastReport.Net教程2020(持續(xù)更新中)>>報告生成器FastReport .NET實踐指南:從WPF應用程序創(chuàng)建銷售收據(jù)

    報告生成器FastReport .NET實踐指南:從WPF應用程序創(chuàng)建銷售收據(jù)


    報表生成器FastReport .NET是適用于.NET Core 3,ASP.NET,MVC和Windows窗體的全功能報告庫。使用FastReport .NET,您可以創(chuàng)建獨立于應用程序的.NET報告。

    近日,F(xiàn)astReport .Net升級到v2020.3版,在此版本中,添加了瑞士QR碼,允許配置打印機托盤以打印報告的最后一頁,不再支持.NET Framework 2.0,同時修復了多個Bug問題,感興趣的朋友可點擊下方按鈕下載最新版。

    點擊下載最新版FastReport .Net

    每個WinForms開發(fā)人員都認為標準的表單控件看起來太單一了,如果能給應用程序帶來更有趣的設計就好了。因此,特別是在需要特殊設計的情況下,微軟創(chuàng)建了一個特殊的庫——WPF (Windows Presentation Foundation)。

    如果想創(chuàng)建一個銷售會計軟件,需要生成主要的會計文檔,例如發(fā)票和收據(jù)。這些文檔應該反映來自數(shù)據(jù)庫的數(shù)據(jù)。最好的解決方案是使用報表生成器創(chuàng)建文檔模板并填充數(shù)據(jù)??梢允褂脠蟊砩善鲙鞂蟊砑傻絎PF應用程序中。因此,對于任何事件,都可以生成和顯示報表,以及導出報表并將其發(fā)送到打印。

    在輸出報表之前,需要在報表設計器中創(chuàng)建模板。在本文中,我們將使用FastReport .NET報告生成器

    在銷售收據(jù)信息的賣方,買方和已售出的貨物將顯示。有些國家傾向于單獨指出稅率,計算應繳稅款以及稅后的最終金額。因此,在我們的示例中,我們將考慮這樣一個銷售收據(jù)。

    因為數(shù)據(jù)將從數(shù)據(jù)庫中獲取,所以首先我們需要創(chuàng)建到數(shù)據(jù)源的連接。在本例中,我們的任務是創(chuàng)建以下模板:

    報告生成器FastReport .NET實踐指南:從WPF應用程序創(chuàng)建銷售收據(jù)

    為了顯示特定順序的每個表中的數(shù)據(jù),必須連接所有這些表。為此,請快速報告。Net提供了一種通過鍵鏈接表的機制。Order表鏈接到Customers和Employees表,Order Details表鏈接到訂單和產品。

    這意味著,對于特定的訂單記錄,將按鍵從這些表中選擇相應的數(shù)據(jù)。這樣我們就可以從客戶表中獲取具體訂單記錄的買家名稱:

    報告生成器FastReport .NET實踐指南:從WPF應用程序創(chuàng)建銷售收據(jù)

    數(shù)據(jù)帶有一個詳細的帶及其頁眉和頁腳帶。對于詳細數(shù)據(jù)波段,定義了訂單詳細信息源。該表也有鏈接:

    報告生成器FastReport .NET實踐指南:從WPF應用程序創(chuàng)建銷售收據(jù)

    正是如此,它鏈接到Orders表,以及可以從中獲得產品名稱的產品表。

    現(xiàn)在,當清楚主要信息來自于訂單表,詳細的產品信息來自于訂單明細表時,我們可以考慮總數(shù)。第一個是行總和——商品數(shù)量與價格的乘積是通過簡單地乘以字段來計算的:[訂單細節(jié).單價]*[訂購明細.數(shù)量]。這個總數(shù)是為每一項計算的。

    接下來,需要匯總此列中的所有總數(shù),并在subtotal字段中顯示它們。為此,在數(shù)據(jù)窗口中創(chuàng)建一個新的總數(shù):

    報告生成器FastReport .NET實踐指南:從WPF應用程序創(chuàng)建銷售收據(jù)

    讓我們給它命名為SubTotal,并在出現(xiàn)的窗口中設置屬性:

    報告生成器FastReport .NET實踐指南:從WPF應用程序創(chuàng)建銷售收據(jù)

    對于數(shù)據(jù)表達式,我們使用了與行總數(shù)相同的字段相乘的組合。這樣我們就得到了所有產品的總和。

    Tax Rate字段指示必須以稅收形式支付的稅基的百分比。在這里,這個數(shù)字是5%。對于應稅字段,您需要計算應稅金額。公式很簡單:總計*利率:

    ((小計)* 0.05)

    最后,總應付款。它由小計和稅金的總和組成:

    [[小計] + [小計] * 0.05]

    這樣就完成了銷售收據(jù)的創(chuàng)建。然后需要在應用程序中保存報表模板。例如,創(chuàng)建App_Data文件夾并將報告模板和數(shù)據(jù)庫nwind.xml保存在其中。

    要在應用程序中顯示報表,我們需要向表單添加ScrollViewer組件,以便能夠滾動報表。在內部添加另一個組件——列表框。它將用于以Xaml格式顯示報表。在申請表中添加三個按鈕:顯示報表、導出報表為PDF、打印報表。

    為每個按鈕添加一個單擊事件。因此,報告顯示:

    private void Button_Click(object sender, RoutedEventArgs e)
     {
     var report = new Report();
     report.Load("C:/Users/User/source/repos/WPFInvoice/WPFInvoice/App_Data/invoice.frx");
     var data = new DataSet();
     data.ReadXml("C:/Users/User/source/repos/WPFInvoice/WPFInvoice/App_Data/nwind.xml");
     
     report.RegisterData(data);
     report.Prepare();
     var export = new XAMLExport();
     export.HasMultipleFiles = true;
     
     using (var ms = new MemoryStream())
     {
     export.Export(report, ms);
     lb.Items.Add(new Frame()
     {
     Content = XamlReader.Load(ms)
     });
     }
     }

    在這里,我們創(chuàng)建一個報表對象,并將之前創(chuàng)建的報表模板加載到其中。接下來,創(chuàng)建一個數(shù)據(jù)源并將其注冊到報表中。WPF應用程序中的表單是使用XMAL語言構建的。因此,報告必須以這種格式顯示。為此,我們執(zhí)行了到XMAL的導出。

    將報表導出為PDF格式的按鈕代碼:

    private void PDFExport_Click(object sender, RoutedEventArgs e)
     {
     var report = new Report();
     report.Load("C:/Users/User/source/repos/WPFInvoice/WPFInvoice/App_Data/invoice.frx");
     var data = new DataSet();
     data.ReadXml("C:/Users/User/source/repos/WPFInvoice/WPFInvoice/App_Data/nwind.xml");
     
     report.RegisterData(data);
     report.Prepare();
     var export = new PDFExport();
     export.HasMultipleFiles = true;
     using (var fs = new FileStream("C:/Users/User/source/repos/WPFInvoice/WPFInvoice/App_Data/report.pdf", FileMode.Create))
     {
     export.Export(report, fs);
     }
     }

    這里的思想與報表的顯示相同,但我們將從導出中獲得的結果保存在一個文件夾中,而不將其添加到表單中。

    打印報告的按鈕代碼:

    private void Print_Click(object sender, RoutedEventArgs e)
     {
     PrintDialog printDialog = new PrintDialog();
     if (printDialog.ShowDialog() == true)
     {
     printDialog.PrintVisual(lb, "Print the report");
     }
     }

    在打印報告之前,需要首先使用按鈕來顯示它。通過單擊它,將調用打印對話框并打印ListBox組件的內容。

    現(xiàn)在運行應用程序,點擊Show按鈕:

    報告生成器FastReport .NET實踐指南:從WPF應用程序創(chuàng)建銷售收據(jù)

    現(xiàn)在不僅可以查看收據(jù)創(chuàng)建,還可以保存為PDF格式并打印它!還可以將它導出到FastReport中可用的其他文件格式:HTML、BMP、PNG、JPEG、GIF、TIFF、EMF、PDF、XLSX、DOCX、PPTX、ODS、ODT、RTF、文本、XPS、XML、XAML、PS、PPML、LaTeX、Json、Dbf、Csv、XLS (Biff8)、SVG、ZPL。


    Fastreport.NET在線購買價更低,專享85折起!趕緊加入購物清單吧!

    還想要更多嗎?您可以點擊閱讀【FastReport 報表2020最新資源盤點】查找需要的教程資源。如果您有任何疑問或需求,請隨時加入FastReport技術交流群(783996712),我們很高興為您提供查詢和咨詢

    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    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); })();