找回密码
 立即注册

QQ登录

只需一步,快速开始

lihuioooo
等待验证会员   /  发表于:2015-10-8 18:29  /   查看:13716  /  回复:24
动态绑定数据带参数的情况下后台如何处理?

24 个回复

倒序浏览
frank.zhang
社区贡献组   /  发表于:2015-10-9 09:07:00
沙发
您好,
动态绑定数据源是指在运行时,对DataSet或者object类型的数据源进行绑定。
这种数据源绑定时,如果有参数,需要将参数传递到后台进行绑定。
有两个环节可以加入参数
1.在创建报表时,使用ReportParameters,可以参考以下代码
  1. GrapeCity.ActiveReports.PageReport rpt = new GrapeCity.ActiveReports.PageReport();
  2. rpt.Load(new System.IO.FileInfo(Server.MapPath("") + "\\PageReport1.rdlx"));
  3. rpt.Report.ReportParameters[0].DefaultValue.Values.Add(XXX);
  4. WebViewer1.Report = rpt;
复制代码
2.在查询SQL时,将参数与SQL语句进行拼接。
回复 使用道具 举报
lihuioooo
等待验证会员   /  发表于:2015-10-9 11:20:00
板凳
回复 2楼frank.zhang的帖子

GrapeCity.ActiveReports.PageReport rpt = new GrapeCity.ActiveReports.PageReport();rpt.Load(new System.IO.FileInfo(Server.MapPath("") + "\\PageReport1.rdlx"));rpt.Report.ReportParameters[0].DefaultValue.Values.Add(XXX);//XXX参数从哪获得,这个参数是在报表上做的,怎么取? 做个示例出来好吗?
WebViewer1.Report = rpt;
回复 使用道具 举报
frank.zhang
社区贡献组   /  发表于:2015-10-9 12:00:00
地板
您好,
制作例子需要一些时间,请您稍后。
回复 使用道具 举报
frank.zhang
社区贡献组   /  发表于:2015-10-9 14:45:00
5#
您好,
示例详见附件


本帖子中包含更多资源

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

x
回复 使用道具 举报
lihuioooo
等待验证会员   /  发表于:2015-10-9 16:40:00
6#
回复 5楼frank.zhang的帖子




这是我设计的报表,在页面初始化时可以加载到下拉菜单的数据,但当我填写完参数点击查看报表时 触发不了后台数据查询,提示了报表不可用

本帖子中包含更多资源

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

x
回复 使用道具 举报
frank.zhang
社区贡献组   /  发表于:2015-10-9 17:04:00
7#
您好,
您的报表模板是正确的,没有问题。
您可以确认下,在WebViewer上是否有以下方法
  1.         <ActiveReportsWeb:WebViewer ID="WebViewer1" runat="server" Height="800"
  2.             Width="800" onlocatedatasource="WebViewer1_LocateDataSource">
  3.         </ActiveReportsWeb:WebViewer>
复制代码

这个问题和代码相关,您先尝试看是否能够解决。如果不能解决,需要您上次一个能够重现这个问题的例子程序。
回复 使用道具 举报
lihuioooo
等待验证会员   /  发表于:2015-10-9 17:39:00
8#
回复 7楼frank.zhang的帖子

已经修改还是不行,附上测试代码

下拉的那个可以手工打上几个就行了,其中一个是8619 即可,

本帖子中包含更多资源

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

x
回复 使用道具 举报
lihuioooo
等待验证会员   /  发表于:2015-10-10 09:26:00
9#
回复 7楼frank.zhang的帖子

有测试重现吗?
回复 使用道具 举报
frank.zhang
社区贡献组   /  发表于:2015-10-10 09:50:00
10#
回复 9楼lihuioooo的帖子

您好,
我之前记得,咱们这边是Java调用,应该是使用HTML5的方式。
在HTML5下的动态数据源绑定和其它的略有不同,需要重写ActiveReports.ReportService。
需要实现OnCreateReportHandler,参考代码:
  1. protected override object OnCreateReportHandler(string reportPath)
  2.         {
  3.             switch (reportPath)
  4.             {
  5.                 case &quot;Reports/SalesDetail.rdlx&quot;:
  6.                     definition = (PageReport)base.OnCreateReportHandler(reportPath);
  7.                     _pageDocument = new PageDocument(definition);
  8.                     definition.Document.LocateDataSource += new LocateDataSourceEventHandler(Document_LocateDataSource);
  9.                     return definition;
  10.                 case &quot;SalesSubDetail&quot;:
  11.                     definition = (PageReport)base.OnCreateReportHandler(&quot;Reports/&quot; + reportPath + &quot;.rdlx&quot;);
  12.                     _pageDocument = new PageDocument(definition);
  13.                     return definition;
  14.                 case &quot;Reports/SalesDetailPara.rdlx&quot;:
  15.                     definition = (PageReport)base.OnCreateReportHandler(reportPath);
  16.                     _pageDocument = new PageDocument(definition);
  17.                     definition.Document.LocateDataSource += new LocateDataSourceEventHandler(Document_LocateDataSource1);
  18.                     return definition;
  19.                 default:
  20.                     return base.OnCreateReportHandler(reportPath);
  21.             }
  22.         }
复制代码


我重新做了一个示例程序,您可以参考下。

本帖子中包含更多资源

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

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