rdl报表导出问题
当前显示的报表是这样的最开始时,没有设置左侧动态输入参数时,点报表顶部的导出按钮能够正常导出。
后来根据需要,增加了两个可选的参数
点导出后图表区内容空白
我想是不是因为导出的时候选择的这个两个参数没有传入
但又不希望导出的时候再次选择参数,能否直接导出和报表显示的一模一样的内容。 您好,
您的这个问题,我理解是在增加参数后,导出没有能够正常显示。
您使用的是,前台JS的方式导出吗?
您是否方便提供一个能够重现这个问题的例子程序呢?这个问题,需要调试。我们重新新建项目,再重现这个问题,然后解决有点浪费时间。 你好,你的理解不对
页面显示的报表中,有两个必填的参数,“大件”和“数量”,这个两个参数没有从js中传递过来,是在报表页面提供选择的。选定后,才能显示报表内容
而导出报表的时候,是重新加载了一次报表,然后重新获取数据(这个是根据前段时间的例子程序写的)。这样的话,报表中的那两个参数就没有值
导出excel部分代码
/// <summary>
/// Excel导出
/// </summary>
protected void ExportExcel()
{
// Provide the page report you want to render.
//GrapeCity.ActiveReports.PageReport _reportDef = new GrapeCity.ActiveReports.PageReport(new System.IO.FileInfo(Server.MapPath("/Reports/" + report + ".rdlx")));
GrapeCity.ActiveReports.Document.PageDocument _reportRuntime = new GrapeCity.ActiveReports.Document.PageDocument(_reportDef);
_reportRuntime.LocateDataSource += new GrapeCity.ActiveReports.LocateDataSourceEventHandler(Document_LocateDataSource);
// Create an output directory
System.IO.MemoryStream ms = new System.IO.MemoryStream();
// Provide settings for your rendering output.
GrapeCity.ActiveReports.Export.Excel.Page.ExcelRenderingExtensionSettings
excelSetting = new GrapeCity.ActiveReports.Export.Excel.Page.ExcelRenderingExtensionSettings();
excelSetting.FileFormat = GrapeCity.ActiveReports.Export.Excel.Page.FileFormat.Xls;
excelSetting.MultiSheet = false;
GrapeCity.ActiveReports.Extensibility.Rendering.ISettings setting = excelSetting;
//Set the rendering extension and render the report.
GrapeCity.ActiveReports.Export.Excel.Page.ExcelRenderingExtension
excelRenderingExtension = new
GrapeCity.ActiveReports.Export.Excel.Page.ExcelRenderingExtension();
GrapeCity.ActiveReports.Rendering.IO.MemoryStreamProvider outputProvider = new GrapeCity.ActiveReports.Rendering.IO.MemoryStreamProvider();
_reportRuntime.Render(excelRenderingExtension, outputProvider, excelSetting.GetSettings());
Response.ContentType = "application/vnd.ms-excel";
Response.AddHeader("content-disposition", "inline;filename=ActiveReport" + DateTime.Now.ToString("yyyyMMddhhmmss") + ".xls");
outputProvider.GetPrimaryStream().OpenStream().CopyTo(ms);
Response.BinaryWrite(ms.ToArray());
//Response.End();
Context.ApplicationInstance.CompleteRequest();
}
您好,
您的问题我们已经收到。目前的解决思路是,通过前台的js拿到参数,然后传递给后台。
我们有一篇博客里面的问题跟您的类似,但是使用的框架是MVC,您可以先参考下:
http://blog.gcpowertools.com.cn/post/2015/07/30/MVCExportParams.aspx 你好,根据回复中的博客内容得到很大启发,但遇到一个问题
通过以下代码获取到选择的组合框内容,但如果一个报表有多个组合框,会将内容合并到一起
arr.push($("#parametersPane .parameterComboBox option:selected" ).text());
例如,第一个组合框选择“中国”
第二个组合框选择“华北”
两个组合框都是parameterComboBox
本来希望是返回的参数组中有个两个参数
但实际是返回了一个“中国华北” 您好,
您可以尝试使用each来将每个ComboBox的内容添加,可以参考:
$("#parametersPane .parameterComboBox option:selected").each(
function () {
var t = $(this).text();
arr.push(t);
}
); 您好,
距离这个问题的最后回复已经过去了一段时间,不知道这个问题您是否已经解决? 你好,已经解决,谢谢 您好,问题已经解决,本帖关闭,如有其它问题,请开新帖。
为了给你提供更优质的服务,请对本次服务进行评分。我们会认真对待你提出的宝贵意见,谢谢
http://gcdn.gcpowertools.com.cn/attachment.aspx?attachmentid=10062
页:
[1]