找回密码
 立即注册

QQ登录

只需一步,快速开始

fineex2006

注册会员

16

主题

49

帖子

139

积分

注册会员

积分
139

活字格认证

fineex2006
注册会员   /  发表于:2015-8-20 17:03  /   查看:5167  /  回复:8
当前显示的报表是这样的

最开始时,没有设置左侧动态输入参数时,点报表顶部的导出按钮能够正常导出。
后来根据需要,增加了两个可选的参数
点导出后图表区内容空白
我想是不是因为导出的时候选择的这个两个参数没有传入
但又不希望导出的时候再次选择参数,能否直接导出和报表显示的一模一样的内容。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

8 个回复

倒序浏览
frank.zhang
社区贡献组   /  发表于:2015-8-20 17:53:00
沙发
您好,
您的这个问题,我理解是在增加参数后,导出没有能够正常显示。
您使用的是,前台JS的方式导出吗?
您是否方便提供一个能够重现这个问题的例子程序呢?这个问题,需要调试。我们重新新建项目,再重现这个问题,然后解决有点浪费时间。
回复 使用道具 举报
fineex2006
注册会员   /  发表于:2015-8-21 10:29:00
板凳
你好,你的理解不对
页面显示的报表中,有两个必填的参数,“大件”和“数量”,这个两个参数没有从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();
        }

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
frank.zhang
社区贡献组   /  发表于:2015-8-21 17:02:00
地板
您好,
您的问题我们已经收到。目前的解决思路是,通过前台的js拿到参数,然后传递给后台。
我们有一篇博客里面的问题跟您的类似,但是使用的框架是MVC,您可以先参考下:
http://blog.gcpowertools.com.cn/ ... VCExportParams.aspx
回复 使用道具 举报
fineex2006
注册会员   /  发表于:2015-8-24 15:53:00
5#
你好,根据回复中的博客内容得到很大启发,但遇到一个问题
通过以下代码获取到选择的组合框内容,但如果一个报表有多个组合框,会将内容合并到一起
arr.push($(&quot;#parametersPane .parameterComboBox option:selected&quot; ).text());
例如,第一个组合框选择“中国”
第二个组合框选择“华北”
两个组合框都是parameterComboBox
本来希望是返回的参数组中有个两个参数
但实际是返回了一个“中国华北”
回复 使用道具 举报
frank.zhang
社区贡献组   /  发表于:2015-8-24 17:09:00
6#
您好,
您可以尝试使用each来将每个ComboBox的内容添加,可以参考:
  1.                     $(&quot;#parametersPane .parameterComboBox option:selected&quot;).each(
  2.                            function () {
  3.                                var t = $(this).text();
  4.                                arr.push(t);
  5.                            }
  6.             );
复制代码
回复 使用道具 举报
frank.zhang
社区贡献组   /  发表于:2015-8-31 18:02:00
7#
您好,
距离这个问题的最后回复已经过去了一段时间,不知道这个问题您是否已经解决?
回复 使用道具 举报
fineex2006
注册会员   /  发表于:2015-9-1 11:21:00
8#
你好,已经解决,谢谢
回复 使用道具 举报
frank.zhang
社区贡献组   /  发表于:2015-9-1 13:52:00
9#
您好,问题已经解决,本帖关闭,如有其它问题,请开新帖。

为了给你提供更优质的服务,请对本次服务进行评分。我们会认真对待你提出的宝贵意见,谢谢

评分

参与人数 1满意度 +5 收起 理由
fineex2006 + 5 谢谢,问题解决

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部