ActiveReports 报表应用教程 (8)---交互式报表之动态过滤
用户可以使用ActiveReports参数 (Parameters)集合把数据提供给报表中的文本框或图表,也可以选择数据的一个子集显示到报表的特定区域,或者是把数据从主报表象子报表传递。用户可以通过三种方式获取数据的值:提示用户输入;从主报表取值并传递给子报表;从Windows form或者Web form上取值。
1、创建报表文件
在应用程序中创建一个名为 rptOrderDetails.rdlx 的 ActiveReports 报表文件,使用的项目模板为 ActiveReports 页面报表,创建完成之后从 VS 的报表菜单项中选择转换为连续页面布局(CPL)报表,将固定页面报表转换为连续页面报表。
2、打开报表资源管理器,在参数节点中添加以下三个报表参数

3、打开报表资源管理器,并按照以下信息创建报表数据源

4、 添加数据集
在新建的 NWind_CHS 数据源上鼠标右键并选择添加数据集菜单项
4.1、添加数据集参数

说明:在添加参数设置值属性时,可以点击下拉列表,并选中 表达式 选项,然后在表达式编辑对话框中设置参数的值
![]()
4.2、设置数据集其他属性
常规-名称:Products
查询-查询:
SELECT 产品.*,类别.类别名称,类别.说明 AS 类别说明,类别.图片 AS 类别图片, 供应商.公司名称 AS 供应商,供应商.联系人姓名,供应商.城市,供应商.地址
FROM (供应商 INNER JOIN 产品 ON 供应商.供应商ID = 产品.供应商ID) INNER JOIN 类别 ON 产品.类别ID = 类别.类别ID
ORDER BY 产品.类别ID;
设置Products数据集的目的是为用户提供产品名称的选择,如最终运行图的左上角所示,因此我们需要为最开始设置的报表参数中的参数1设置可选值,右键点击报表参数1,修改,选择可选值标签,设置信息:

