找回密码
 立即注册

QQ登录

只需一步,快速开始

ikbeldo

初级会员

21

主题

61

帖子

308

积分

初级会员

积分
308

微信认证勋章

ikbeldo
初级会员   /  发表于:2017-6-27 16:41  /   查看:5174  /  回复:5
1.请问下 AcitveReport.Parameters 这个能动态赋值吗? 有实际例子吗?
2.以下是我绑定数据源的代码,现在我着需要根据页面传递的参数来绑定数据源
例如:  DataTable tb = DBContext.ExecuteDataTable("SELECT Name,Sex,Age FROM Student");
前台传递一个id的参数   ,DataTable tb = DBContext.ExecuteDataTable("SELECT Name,Sex,Age FROM Student where id="+id);
根据不同的id获取不同的数据源  ,使用ajax 后 直接跳过pageDocument.LocateDataSource ,无法绑定,请问怎么通过参数来绑定不同数据源
public ActionResult Index()

      {
        GetReport();
        return View();
      }

      public void GetReport()
      {
        GrapeCity.ActiveReports.PageReport report = new GrapeCity.ActiveReports.PageReport(new System.IO.FileInfo(Server.MapPath("/PageReport1.rdlx")));
        PageDocument pageDocument = new PageDocument(report);
        System.Action<object, LocateDataSourceEventArgs> action = new Action<object, LocateDataSourceEventArgs>(Document_LocateDataSource);
        pageDocument.LocateDataSource += (sender, args) =>
        {
          action(sender, args);
        };
        ViewData.Model = report;
      }

      private void Document_LocateDataSource(object sender, LocateDataSourceEventArgs args)
      {
        List<Student> list = new List<Student>();
        //
        DataTable tb = DBContext.ExecuteDataTable("SELECT Name,Sex,Age FROM Student");
        foreach (System.Data.DataRow row in tb.Rows)
        {
          Student stu = new Student();
          stu.Name = row["Name"].ToString();
          stu.Sex = row["Sex"].ToString();
          stu.Age = row["Age"].ToString();
          list.Add(stu);
        }
        int ss = args.Report.Parameters.Count();
        args.Data = list;
      }

5 个回复

倒序浏览
Lenka.Guo讲师达人认证 悬赏达人认证
超级版主   /  发表于:2017-6-27 17:29:30
沙发
比较全的数据库:https://pan.baidu.com/s/1i4Ew4U5
回复 使用道具 举报
ikbeldo
初级会员   /  发表于:2017-6-27 17:32:23
板凳
Lenka.Guo 发表于 2017-6-27 17:29
比较全的数据库:https://pan.baidu.com/s/1i4Ew4U5

这是什么,没看懂呀!
回复 使用道具 举报
Lenka.Guo讲师达人认证 悬赏达人认证
超级版主   /  发表于:2017-6-27 18:03:00
地板
1. H5传参数值:
http://blog.gcpowertools.com.cn/post/html5viewerParameter.aspx
2. 您可以在设计器中进行数据源连接的设置,也可以在MVC中运行时数据源绑定。
http://gcdn.gcpowertools.com.cn/ ... &extra=page%3D1
回复 使用道具 举报
ikbeldo
初级会员   /  发表于:2017-6-27 19:00:35
5#
本帖最后由 ikbeldo 于 2017-6-27 19:01 编辑

您的第一个连接是  H5传参数,第二个连接是MVC绑定数据源,这是两种不同的绑定数据源方式。
我想要的是 MVC 传参数 绑定数据源
回复 使用道具 举报
Lenka.Guo讲师达人认证 悬赏达人认证
超级版主   /  发表于:2017-6-28 10:54:54
6#
您好,
H5从前台为参数传值,就是在js中初始化Viewer ,传报表ID 时,传报表参数值
  1. <script type="text/javascript">
  2.          $(document).ready(function () {
  3.                 $("#button1").click(function () {
  4.                     var result1 = $("#input_text1").val();
  5.                     var viewer = GrapeCity.ActiveReports.Viewer({
  6.                         element: '#viewerContainer',

  7.                         report: {
  8.                             id: 'RdlReport1.rdlx',
  9.                             parameters: [{
  10.                                 name: 'ReportParameter1',
  11. <b>                                value: $("#input_text1").val(),</b>
  12.                             }]},
  13.                         reportService: {
  14.                             url: '/ActiveReports.ReportService.asmx'
  15.                         },

  16.                         uiType: 'Desktop',
  17.                         localeUri: 'Scripts/i18n/Localeuri.txt',
  18.                     });

  19.                
  20.                 });           });
复制代码


为报表指定运行时数据源,必须实现ReportService.asmx 文件,在这个文件中为报表指定数据源连接字符串,或者指定运行时数据
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部