后端怎么生成报表html文件,如何在MVC程序中将从后台报表参数值传递给前台

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

系列博客:

开发环境

VS2013+MVC4.0+ ActiveReports10

实现步骤:

1. 创建工程

在Visual Studio 2013中创建MVC Web项目

b091763ce38754097510ee078f879110.png

2. 创建Web服务文件

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

670badadf37dc435275d752233134c79.png

代码: 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 报表,并设置为运行时数据源

710458d0ec55320e45bad531a00b3e22.png

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

e39f6ef6e2f61200f4f5f7d0a4ea2ddd.png

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

b83bcf3f10029756843af2ae54665429.png

添加字段:

37fb6681d77a6e778bcf55c367cbc4a7.png

绑定到数据控件中:

d152bd88b14bf2a318730f474dd8405e.png

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产品更多特性:

下载产品体验产品功能:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值