Nan*_*Das 1 rdlc asp.net-core reporting-services-2016
我正在使用报告包 - AspNetCore.Reporting -2.1.0。我想打印带有外部图像的 RDLC 报告。渲染为 pdf 期间发生错误。
An error occurred during local report processing.;Report 'Payslip' contains external images. The EnableExternalImages property has not been set for this report.
Run Code Online (Sandbox Code Playgroud)
渲染我的代码的一部分:
string reportFileName = "Payslip.rdlc";
if (paySlip.IsHourlySalary)
reportFileName = "Payslip.rdlc";
else
{
reportFileName = "PaySlipForAnnual.rdlc";
}
string ReportPath;
if (_webHostEnvironment != null)
ReportPath = Path.Combine(_webHostEnvironment.ContentRootPath + "\\TMReports", reportFileName);
else
{
ReportPath = Path.Combine(Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location) + "/TMReports", reportFileName);
}
LocalReport localReport = new LocalReport(ReportPath);
message += " Before localReport.SetParameters(param);";
message += " Before localReport.DataSources.Add(cd);";
localReport.AddDataSource("dsPaySlip", dtPaySlip); // Add datasource here
message += " Before byte[] bytes = localReport.Render(";
var result = localReport.Execute(RenderType.Pdf, 1, reportParams, mimeType);
return result.MainStream;
Run Code Online (Sandbox Code Playgroud)
在渲染之前运行它
localReport.EnableExternalImages = true;
Run Code Online (Sandbox Code Playgroud)
编辑:
似乎您正在使用的开源库没有公开您需要的变量或方法。
但这些方法位于密封类的私有变量中。
所以你仍然可以通过反射改变它的值......
它并不漂亮,但它可以完成工作。
AspNetCore.Reporting.LocalReport rpt = new AspNetCore.Reporting.LocalReport(yourReportPath);
BindingFlags bindFlags = BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static;
FieldInfo field = rpt.GetType().GetField("localReport", bindFlags);
object rptObj = field.GetValue(rpt);
Type type = rptObj.GetType();
PropertyInfo pi = type.GetProperty("EnableExternalImages");
pi.SetValue(rptObj, true, null);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1073 次 |
| 最近记录: |