ActiveReports支持运行时绑定数据源功能,这种绑定数据源方法使用较为普及,然而很多系统中都需要在后台导出报表文件,所以用户就很困惑,ActiveReports中如何在后台导出运行时绑定数据源报表?到底是怎样的逻辑?

这篇文章就主要讲解了在MVC中导出运行时数据源的报表文件。

1. 新建MVC 工程

2. 在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" }, reportService: { url: 'ActiveReportsService.asmx' }, uiType: 'desktop' }); }); </script> 

3. 新建报表文件【客户信息.rdlx】,并设置数据源为Object Provider

添加数据集,设置数据集字段

3. 新建Web服务文件,继承GrapeCity.ActiveReports.Web.ReportService

重写OnCreateReportHandler方法,实现LocateDataSource方法

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

4. 在LocateDataSource中调用导出Excel函数

 void Document_LocateDataSource(object sender, LocateDataSourceEventArgs args){string customerID = args.Report.Parameters[0].CurrentValue.ToString();args.Data = GetCustomer(customerID);ExportToExcel(args.Report);}

5. 实现导出Excel方法

private void ExportToExcel(PageDocument report){GrapeCity.ActiveReports.Export.Excel.Section.XlsExport xlsExport1 = new GrapeCity.ActiveReports.Export.Excel.Section.XlsExport();xlsExport1.FileFormat = GrapeCity.ActiveReports.Export.Excel.Section.FileFormat.Xlsx;xlsExport1.Export(report, @"D:\Demo\\" + "\\XLS1t.xlsx");}

Demo下载:

ActiveReports10_Mvc4 (2).zip

转载于:https://www.cnblogs.com/lenkaguo/p/5949526.html

ActiveReports中如何在后台导出运行时绑定数据源报表相关推荐

  1. C专家编程 第11章 你懂得C,所以C++不再话下 11.13 多态---运行时绑定

    多态---运行时绑定     多态(polymorphism)源于希腊语,意思是"多种形状".在C++中,它的意思是支持相关的对象具有不同的成员函数(但原型相同),并允许对象与适当 ...

  2. java中编译类型的方法 和 运行时的类型方法 有什么区别

    1:引言 这是在复习多态当中,看到不太理解的东西, 就是 Java编译类型和运行类型 2:多态 多态首先得是在 有继承关系和方法重写的类当中:指同一个方法在被调用时,由于对象不同则会有不同的效果(). ...

  3. MFC中的动态创建与运行时识别

    MFC中支持运行时类型识别与动态创建.这更多的是设计问题.理解了其中的设计,可以更快定位用MFC框架开发的代码.通过研究MFC实现这些的细节,可以更快地掌握其他开发框架的设计思想. 宏定义中的&quo ...

  4. 在lomboz eclipse 3.3中配置tomcat7/8 server运行时环境遇到的问题

    今天看完了tomcat的视频,感觉离JSP又近了一步!   由于马士兵老师的视频已经有将近6年的时间了,在这段时间内好多软件版本都更新了很多了,自然我们不能完全按照视频中的步骤来做.今天我就遇到了在l ...

  5. Linux中如何获得进程的运行时堆栈

    关于这个话题,我们一般是为了处理一下生产环境中程序出现死循环或者死锁等问题.我们一般想到的方法就是gdb attach上一个运行中的进程.但是这个需要手动交互.通过网上查找和实践,可以有以下几种选择: ...

  6. 无法对 null 引用执行运行时绑定_你真的懂this吗?聊聊默认绑定,隐式绑定,显示绑定,new绑定...

    https://github.com/YvetteLau/Blog/issues/6 this关键字是JavaScript中最复杂的机制之一,是一个特别的关键字,被自动定义在所有函数的作用域中,但是相 ...

  7. 在Java中编写实现_在运行时编写和实现新的Java类文件

    是否可以通过某种方式将新的Java类"导入"到正在运行的程序中并加以利用? 我可以让一个程序创建一个类型为'.java'的新文件,然后将其包含在项目文件中并引用它,而不必重新启动该 ...

  8. 针对ASP.NET中Image控件在运行时显示不出图片的解决办法

    帖子上大多都是关于路径设置的问题,并没有生动的解决问题,难以理解,本人提出一种方法希望对大家有所帮助 1.在解决方案资源管理器中,选中Web登陆界面(我在新建文件时命名为Web登陆界面,以大家的文件名 ...

  9. python怎么在运行中查看执行状态,Python程序运行时查看对象状态怎样设计才能实现...

    不知大家有没有用过Rthymbox的python console. Rthymbox可以在运行的时候,让它的 交互式命令行 对程序进行控制. 比如说可以调用player的play函数,让它播放, 还可 ...

最新文章

  1. 如何设计秒杀服务器的限流策略
  2. awk rand函数问题
  3. Kafka系列2-producer和consumer报错
  4. nginx利用image_filter动态生成缩略图
  5. 对于C++中多态的理解
  6. git 撤销修改:未push 、已push
  7. FPGA设计入门-----1位全加器的设计
  8. 【leetcode-652】寻找重复的子树
  9. BottledWater-PG:PostgreSQL集成Kafka的实时数据交换平台
  10. Linux(Centos7)yum安装Nginx
  11. Vue中 使用vue-particles(粒子背景)插件美化登录页面
  12. apktools使用
  13. 测试开发工程师mac电脑常用软件推荐
  14. 【MySQL】记一次MySQL内存利用率高的问题解决
  15. 【Web】一种好用的浏览器页面打印(打印销售小票)方法
  16. 从赋能到实践引领,百余位架构师经验之谈
  17. java 并发包 使用场景_java并发包原理及使用场景
  18. SQL语法大全中文版
  19. 泰勒公式的介绍、应用及常见题型
  20. mysql 乱码恢复_数据恢复后文档乱码怎么办怎么修复

热门文章

  1. Omnispace 收藏夹
  2. 美团Android资源混淆保护实践
  3. python鸢尾花数据集聚类_R语言鸢尾花iris数据集的层次聚类分析
  4. java搭建maven项目_Eclipse使用maven创建Java Web项目完整示例
  5. python按章节分割txt_python爬虫,爬取小说
  6. hust1341(模拟)
  7. BZOJ 2434 Luogu P2414 [NOI2011]阿狸的打字机 (AC自动机、树状数组)
  8. UOJ #131 BZOJ 4199 luogu P2178【NOI2015】品酒大会 (后缀自动机、树形DP)
  9. 特征级融合_更丰富的卷积特征用于目标边缘检测(文末附有论文及源码下载)...
  10. Git复习(八)之快速理解Git结构