HTML5Viewer中如何运行时绑定多数据源
很多报表控件提供HTML5Viewer 支持跨设备的报表系统,当然在很多情况下,一个系统可包含多个报表文件,这些报表的数据有可能均为运行时绑定数据源,那么在html5viewer中对一张报表通过重写WebService文件来实现运行时数据绑定,在多张报表时该如何区分是哪张报表的数据集呢?
并绑定到对应数据呢?
本文就主要来讲解在HTML5Viewer中为多张报表绑定运行时数据源。
开发环境
Visual Studio 2013 +ActiveReports 10 SP2+MVC4程序
实现步骤
(一)在 VS 中创建一个 ASP.NET MVC 4 的应用程序
(二)在应用程序中添加RDL报表
在项目中添加RDL 报表: 订单信息.rdlx;客户信息.rdlx;
2.1 设置【订单信息】报表
· 添加数据源:
名称为DataSource1, 类型为Object Provider;
![]()
· 添加数据集:
名称:“DataSet1”
添加字段:
名称 值
订单编号 订单编号
客户名称 客户名称
购买时间 购买时间
发货时间 发货时间
![]()
· 添加表格,并设置字段值
![]()
2.2 设置【客户信息】报表
· 名称为DataSource1, 类型为Object Provider;
![]()
· 添加数据集:
名称:“DataSet1”
添加字段:
名称 值
客户编号 客户编号
客户名称 客户名称
电话 电话
地址 地址
![]()
· 添加表格,并设置字段值
![]()
(三)在Index.cshtml 中初始化Html5Viewer
<div>
<div id="viewerContainer" style="width:100%;height:800px;border:1px solid gray;margin-top:20px;"></div>
</div>
<script type="text/javascript">
$(function () {
var viewer = GrapeCity.ActiveReports.Viewer(
{
element: '#viewerContainer',
report: {
//id: "客户信息.rdlx"
id: "订单信息.rdlx"
},
reportService: {
url: 'ActiveReportsService.asmx'
},
uiType: 'desktop'
});
});
</script>
(四)新建WebService.asmx文件
继承GrapeCity.ActiveReports.Web.ReportService实现OnCreateReportHandler方法
protected override object OnCreateReportHandler(string reportPath)
{
var instance = base.OnCreateReportHandler(reportPath);
var pageReport = instance as PageReport;
if (pageReport != null)
{
pageReport.Document.LocateDataSource += Document_LocateDataSource;
}
return instance;
}
在LocateDataSource 方法中通过args.Report.PageReport.Report.Description来判断报表,代码:
void Document_LocateDataSource(object sender, LocateDataSourceEventArgs args)
{
switch (args.Report.PageReport.Report.Description)
{
case "客户信息":
string customerID = args.Report.Parameters[0].CurrentValue.ToString();
args.Data = GetCustomer(customerID);
break;
case "订单信息":
string orderID = args.Report.Parameters[0].CurrentValue.ToString();
args.Data = GetOrder(orderID);
break;
default:
break;
}
}
附件下载:
HTML5Viewer中如何运行时绑定多数据源的更多相关文章
- ActiveReports中如何在后台导出运行时绑定数据源报表
ActiveReports支持运行时绑定数据源功能,这种绑定数据源方法使用较为普及,然而很多系统中都需要在后台导出报表文件,所以用户就很困惑,ActiveReports中如何在后台导出运行时绑定数据源 ...
- Windows Phone 8初学者开发—第14部分:在运行时绑定到真实的数据
原文 Windows Phone 8初学者开发—第14部分:在运行时绑定到真实的数据 第14部分:在运行时绑定到真实的数据 原文地址: http://channel9.msdn.com/Series/ ...
- 使用dynamic引发的异常:无法对 null 引用执行运行时绑定
今天上午运营反映有商户的账单没有生成. 查看日志,在批量生成账单服务执行过程中,因为如下异常而中断了: 跑批异常 Microsoft.CSharp.RuntimeBinder.RuntimeBinde ...
- SpringBoot运行时动态添加数据源
此方案适用于解决springboot项目运行时动态添加数据源,非静态切换多数据源!!! 一.多数据源应用场景: 1.配置文件配置多数据源,如默认数据源:master,数据源1:salve1...,运行 ...
- [C++]C++中的运行时类型检测
Date:2014-1-3 Summary: 使用C++中的运行时类型检测.(文章重点在于记录本人的使用情况,并非深层讨论RTTI) Contents:写习惯C#的我,在C++依然存在哪些.NET的惯 ...
- 翻译:JVM虚拟机规范1.7中的运行时常量池部分(二)
本篇为JVM虚拟机规范1.7中的运行时常量池部分系列的第二篇. 4.4.4. The CONSTANT_Integer_info and CONSTANT_Float_info Structures ...
- 在Amazon FreeRTOS V10中使用运行时统计信息
在MCU on Eclipse网站上看到Erich Styger在8月2日发的博文,一篇关于在Amazon FreeRTOS V10中使用运行时统计信息的文章,本人觉得很有启发,特将其翻译过来以备参考 ...
- Visual C++中对运行时库的支持
原文地址:http://blog.csdn.net/wqvbjhc/article/details/6612099 一.什么是C运行时库 1)C运行时库就是 C run-time library,是 ...
- Android中Activity运行时屏幕方向与显示方式详解
现在我们的手机一般都内置有方向感应器,手机屏幕会根据所处位置自动进行横竖屏切换(前提是未锁定屏幕方向).但有时我们的应用程序仅限在横屏或者竖屏状态下才可以运行,此时我们需要锁定该程序Activity运 ...
随机推荐
- EditPlus 3.7.164 中文版(4月3日更新)
新的版本汉化了之前无法汉化的部分内容,并修复了旧汉化版的部分问题. 欢迎下载新的翻译文件.
- logrotate
logrotate程序是一个日志文件管理工具.用于分割日志文件,删除旧的日志文件,并创建新的日志文件,起到"转储"作用.可以节省磁盘空间. logrotate命令格式:logrot ...
- kafka0.9.0及0.10.0配置属性
问题导读1.borker包含哪些属性?2.Producer包含哪些属性?3.Consumer如何配置?borker(0.9.0及0.10.0)配置Kafka日志本身是由多个日志段组成(log segm ...
- poj3253 Fence Repair
http://poj.org/problem?id=3253 Farmer John wants to repair a small length of the fence around the pa ...
- python-进程,线程,协程
1.进程和线程 进程定义:进程是正在运行的程序的实例,进程是内核分配资源的最基本的单元,而线程是内核执行的最基本单元,进程内可以包含多个线程,只要记住这三个要点,就可以很清楚的理清进程和线程的行为模 ...
- Chapter 2: 随机变量
1. 随机变量, 离散型随机变量,连续型随机变量 设$\Omega$为随机试验的样本空间,$X:\Omega \rightarrow R$是定义在样本空间$\Omega$上的实值函数,则称$X$为随机 ...
- 【前端】Web前端学习笔记【2】
[2016.02.22至今]的学习笔记. 相关博客: Web前端学习笔记[1] 1. this在 JavaScript 中主要有以下五种使用场景 在全局函数调用中,this 绑定全局对象,浏览器环境全 ...
- 一看便知_配置linux 网络配置的几种方法
一. - setup 进入设置 - /etc/rc.d/init.d/network restart 运行完才会生效刚才的修改 二.命令设置 [临时生效]- i ...
- pull 解析XML 文件
pull解析的特点 事件驱动机制来解析 当解析到一个节点,会自动停止,不会往下继续解析,好处 :很好能够控制流程 android默认采用pull解析 pull解析的事件类型 start_documen ...
- Spark学习(一) -- Spark安装及简介
标签(空格分隔): Spark 学习中的知识点:函数式编程.泛型编程.面向对象.并行编程. 任何工具的产生都会涉及这几个问题: 现实问题是什么? 理论模型的提出. 工程实现. 思考: 数据规模达到一台 ...