翻譯|行業資訊|編輯:周思宇|2023-05-26 10:36:17.947|閱讀 185 次
概述:報表控件FastReport .NET在JetBrains Rider中工作的最簡單方法是使用其私有 NuGet 服務器。本文主要描述如何在FastReport .NET中添加NuGet包,從而在Ubuntu 22.04.1 LTS系統中的.NET IDE上創建、構建和導出PDF報告/文檔,希望能為您提供幫助。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
FastReport 是功能齊全的報表控件,可以幫助開發者可以快速并高效地為.NET,VCL,COM,ActiveX應用程序添加報表支持,由于其獨特的編程原則,現在已經成為了Delphi平臺最優秀的報表控件,支持將編程開發中的報表信息輸出為TXT、PDF等多種文件格式,是編程開發人員必備的報表工具。
FastReport .Net是一款全功能的Windows Forms、ASP.NET和MVC報表分析解決方案,使用FastReport .Net可以創建獨立于應用程序的.NET報表。
在上篇文章中,我們學習了如何使用FastReport .NET在Ubuntu 22.04.1 LTS系統中的.JetBrains Rider上創建PDF文檔。本次將分享FastReport .NET 在 JetBrains Rider 中工作的最簡單方法——使用 Fast Reports 中的私有 NuGet 服務器。
因此,本文主要描述在購買FastReport .NET后如何添加NuGet包,從而在Ubuntu 22.04.1 LTS系統中的.NET IDE上創建、構建和導出PDF報告/文檔的過程。
單擊IDE底部的NuGet選項卡,然后單擊Sources選項卡。
現在通過點擊“+”來添加一個新的存儲庫,并輸入必要的數據:
- Name—不帶空格的源名稱(例如FastReport);
- URL—//nuget.fast-report.com/api/v3/index.json;
- User—來自Fast Reports帳戶的電子郵箱;
- Password—來自Fast Reports帳戶的密碼。
您將看到存儲庫:
現在我們將安裝FastReport Core 包。為此,請轉到“Packages”選項卡并通過FastReport存儲庫過濾包。然后,安裝找到的包。
安裝成功,您將收到通知。
接下來,從代碼中創建一個模板,為此我們將執行以下操作:添加到Program.cs:
using System.Drawing; using FastReport; using FastReport.Export.Pdf; using FastReport.Utils;
接下來,將 CreateDataSet 添加到下面的 Program.cs 中:
Report report = new Report(); CreateReportTemplate(); ExportToPDF();
然后,添加創建報表模板函數CreateReportTemplate:
void CreateReportTemplate() { // adding a report page ReportPage page = new ReportPage(); // creating a date band DataBand data = new DataBand(); PageHeaderBand dataText = new PageHeaderBand(); //creating a header ReportTitleBand titleBand = new ReportTitleBand(); TextObject employeeIdText = new TextObject(); TextObject employeeNameText = new TextObject(); TextObject idText = new TextObject(); TextObject nameText = new TextObject(); TextObject titleText = new TextObject(); //registering the data source report.RegisterData(dataSet); //enabling on the data table report.GetDataSource("Employees").Enabled = true; //adding a page to the template report.Pages.Add(page); // add to the page: data,data Text, titleBand // and set the unique name of the page page.AddChild(data); page.AddChild(dataText); page.AddChild(titleBand); page.CreateUniqueName(); // set the unique name titleBand // and set the band settings titleBand.CreateUniqueName(); titleBand.Height = Units.Centimeters * 1.5f; titleText.Bounds = new RectangleF(300, 0, Units.Centimeters * 10, Units.Centimeters * 0.5f); titleText.Text = "Employees"; titleText.Font = new Font("Arial", 14, FontStyle.Bold); titleText.VertAlign = VertAlign.Center; // set the unique name data // and set the data settings data.CreateUniqueName(); data.DataSource = report.GetDataSource("Employees"); data.Height = Units.Centimeters * 0.5f; // set a unique dataText name // and set the dataText settings dataText.CreateUniqueName(); dataText.Height = Units.Centimeters * 0.8f; // setting the unique name employeeIdText // and set the employeeIdText, idText settings employeeIdText.Parent = data; employeeIdText.CreateUniqueName(); employeeIdText.Bounds = new RectangleF(0, 0, Units.Centimeters * 10, Units.Centimeters * 0.5f); idText.Bounds = new RectangleF(0, 0, Units.Centimeters * 10, Units.Centimeters * 0.5f); idText.Text = "ID"; employeeIdText.Text = "[Employees.ID]"; // set the unique name employeeNameText // and set the employeeNameText, nameText settings employeeNameText.Parent = data; employeeNameText.CreateUniqueName(); employeeNameText.Bounds = new RectangleF(50, 0, Units.Centimeters * 10, Units.Centimeters * 0.5f); nameText.Bounds = new RectangleF(50, 0, Units.Centimeters * 10, Units.Centimeters * 0.5f); nameText.Text = "Name"; employeeNameText.Text = "[Employees.Name]"; // add on data band: employeeIdText, employeeNameText data.AddChild(employeeIdText); data.AddChild(employeeNameText); // add on dataText band: idText, nameText dataText.AddChild(idText); dataText.AddChild(nameText); // add on titleBand band: itleText titleBand.AddChild(titleText); }
接下來,添加創建ExportToPDF報表模板的功能,并將報表導出命名為“Report.pdf”:
void ExportToPDF() { // running the report report.Prepare(); // creating an export instance PDFExport export = new PDFExport(); report.Export(export, "test.pdf"); // disposing the resources used by the report report.Dispose(); }
最后,啟動控制臺應用程序。如果您收到響應 Process finished with exit code 0,那么您之前做的每一步,打開報告,在我們的例子中,它是路徑:
/home/alex/RiderProjects/ReportPDF_Core_ConsoleApp/ReportPDF_Core_ConsoleApp/bin/Debug/net6.0/test .pdf:
由此,我們得到了一個從數據集構建的簡單報表/PDF文檔。
在本文中,我們討論了綁定JetBrains Rider (C#) + .NET Core + Console Application + FastReport .NET Core + Linux (Ubuntu 22.04.1 LTS) ,并從PDF數據集構建了一個報告。當然,我們確保 .NET 平臺可以在沒有Microsoft Visual Studio的情況下輕松使用,因為Linux根本沒有它。
using System.Data; using System.Drawing; using FastReport; using FastReport.Export.Pdf; using FastReport.Utils; //creating a data set DataSet dataSet = new DataSet(); CreateDataSet(); //creating a report Report report = new Report(); CreateReportTemplate(); ExportToPDF(); void CreateReportTemplate() { // add a report page ReportPage page = new ReportPage(); // create a data band DataBand data = new DataBand(); PageHeaderBand dataText = new PageHeaderBand(); //create a title ReportTitleBand titleBand = new ReportTitleBand(); TextObject employeeIdText = new TextObject(); TextObject employeeNameText = new TextObject(); TextObject idText = new TextObject(); TextObject nameText = new TextObject(); TextObject titleText = new TextObject(); //register a data source report.RegisterData(dataSet); //enable a data table report.GetDataSource("Employees").Enabled = true; //add a page to the template report.Pages.Add(page); //add on a page: data,dataText, titleBand // and set the unique page name page.AddChild(data); page.AddChild(dataText); page.AddChild(titleBand); page.CreateUniqueName(); // set the unique name titleBand // and set the band settings titleBand.CreateUniqueName(); titleBand.Height = Units.Centimeters * 1.5f; titleText.Bounds = new RectangleF(300, 0, Units.Centimeters * 10, Units.Centimeters * 0.5f); titleText.Text = "Employees"; titleText.Font = new Font("Arial", 14, FontStyle.Bold); titleText.VertAlign = VertAlign.Center; // create the unique data name // and set the data settings data.CreateUniqueName(); data.DataSource = report.GetDataSource("Employees"); data.Height = Units.Centimeters * 0.5f; // create a unique dataText name // and set dataText settings dataText.CreateUniqueName(); dataText.Height = Units.Centimeters * 0.8f; // create the unique employeeIdText name // and set the employeeIdText, idText settings employeeIdText.Parent = data; employeeIdText.CreateUniqueName(); employeeIdText.Bounds = new RectangleF(0, 0, Units.Centimeters * 10, Units.Centimeters * 0.5f); idText.Bounds = new RectangleF(0, 0, Units.Centimeters * 10, Units.Centimeters * 0.5f); idText.Text = "ID"; employeeIdText.Text = "[Employees.ID]"; // create the unique name employeeNameText // and set the employeeNameText, nameText settings employeeNameText.Parent = data; employeeNameText.CreateUniqueName(); employeeNameText.Bounds = new RectangleF(50, 0, Units.Centimeters * 10, Units.Centimeters * 0.5f); nameText.Bounds = new RectangleF(50, 0, Units.Centimeters * 10, Units.Centimeters * 0.5f); nameText.Text = "Name"; employeeNameText.Text = "[Employees.Name]"; // and add on data band: employeeIdText, employeeNameText data.AddChild(employeeIdText); data.AddChild(employeeNameText); // add on dataText band: idText, nameText dataText.AddChild(idText); dataText.AddChild(nameText); // add on titleBand band: itleText titleBand.AddChild(titleText); } void ExportToPDF() { report.Prepare(); PDFExport export = new PDFExport(); report.Export(export, "test.pdf"); report.Dispose(); } void CreateDataSet() { // create a simple dataset with a single table // create a simple dataset dataSet = new DataSet(); // create a table DataTable table = new DataTable(); table.TableName = "Employees"; // add the table to dataset dataSet.Tables.Add(table); // add data to the table table.Columns.Add("ID", typeof(int)); table.Columns.Add("Name", typeof(string)); table.Rows.Add(1, "Andrew Fuller"); table.Rows.Add(2, "Nancy Davolio"); table.Rows.Add(3, "Margaret Peacock"); }
FastReport技術QQ群:585577353 歡迎進群一起討論
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn