【发布时间】:2021-09-01 13:12:34
【问题描述】:
我使用设计器设计了报表 trdp 文件,并添加了 Web 服务作为数据源。 我的计划是,当请求报告时,而不是网络源,我想使用 linq 提取数据,并希望将该数据注入报告数据源并希望通过报告处理器传递它。 我所做的是: ``
var rng = new Random();
var datas = Enumerable.Range(1, 100).Select(index => new WeatherForecast
{
Category = Summaries[rng.Next(Summaries.Length)],
Date = DateTime.Now.AddDays(index),
TemperatureC = 1
}).ToList();
DataTable dataTable = Newtonsoft.Json.JsonConvert.DeserializeObject<DataTable>(Newtonsoft.Json.JsonConvert.SerializeObject(datas));
Telerik.Reporting.Report report = null;
using (var sourceStream = System.IO.File.OpenRead("Reports\\DemoReport.trdp"))
{
var reportPackager = new ReportPackager();
report = (Report)reportPackager.UnpackageDocument(sourceStream);
var dtsrc = new ObjectDataSource();
dtsrc.DataSource = dataTable;
report.DataSource = dtsrc;
}
Telerik.Reporting.Processing.ReportProcessor reportProcessor = new Telerik.Reporting.Processing.ReportProcessor();
System.Collections.Hashtable deviceInfo = new System.Collections.Hashtable();
Telerik.Reporting.Processing.RenderingResult result = reportProcessor.RenderReport("PDF", report, deviceInfo);
var fileName = "adreport.pdf";
using (FileStream fs = new FileStream(fileName, FileMode.Create))
{
fs.Write(result.DocumentBytes, 0, result.DocumentBytes.Length);
}
return Ok();
``
这会生成报告,但不是几页,而是生成的 pdf 报告包含数百页重复的相同数据,这是不寻常的。谁能解释为什么会这样。
【问题讨论】:
标签: c# telerik-reporting