翻譯|行業資訊|編輯:周思宇|2023-05-26 10:36:17.947|閱讀 208 次
概述:報表控件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@ke049m.cn