翻譯|行業(yè)資訊|編輯:周思宇|2023-05-26 10:36:17.947|閱讀 185 次
概述:報(bào)表控件FastReport .NET在JetBrains Rider中工作的最簡(jiǎn)單方法是使用其私有 NuGet 服務(wù)器。本文主要描述如何在FastReport .NET中添加NuGet包,從而在Ubuntu 22.04.1 LTS系統(tǒng)中的.NET IDE上創(chuàng)建、構(gòu)建和導(dǎo)出PDF報(bào)告/文檔,希望能為您提供幫助。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門(mén)軟控件火熱銷(xiāo)售中 >>
FastReport 是功能齊全的報(bào)表控件,可以幫助開(kāi)發(fā)者可以快速并高效地為.NET,VCL,COM,ActiveX應(yīng)用程序添加報(bào)表支持,由于其獨(dú)特的編程原則,現(xiàn)在已經(jīng)成為了Delphi平臺(tái)最優(yōu)秀的報(bào)表控件,支持將編程開(kāi)發(fā)中的報(bào)表信息輸出為T(mén)XT、PDF等多種文件格式,是編程開(kāi)發(fā)人員必備的報(bào)表工具。
FastReport .Net是一款全功能的Windows Forms、ASP.NET和MVC報(bào)表分析解決方案,使用FastReport .Net可以創(chuàng)建獨(dú)立于應(yīng)用程序的.NET報(bào)表。
在上篇文章中,我們學(xué)習(xí)了如何使用FastReport .NET在Ubuntu 22.04.1 LTS系統(tǒng)中的.JetBrains Rider上創(chuàng)建PDF文檔。本次將分享FastReport .NET 在 JetBrains Rider 中工作的最簡(jiǎn)單方法——使用 Fast Reports 中的私有 NuGet 服務(wù)器。
因此,本文主要描述在購(gòu)買(mǎi)FastReport .NET后如何添加NuGet包,從而在Ubuntu 22.04.1 LTS系統(tǒng)中的.NET IDE上創(chuàng)建、構(gòu)建和導(dǎo)出PDF報(bào)告/文檔的過(guò)程。
單擊IDE底部的NuGet選項(xiàng)卡,然后單擊Sources選項(xiàng)卡。
現(xiàn)在通過(guò)點(diǎn)擊“+”來(lái)添加一個(gè)新的存儲(chǔ)庫(kù),并輸入必要的數(shù)據(jù):
- Name—不帶空格的源名稱(chēng)(例如FastReport);
- URL—//nuget.fast-report.com/api/v3/index.json;
- User—來(lái)自Fast Reports帳戶(hù)的電子郵箱;
- Password—來(lái)自Fast Reports帳戶(hù)的密碼。
您將看到存儲(chǔ)庫(kù):
現(xiàn)在我們將安裝FastReport Core 包。為此,請(qǐng)轉(zhuǎn)到“Packages”選項(xiàng)卡并通過(guò)FastReport存儲(chǔ)庫(kù)過(guò)濾包。然后,安裝找到的包。
安裝成功,您將收到通知。
接下來(lái),從代碼中創(chuàng)建一個(gè)模板,為此我們將執(zhí)行以下操作:添加到Program.cs:
using System.Drawing; using FastReport; using FastReport.Export.Pdf; using FastReport.Utils;
接下來(lái),將 CreateDataSet 添加到下面的 Program.cs 中:
Report report = new Report(); CreateReportTemplate(); ExportToPDF();
然后,添加創(chuàng)建報(bào)表模板函數(shù)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); }
接下來(lái),添加創(chuàng)建ExportToPDF報(bào)表模板的功能,并將報(bào)表導(dǎo)出命名為“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(); }
最后,啟動(dòng)控制臺(tái)應(yīng)用程序。如果您收到響應(yīng) Process finished with exit code 0,那么您之前做的每一步,打開(kāi)報(bào)告,在我們的例子中,它是路徑:
/home/alex/RiderProjects/ReportPDF_Core_ConsoleApp/ReportPDF_Core_ConsoleApp/bin/Debug/net6.0/test .pdf:
由此,我們得到了一個(gè)從數(shù)據(jù)集構(gòu)建的簡(jiǎn)單報(bào)表/PDF文檔。
在本文中,我們討論了綁定JetBrains Rider (C#) + .NET Core + Console Application + FastReport .NET Core + Linux (Ubuntu 22.04.1 LTS) ,并從PDF數(shù)據(jù)集構(gòu)建了一個(gè)報(bào)告。當(dāng)然,我們確保 .NET 平臺(tái)可以在沒(méi)有Microsoft Visual Studio的情況下輕松使用,因?yàn)長(zhǎng)inux根本沒(méi)有它。
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技術(shù)QQ群:585577353 歡迎進(jìn)群一起討論
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn