ActiveReports报表数据源:运行时数据源
ActiveReports 支持在设计时和运行时设置报表数据源,本文将重点介绍如何在运行时为区域报表和RDL/页面报表设置报表数据源。
- ·第一步: 在工程中创建一个名为 SectionReport_DataSource_RunTime.cs 的基于代码的区域报表
区域报表运行时数据源
第二步:创建完成之后,会自动打开报表设计界面,此时,我们可以在报表设计界面添加文本框(TextBox)等控件用于显示数据源数据。与 设计时数据源 不同,运行时数据源只需直接设置文本框控件的DataField属性便可完成与数据源的绑定,比如数据源包括以下字段:产品编号、产品名称、单价和库存量,我们只需在报表的 detail 区域添加四个文本框,并分别设置其DataField属性即可。如下图:
第三步:在运行时通过 DataSource 属性设置数据源
private void ToolStripMenuItem_Click(object sender, EventArgs e)
{
SectionReport_DataSource_RunTime sReport1 = new SectionReport_DataSource_RunTime();
sReport1.DataSource = GetDataSource();
sReport1.Run();
viewer1.Document = sReport1.Document;
}
private DataTable GetDataSource()
{
DataTable dt = new DataTable();
dt.Columns.Add("产品编号");
dt.Columns.Add("产品名称");
dt.Columns.Add("单价");
dt.Columns.Add("库存量");
dt.Rows.Add("A10002", "苹果", 20, 50);
dt.Rows.Add("A15681", "香蕉", 20, 50);
dt.Rows.Add("A15681", "菠萝", 20, 50);
return dt;
}
- ·第一步: 在工程中创建一个名为 PageReport_DataSource_RunTime.rdlx 的页面报表
RDL/页面报表运行时数据源
第二步:从Visual Studio菜单栏中的“视图”->“其他窗口”->“报表资源管理器”中打开ActiveReports报表资源管理器,此时,你可以看到“数据源”节点,在该节点上鼠标右键选择“添加数据源”菜单项,在弹出的“报表数据源”对话框中选择类型为Dataset Provider,如下图:
点击“确定”按钮,完成数据源创建操作,此时,在报表资源管理器窗口中的“数据源”节点下新增了一个名为“DataSource1”的子节点,在该节点上点击鼠标右键,选择“添加数据集”菜单项,在弹出对话框的“字段”选项卡中添加产品编号、产品名称、单价和库存量四个字段,然后点击“确定”按钮完成数据集创建操作。返回到报表资源管理窗口之后,点击“DataSet1”节点,可以看到刚才添加的四个字段。
第三步:在Visual Studio工具箱中的表格控件(Table)拖拽到报表设计界面,然后点击表格明细行中的单元格,此时,会自动显示DataSet1中数据集中的全部字段,然后,为每个单元格指定需要绑定的字段。
第四步:在运行时通过 LocateDataSource 事件加载数据源
private DataTable GetDataSource()
{
DataTable dt = new DataTable();
dt.Columns.Add("产品编号");
dt.Columns.Add("产品名称");
dt.Columns.Add("单价");
dt.Columns.Add("库存量");
dt.Rows.Add("A10002", "苹果", 20, 50);
dt.Rows.Add("A15681", "香蕉", 20, 50);
dt.Rows.Add("A15681", "菠萝", 20, 50);
return dt;
}
void runtime_LocateDataSource(object sender, GrapeCity.ActiveReports.LocateDataSourceEventArgs args)
{
if (args.DataSourceName == "DataSource1")
{
if (args.DataSetName == "DataSet1")
{
args.Data = GetDataSource();
}
}
}
private void viewer1_Load(object sender, EventArgs e)
{
GrapeCity.ActiveReports.PageReport pageReport = new GrapeCity.ActiveReports.PageReport
(new System.IO.FileInfo("../../PageReport_DataSource_RunTime.rdlx"));
GrapeCity.ActiveReports.Document.PageDocument runtime = new GrapeCity.ActiveReports.Document.PageDocument(pageReport);
runtime.LocateDataSource += new GrapeCity.ActiveReports.LocateDataSourceEventHandler(runtime_LocateDataSource);
viewer1.LoadDocument(runtime);
}
ActiveReports报表数据源:运行时数据源的更多相关文章
- HTML5Viewer中如何运行时绑定多数据源
很多报表控件提供HTML5Viewer 支持跨设备的报表系统,当然在很多情况下,一个系统可包含多个报表文件,这些报表的数据有可能均为运行时绑定数据源,那么在html5viewer中对一张报表通过重写W ...
- ActiveReports 报表控件官方中文入门教程 (3)-如何选择页面报表和区域报表
本篇文章将介绍区域报表和页面报表的常见使用场景.区别和选择报表类型的一些建议,两种报表的模板设计.数据源(设计时和运行时)设置.和浏览报表的区别. ActiveReports 报表控件官方中文入门教程 ...
- ActiveReports中如何在后台导出运行时绑定数据源报表
ActiveReports支持运行时绑定数据源功能,这种绑定数据源方法使用较为普及,然而很多系统中都需要在后台导出报表文件,所以用户就很困惑,ActiveReports中如何在后台导出运行时绑定数据源 ...
- ActiveReports 报表控件V12新特性 -- 无需ETL处理,即可实现跨数据源分析数据
ActiveReports是一款专注于 .NET 平台的报表控件,全面满足 HTML5 / WinForms / ASP.NET / ASP.NET MVC / WPF 等平台下报表设计和开发工作需求 ...
- 设计时数据源: 在ActiveReports中直接连接PostgreSql 数据库
在之前的博客中,我们学习了如何在运行时绑定PostgreSql 数据库,今天我们学习,如何直连PostgreSQL 数据库. 1. 安装PostgreSQL 的ODBC驱动程序 https://www ...
- ActiveReports 报表控件官方中文入门教程 (2)-创建、数据源、浏览以及发布
本篇文章将阐述首次使用 ActiveReports 报表控件 的方法,包括添加报表文件.绑定数据源以及如何发布报表等内容. ActiveReports 报表控件官方中文入门教程 (1)-安装.激活以及 ...
- 使用DataConnectionDialog在运行时设置数据源连接字符串
介绍: DataConnectionDialog 类: 打开“数据连接”对话框,获取用户选择的数据连接信息. 命名空间为:Microsoft.Data.ConnectionUI 所在程序集:Micro ...
- 【转】使用DataConnectionDialog在运行时设置数据源连接字符串
介绍: DataConnectionDialog 类: 打开“数据连接”对话框,获取用户选择的数据连接信息. 命名空间为:Microsoft.Data.ConnectionUI 所在程序集:Micro ...
- SpringBoot运行时动态添加数据源
此方案适用于解决springboot项目运行时动态添加数据源,非静态切换多数据源!!! 一.多数据源应用场景: 1.配置文件配置多数据源,如默认数据源:master,数据源1:salve1...,运行 ...
随机推荐
- [Linux] 029 脚本安装包
1. 脚本安装包 脚本安装包并不是独立的软件包类型,常见安装的是源码包 是人为把安装过程写成了自动安装的脚本,只要执行脚本,定义简单的参数,就可以完成安装 非常类似于 Windows 下软件的安装方式 ...
- [eclipse中使用Git插件] 008 - git操作pull、merge、stash、commit
写在前面: 看标题其实还有001-007之类,本来准备写详细的类似教程一样的东东,但是懒了且时间有限(以后或许会补吧),所以跳到008,录下主要的操作. 所以本随笔的重点就是[pull+merge+s ...
- vue-router 路由元信息 终于搞明白了路由元信息是个啥了
vue-router 路由元信息:https://blog.csdn.net/wenyun_kang/article/details/70987840 终于搞明白了路由元信息是个啥了:https:// ...
- echarts之折线图介绍及使用
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- [暑假集训Day1T3]新的开始
新建一个虚拟节点后直接跑最小生成树即可,从虚拟节点往每个节点连的边权为每个点建发电站的代价,许多人的考场贪心策略是:先构建原图的最小生成树后找一个花费最小的地方建发电厂.但是这样做不对的地方在于:如果 ...
- /dev/random vs /dev/urandom
If you want random data in a Linux/Unix type OS, the standard way to do so is to use /dev/random or ...
- Word 中的橫式格式方程式和數學自動校正
以橫式格式輸入方程式 您可以使用數學自動校正程式碼,迅速輸入大多數的方程式.例如,若要對齊方程式陣列,您可以使用 @ 和 &,如下所示: \eqarray(x+1&=2@1+2+3+y ...
- ORACLE USER视图
select * from USER_ALL_TABLES -- 包含对用户可用的表的描述. select * from USER_ARGUMENTS --列出对用户可存取的对象中的参数 ...
- elasticsearch 基础 —— 请求体查询
请求体查询 简易 查询 -query-string search- 对于用命令行进行即席查询(ad-hoc)是非常有用的. 然而,为了充分利用查询的强大功能,你应该使用 请求体 search API, ...
- JavaScript中正则使用
字符串是编程时涉及到的最多的一种数据结构,对字符串进行操作的需求几乎无处不在.比如判断一个字符串是否是合法的Email地址,虽然可以编程提取@前后的子串,再分别判断是否是单词和域名,但这样做不但麻烦, ...