找回密码
 立即注册

QQ登录

只需一步,快速开始

ehecd
论坛元老   /  发表于:2014-4-11 09:30  /   查看:37103  /  回复:48
如题,请问在web Form中,ar8连续页面报表如何动态绑定sql server数据源,以及钻取报表如何动态绑定数据源,能否给出1个详细的demo?环境:vs2010+ar8+sql server2008。

48 个回复

倒序浏览
roger.wang
社区贡献组   /  发表于:2014-4-11 10:36:00
沙发
回复 1楼ehecd的帖子

有一个现成的demo,您参考一下看看是否符合您的需求:
ActiveResports官方资源集合贴(更新日期 2014-4-3) -->报表控件 ActiveReports 中页面报表动态绑定数据源实现方法
http://blog.gcpowertools.com.cn/ ... ime-DataSource.aspx
回复 使用道具 举报
ehecd
论坛元老   /  发表于:2014-4-11 12:04:00
板凳
回复 2楼roger.wang的帖子

钻取报表的子报表怎么绑定数据源,怎么从父报表获取传递过来的参数?
回复 使用道具 举报
roger.wang
社区贡献组   /  发表于:2014-4-11 18:19:00
地板
回复 3楼ehecd的帖子

这个可通过WebViewer的LocateDataSource事件进行赋值

例如:

  1. void Document_LocateDataSource(object sender, LocateDataSourceEventArgs args)
  2. {
  3.     try
  4.     {
  5.         if (args.DataSourceName == "WfObjects")
  6.         {
  7.             switch (args.DataSetName)
  8.             {
  9.                 case "BPDataSet":
  10.                     args.Data = new[] {_bPDTO};
  11.                     break;
  12.                 case "InstanceFields":
  13.                     args.Data = new[] {CreateInstanceFieldsClassObject()};
  14.                     break;
  15.                 default:
  16.                     break;
  17.             }
  18.         }
  19.         else
  20.         {
  21.             if (_responseDataSet != null && _responseDataSet.Tables.Contains(args.DataSetName))
  22.             {
  23.                 args.Data = _responseDataSet.Tables[args.DataSetName];
  24.             }
  25.         }
  26.     }
  27.     catch (Exception exception)
  28.     {
  29.         Response.Write("Error: " + exception.Message);
  30.     }
  31. }
复制代码
回复 使用道具 举报
ehecd
论坛元老   /  发表于:2014-4-14 09:34:00
5#
回复 4楼roger.wang的帖子

能否给一个demo,首先父报表是动态绑定的数据源,点击父报表时,根据父报表点击的值传递参数给子报表,子报表再动态绑定数据源
回复 使用道具 举报
roger.wang
社区贡献组   /  发表于:2014-4-14 14:23:00
6#
回复 5楼ehecd的帖子

新写了一篇博客,动态绑定数据源-子报表的。供您参考:
报表控件 ActiveReports 中页面报表动态绑定数据源实现方法续:子报表篇
回复 使用道具 举报
ehecd
论坛元老   /  发表于:2014-4-14 15:31:00
7#
回复 6楼roger.wang的帖子

子报表需要根据点击父报表时传过来的参数绑定数据源,请问应如何获取点击父报表时的某一字段的值?获取该值后才能动态绑定子报表。
回复 使用道具 举报
roger.wang
社区贡献组   /  发表于:2014-4-14 16:28:00
8#
回复 7楼ehecd的帖子


通过args.Report.Parameters获得传过来的参数(父报表--> 子报表)


  1. void WebViewer1_LocateDataSource(object sender, GrapeCity.ActiveReports.LocateDataSourceEventArgs args)
  2.         {
  3.             if (args.DataSourceName == "DataSource2")
  4.             {
  5.                 if (args.Report.Parameters.Count > 0)
  6.                 {
  7.                     string name = args.Report.Parameters[0].Name;
  8.                     object val = args.Report.Parameters[0].Values[0].Value;
  9.                 }
  10.                
  11.                 if (args.DataSetName == "DataSet2")
  12.                 {
  13.                     args.Data = GetData2();
  14.                 }
  15.             }

  16.         }
复制代码
回复 使用道具 举报
ehecd
论坛元老   /  发表于:2014-4-14 17:12:00
9#
回复 8楼roger.wang的帖子

好的,问题已解决,非常感谢!
回复 使用道具 举报
roger.wang
社区贡献组   /  发表于:2014-4-14 17:20:00
10#
回复 9楼ehecd的帖子

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