查询-查询:
SELECT
订单.订单ID, 订单.客户ID, 订单.订购日期, 产品.产品名称,订单明细.数量, 订单明细.单价, 订单明细.折扣
from
(( 订单
innerjoin
订单明细
on
订单.订单ID = 订单明细.订单ID )
innerjoin
产品
on
订单明细.产品ID = 产品.产品ID )
where
(订单明细.产品ID
in
(?)
or
-1
in
(?))
and
DateDiff("d",?,订购日期) > 0
and
DateDiff("d",?,订购日期) < 0
ORDERBY
订单.订单ID;
说明:在以上查询语句 Where 条件中使用了参数查询,参数使用的是 ? 占位,? 的出现顺序需要与数据集参数中定义的参数顺序一致。同时, ? 是 Access 中的查询参数设置方式, SQL Server 中需要使用以 @ 开始的字符串作为参数。
5、设计报表界面
从 Visual Studio 工具箱中将 Table 控件添加到报表设计界面,并将 OrderDetails 数据集中的字段拖拽到 Table 的相应列中,得到的设计界面如下:
![]()
6、运行程序
通过 F5 键运行程序,在参数面板中输入值之后,点击查看报表按钮,将得到以下结果:
![]()
7、自定义报表参数面板
ActiveReports 报表处理支持内置的报表参数面板,您还可以提供独立于报表Viewer控件的自定义报表参数面板,类似的实现效果如下:
![]()
然后在“运行报表”按钮的Click事件中实现报表参数的设置并运行报表:
protected void btnRun_Click(object sender, EventArgs e)
{
GrapeCity.ActiveReports.PageReport report1 = new GrapeCity.ActiveReports.PageReport(new System.IO.FileInfo(Server.MapPath("PageReport1.rdlx")));
report1.Report.ReportParameters[0].DefaultValue.Values.Add(txtParam.Text);
WebViewer1.Report = report1;
}
源码下载地址:
http://www.gcpowertools.com.cn/products/activereports_demo.htm
ActiveReports 报表应用教程 (8)---交互式报表之动态过滤的更多相关文章
- ActiveReports 报表应用教程 (9)---交互式报表之动态排序
在 ActiveReports 中除了提供对数据源进行排序的功能之外,还提供了最终用户排序功能,最终用户可以对报表进行区域内排序和整个数据源排序,结合数据钻取.过滤等功能可以让用户更方便地分析报表数据 ...
- ActiveReports 报表应用教程 (10)---交互式报表之向下钻取(详细数据按需显示解决方案)
在葡萄城ActiveReports报表中可以动态的显示或者隐藏某区域的数据,通过该功能用户可以根据需要显示或者隐藏所关心的数据,结合数据排序.过滤等功能可以让用户更方便地分析报表数据. 本文中展示的是 ...
- ActiveReports 报表应用教程 (12)---交互式报表之贯穿钻取
在葡萄城ActiveReports报表中提供强大的数据分析能力,您可以通过图表.表格.图片.列表.波形图等控件来实现数据的贯穿钻取,在一级报表中可以通过鼠标点击来钻取更为详细的数据. 本文展示的是20 ...
- ActiveReports 报表应用教程 (11)---交互式报表之文档目录
通过文档目录,用户可以非常清晰的查看报表数据结构,并能方便地跳转到指定的章节,最终还可以将报表导出为PDF等格式的文件.本文以2012年各月产品销售分类汇总报表为例,演示如何在葡萄城ActiveRep ...
- ActiveReports 报表应用教程 (7)---交叉报表及数据透视图实现方案
在 ActiveReports 中可以通过矩阵控件非常方便的实现交叉报表,同时还可以设置数据的分组.排序.过滤.小计.合计等操作,可以满足您报表的智能数据分析等需求.在矩阵控件中组的行数和列数由每个行 ...
- ActiveReports 报表应用教程 (6)---分组报表
在 ActiveReports 中可以设置单级分组.嵌套分组,同时,还可以使用表格.列表以及矩阵等数据区域控件对数据源进行分组操作.分组报表在商业报表系统中应用不胜枚举,客户信息归类统计表.商品分类统 ...
- ActiveReports 报表应用教程 (3)---图表报表
ActiveReports 的图表控件支持绝大多数常用的二维和三维图表类型,包括XY图表和财务图表.通过使用图表控件的定制功能,如修改坐标轴.图注.图例等,用户可以创建任何其所需要的图表效果.用户还可 ...
- ActiveReports 报表应用教程 (1)---Hello ActiveReports
在开始专题内容之前,我们还是了解一下 ActiveReports 是一款什么产品:ActiveReports是一款在全球范围内应用非常广泛的报表控件,以提供.NET报表所需的全部报表设计功能领先于同类 ...
- ActiveReports 9实战教程(3): 图文并茂的报表形式
基于上面2节内容,我们搭建了AR9的开发环境,配置好了数据源.在本节,我们以官方提供的3个中文图文并茂的报表来展示AR9的功能,并通过实战的方式一一分享. 以往做报表相关的工作时,最害怕的是报表的UI ...
随机推荐
- saiku 升级&备份&恢复
最近使用saiku,重新编译升级之后维护困难,下面讲解一下简单的办法: 1.备份saiku-server下面的data文件夹 2.备份saiku-server下面的repository文件夹 3.升级 ...
- OpenGL cubeMap
glsl 的reflect(I,N)其中I是 眼睛(camera)位置到顶点位置的方向向量,N为顶点法线,必须要归一化 橙宝书里给出的计算过程是这样的:reflect(I,N) = I - 2 *do ...
- Android之线程回掉更新ui
一:工作线程中的回掉更新UI public class MainActivity extends AppCompatActivity { private int i; private Callback ...
- 用户Word写毕业论文时的文献引用方法
经过网上搜索和自己实践,找到了一种不用第三方工具的文献管理方法 通过将文献定义的成书签的形式,插入到文献中,当文献编号发生变化时,只需进行更新域操作,就可实现文献编号的理新,下面介绍具体方法: 1.首 ...
- ext 3.x 让uploadPanel支持swfupload
经常做系统的时候会遇到上传组件,特别是大文件的时候总是很郁闷,长时间无响应导致糟糕的用户体验,所以决定采用swfupload来支持文件上传. 大体代码如下. var upload = {}; uplo ...
- 类或方法名后加<>
声明类型为泛型. 说明传递的参数为泛型,而不仅仅是一种类型. public void aa<T>(T a) { Console.WriteLine(a); } 调用时可写: this.aa ...
- 【cs229-Lecture15】奇异值分解
PCA的实现一般有两种,一种是用特征值分解去实现的,一种是用奇异值分解去实现的. 内容: PCA (主成份分析)是一种直接的降维方法,通过求解特征值与特征向量,并选取特征值较大的一些特征向量来达到降 ...
- AjaxControlToolKit--TabContainer控件的介绍
1. Introduction: Tab本身就应该是个以页签形式显示组织网页内容的一个控件.在AJAX Control Tool Kit的控件中有TabContainer控件,它是一些Ta ...
- Z/OS遇到的错误
一. IKJ56251I USER NOT AUTHORIZED FOR SUB+ IKJ56251I YOUR TSO ADMINISTRATOR MUST AUTHORIZE USE OF THI ...
- [OpenCV] Feature Extraction
特征检测 特征描述 特征匹配 特征跟踪 “不读白不读,读了还想读” 的一本基础书 低层次特征提取 阈值方法 1. 边缘检测 一阶检测算子 二阶检测算子 相位一致性(频域) 2. 角点检测(局部特征提取 ...