如何在MVC程序中将从后台报表参数值传递给前台

在之前的教程中我们学习了如何将前台数据传递给报表参数,本文主要讲解,如何通过后台为报表参数赋值,并传递给前台页面元素。

发布于 2016/07/28 00:00

ActiveReports

 

在之前的教程中我们学习了如何将前台数据传递给报表参数,本文主要讲解,如何通过后台为报表参数赋值,并传递给前台页面元素。

系列博客:

如何使用HTML5Viewer 进行参数传递

如何在MVC 5中使用 HTML5 Viewer

 

开发环境

 

VS2013+MVC4.0+ ActiveReports10

实现步骤:

1. 创建工程

在Visual Studio 2013中创建MVC Web项目

image

 

2. 创建Web服务文件

添加服务,在工程中添加一个【Web 服务】,然后切换到代码视图,修改该类继承的原始类型为GrapeCity.ActiveReports.Web.ReportService

image

代码:

   public class WebService1 :GrapeCity.ActiveReports.Web.ReportService
    {
        protected override object OnCreateReportHandler(string reportPath)
        {
            PageReport definition1 = (PageReport)base.OnCreateReportHandler(reportPath);
            //definition1.Report.ReportParameters[0].DefaultValue.Values[0].ToString();
            return definition1;
        }
     
    }

 

3. 添加RDL 报表,并设置为运行时数据源

image

 

3.1 为报表添加参数,设置默认值

image

 

3.2 为报表绑定动态时数据源

image

添加字段:

image

 

绑定到数据控件中:

image

 

4. 在Web服务文件中实现LocateDocument方法

     private void Document_LocateDataSource(object sender, LocateDataSourceEventArgs args)
        {
            DataTable dt = new DataTable();
            dt.Columns.Add("Field1",typeof(int));
            dt.Columns.Add("Field2");
            dt.Columns.Add("Field3");
            dt.Rows.Add(1,"test","test1");
            dt.Rows.Add(2, "test", "test1");
            dt.Rows.Add(2, "test", "test1");
            string temp=args.Report.Parameters[0].CurrentValue.ToString();
            args.Data = dt;
           
        }

 

4. 在 Index 页面中添加HTML5Viewer,并修改服务文件的URL

 

  var viewer = GrapeCity.ActiveReports.Viewer({
        element: '#viewerContainer',
        reportService: {
            url: '/WebService1.asmx'
        },
        uiType: 'desktop',
        report: {id:"RdlReport1.rdlx"},
       
        localeUri: 'Scripts/en.txt',
        error: function (error) {
            console.log("error");
        }
    });

 

5. 调用 reportLoaded方法

var reportLoaded = function reportLoaded(reportInfo) {
        temp=reportInfo.parameters

 

6. 配置路由

打开RouteConfig.cs文件,添加以下内容:

 routes.IgnoreRoute("{*allActiveReport}", new { allActiveReport = @".*\.ar10(/.*)?" });
            routes.IgnoreRoute("WebService1.asmx/{*pathInfo}");

 

您在使用产品过程中有任何疑问,可以登录葡萄城开发者社区和经验丰富的技术工程师、ActiveReports开发人员交流:了解更多

了解ActiveReports产品更多特性:

/developer/activereports

下载产品体验产品功能:

/download/?pid=16

ActiveReports 报表控件| 下载试用

ActiveReports 是一款专注于 .NET 平台的报表控件,全面满足 HTML5 / WinForm / ASP.NET / ASP.NET MVC / WPF 等平台下报表设计和开发工作需求,作为专业的报表工具为全球超过 300,000 开发人员提供了全面的报表开发服务。

您对ActiveReports产品的任何技术问题,都有技术支持工程师提供1对1专业解答,点击此处即可发帖提问>>技术支持论坛

相关产品
推荐相关案例
关注微信
葡萄城社区二维码

关注“葡萄城社区”

加微信获取技术资讯

加微信获取技术资讯

想了解更多信息,请联系我们, 随时掌握技术资源和产品动态