我试图通过文本报告参数将图像传递到报告中。
但是,它似乎只在图像很小时才起作用。我用来调用报告的代码是这样的:
private CustomerAttachment LoadFromReportServer(byte[] imgAsByte)
{
string mimeType, encoding, extension;
string[] streamids;
Warning[] warnings;
string base64String = Convert.ToBase64String(imgAsByte);
_reportParams = new List<ReportParameter>();
_reportParams.Add(new ReportParameter("p_farm_map", base64String));
var rptViewer = new ReportViewer();
rptViewer.ShowCredentialPrompts = false;
rptViewer.ShowParameterPrompts = false;
rptViewer.ProcessingMode = ProcessingMode.Remote;
_reportServerUrl = "http://MyReportServer.wesenergy.local/ReportServer";
_reportFolderPath = "/WcfReportTest/";
_reportName = "FarmMapReport";
rptViewer.ServerReport.ReportServerUrl = new Uri(_reportServerUrl);
rptViewer.ServerReport.ReportPath = _reportFolderPath + _reportName;
rptViewer.ServerReport.SetParameters(_reportParams);
//Fails on this line here
byte[] bytes = rptViewer.ServerReport.Render(_reportFormat, deviceInfo, out mimeType, out encoding, out extension, out streamids, out warnings);
return new CustomerAttachment(_customerId, _fileName,"application/pdf", bytes);
}
在报告p_farm_map
中是文本报告参数。
我在较大文件上遇到的错误是rsInvalidParameter
错误。
有没有办法明确设置Text数据类型的最大大小?
答案 0 :(得分:0)
由于缺乏对此问题和项目时间限制的响应,替代解决方案是将图像保存到共享;将文件位置通过文本字段传递到报表,并让图像使用该文本值作为图像的源。不是理想的解决方案,因为我必须从磁盘写入和读取(慢)。此外,我现在也必须清理这些文件。