ikbeldo 发表于 2017-6-27 16:41:02

ActiveReport+MVC+ajax 通过前台参数传递如何动态绑定数据源?

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;
      }

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/forum.php?mod=viewthread&tid=19954&extra=page%3D1

ikbeldo 发表于 2017-6-27 19:00:35

本帖最后由 ikbeldo 于 2017-6-27 19:01 编辑

Lenka.Guo 发表于 2017-6-27 18:03
1. H5传参数值:
http://blog.gcpowertools.com.cn/post/html5viewerParameter.aspx
2. 您可以在设计器中 ...
您的第一个连接是H5传参数,第二个连接是MVC绑定数据源,这是两种不同的绑定数据源方式。
我想要的是 MVC 传参数 绑定数据源

Lenka.Guo 发表于 2017-6-28 10:54:54

您好,
H5从前台为参数传值,就是在js中初始化Viewer ,传报表ID 时,传报表参数值
<script type="text/javascript">
         $(document).ready(function () {
                $("#button1").click(function () {
                  var result1 = $("#input_text1").val();
                  var viewer = GrapeCity.ActiveReports.Viewer({
                        element: '#viewerContainer',

                        report: {
                            id: 'RdlReport1.rdlx',
                            parameters: [{
                              name: 'ReportParameter1',
<b>                              value: $("#input_text1").val(),</b>
                            }]},
                        reportService: {
                            url: '/ActiveReports.ReportService.asmx'
                        },

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

               
                });         });

为报表指定运行时数据源,必须实现ReportService.asmx 文件,在这个文件中为报表指定数据源连接字符串,或者指定运行时数据
页: [1]
查看完整版本: ActiveReport+MVC+ajax 通过前台参数传递如何动态绑定数据源?