找回密码
 立即注册

QQ登录

只需一步,快速开始

ZenosZeng 讲师达人认证 悬赏达人认证
超级版主   /  发表于:2014-8-19 15:38  /   查看:15418  /  回复:24
1. 根据下拉菜单内容控制table的动态显示和隐藏。
2. 导出(后台)按钮导不出全部数据,也不能导出检索后的数据,只能导出表头。"导出为excel"、“导出为PDF”、“导出为WORD”导出时调用js,出现"缺少对象提示"。
3. 打印问题,可以在不安装PDF阅读器的环境打印吗?

本帖子中包含更多资源

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

x

24 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2014-8-19 17:05:00
沙发
回复 1楼dof的帖子

问题一,前台目前无法控制,请在后台操作。示例如下:


问题二,
1.后台导出请尝试现在服务器端导出看能否成功。
2.前台导出文件,请参考附件 Demo:


问题三,目前需要安装 PDF阅读器才能使用 js 方法打印。

本帖子中包含更多资源

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

x
回复 使用道具 举报
czlt
银牌会员   /  发表于:2014-8-22 08:48:00
板凳
你好,谢谢详细解答,但是还是存在一些问题,希望能够解决。代码见附件
问题一:
怎么在存在检索条件下,进行动态table显示和隐藏?
问题二:
1.调用js代码实现“导出”功能时,试发布后不能导出?
2.aspx.cs中导出功能代码如下,但是不能导出数据?
        // 导出EXCEL
        GrapeCity.ActiveReports.PageReport report1 = new GrapeCity.ActiveReports.PageReport(new System.IO.FileInfo(Server.MapPath(&quotageReport1.rdlx")));
            GrapeCity.ActiveReports.Document.PageDocument _reportRuntime = new GrapeCity.ActiveReports.Document.PageDocument(report1);
            GrapeCity.ActiveReports.Export.Excel.Page.ExcelTransformationDevice _renderingExtension = new GrapeCity.ActiveReports.Export.Excel.Page.ExcelTransformationDevice();
            GrapeCity.ActiveReports.Rendering.IO.MemoryStreamProvider _provider = new GrapeCity.ActiveReports.Rendering.IO.MemoryStreamProvider();

            _reportRuntime.Render(_renderingExtension, _provider);
            Response.ContentType = "application/vnd.ms-excel";
            Response.AddHeader("content-disposition", "inline;filename=MyExport.xls");

            System.IO.MemoryStream ms = new System.IO.MemoryStream();
            _provider.GetPrimaryStream().OpenStream().CopyTo(ms);
            Response.BinaryWrite(ms.ToArray());
            Response.End();
            // 导出EXCEL
问题三:
打印功能需求希望在不安装PDF阅读器的环境下和Flash进行打印,请问除了JS调用方法之外,是否有其他实现打印功能方法,如何实现?
初学者,希望能在上传的代码中进行修改和说明,非常感谢!

本帖子中包含更多资源

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

x
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2014-8-22 14:48:00
地板
回复 3楼czlt的帖子

czlt 你好

问题一:怎么在存在检索条件下,进行动态table显示和隐藏?
回复一:你的实现方法是正确的,只是在报表PageReport1的脚本中缺少SetVisibitly代码,还有就是你报表设计界面中 Table1 合同信息表的 Hidden 应该设置为 =Code.SetVisibitly("table1",Parameters!Report1.Value)
  1. Function SetVisibitly(ByVal tablename As Object, ByVal values As Object()) As Boolean
  2.         For i As Integer = 0 To values.Length - 1
  3.                 If values(i) = tablename Then
  4.                         Return False
  5.                 End If
  6.         Next
  7.         Return True
  8. End Function
复制代码
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2014-8-22 15:12:00
5#
回复 3楼czlt的帖子

问题二:
1.调用js代码实现“导出”功能时,试发布后不能导出?
2.aspx.cs中导出功能代码如下,但是不能导出数据?

回复二:
1.调用js代码实现“导出”功能时,试发布后不能导出?
先检查一下是不是把所有的ActiveReports相关DLL都正常发布了,你可以尝试将C:\Program Files (x86)\Common Files\ComponentOne\ActiveReports 8 目录中的DLL都拷贝到你站点的bin目录下

2.aspx.cs中导出功能代码如下,但是不能导出数据?
后台导出时你没有指定Contractid和Report1两个参数的值,我想这是主要原因。
  1.     protected void btnExcel_Click(object sender, EventArgs e)
  2.     {
  3.         // 加载报表
  4.         LoadReport(TextBox1.Text);
  5.         GrapeCity.ActiveReports.PageReport report1 = new GrapeCity.ActiveReports.PageReport(new System.IO.FileInfo(Server.MapPath("PageReport1.rdlx")));
  6.         report1.Report.ReportParameters[0].DefaultValue.Values.Clear();
  7.         report1.Report.ReportParameters[0].DefaultValue.Values.Add(TextBox1.Text);
  8.         report1.Report.ReportParameters[1].DefaultValue.Values.Clear();
  9.         report1.Report.ReportParameters[1].DefaultValue.Values.Add("table1");
  10.         report1.Report.ReportParameters[1].DefaultValue.Values.Add("table2");
  11.         report1.Report.ReportParameters[1].DefaultValue.Values.Add("table3");
  12.         // 打印
  13.         GrapeCity.ActiveReports.Document.PageDocument _reportRuntime = new GrapeCity.ActiveReports.Document.PageDocument(report1);
  14.         GrapeCity.ActiveReports.Export.Excel.Page.ExcelTransformationDevice _renderingExtension = new GrapeCity.ActiveReports.Export.Excel.Page.ExcelTransformationDevice();
  15.         GrapeCity.ActiveReports.Rendering.IO.MemoryStreamProvider _provider = new GrapeCity.ActiveReports.Rendering.IO.MemoryStreamProvider();
  16.         _reportRuntime.Render(_renderingExtension, _provider);
  17.         Response.ContentType = "application/vnd.ms-excel";
  18.         Response.AddHeader("content-disposition", "inline;filename=MyExport.xls");
  19.         System.IO.MemoryStream ms = new System.IO.MemoryStream();
  20.         _provider.GetPrimaryStream().OpenStream().CopyTo(ms);
  21.         Response.BinaryWrite(ms.ToArray());
  22.         Response.End();
  23.         // 打印
  24.     }
复制代码
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2014-8-22 15:15:00
6#
回复 3楼czlt的帖子

问题三:
打印功能需求希望在不安装PDF阅读器的环境下和Flash进行打印,请问除了JS调用方法之外,是否有其他实现打印功能方法,如何实现?
回复三:目前Web中的打印可以分为HTML打印、PDF打印、Flash打印和ActiveX打印,然后,从Windows用户安装软件的情况来看,PDF打印的要求是比较底的,因为超过95%的用户均按照了该功能。
所以,我推荐的是前端通过JS调用PDF打印,实现方便,打印效果好。
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2014-8-22 15:16:00
7#
请修改报表的数据源链接:

本帖子中包含更多资源

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

x
回复 使用道具 举报
czlt
银牌会员   /  发表于:2014-8-26 10:44:00
8#

检索条件与动态table通过一个按钮控制

您好!谢谢详细的解答。现在在同时进行检索和动态table显示时,想只要一个按钮就行,不知道是否用一个按钮控制?具体怎么实现?非常感谢!问题见附件说明!代码为6楼修改的代码,其中也存在同样问题。

本帖子中包含更多资源

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

x
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2014-8-26 16:20:00
9#
回复 8楼czlt的帖子

最方便的解决方法是都在报表浏览器中显示,7# 的Demo按照如图方式设置即可,如果有其他参数也可以按照相同方法设置:

本帖子中包含更多资源

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

x
回复 使用道具 举报
czlt
银牌会员   /  发表于:2014-8-27 11:06:00
10#
回复 9楼iceman的帖子

你好,按你的方法实现了,但是获取不到输入的信息,查找不出数据,请问题还有那个地方需要修改?谢谢

本帖子中包含更多资源

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

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