ActiveReports 报表应用教程 (8)---交互式报表之动态过滤
2014-12-02 11:46
387 查看
用户可以使用ActiveReports参数(Parameters)集合把数据提供给报表中的文本框或图表,也可以选择数据的一个子集显示到报表的特定区域,或者是把数据从主报表象子报表传递。用户可以通过三种方式获取数据的值:提示用户输入;从主报表取值并传递给子报表;从Windowsform或者Webform上取值。
4.1、添加数据集参数
说明:在添加参数设置值属性时,可以点击下拉列表,并选中表达式选项,然后在表达式编辑对话框中设置参数的值
4.2、设置数据集其他属性
常规-名称:Products
查询-查询:
SELECT产品.*,类别.类别名称,类别.说明AS类别说明,类别.图片AS类别图片,供应商.公司名称AS供应商,供应商.联系人姓名,供应商.城市,供应商.地址
FROM(供应商INNERJOIN产品ON供应商.供应商ID=产品.供应商ID)INNERJOIN类别ON产品.类别ID=类别.类别ID
ORDERBY产品.类别ID;
设置Products数据集的目的是为用户提供产品名称的选择,如最终运行图的左上角所示,因此我们需要为最开始设置的报表参数中的参数1设置可选值,右键点击报表参数1,修改,选择可选值标签,设置信息:
查询-查询:
订单.订单ID,订单.客户ID,订单.订购日期,产品.产品名称,订单明细.数量,订单明细.单价,订单明细.折扣
((订单
订单明细
订单.订单ID=订单明细.订单ID)
产品
订单明细.产品ID=产品.产品ID)
(订单明细.产品ID
(?)
-1
(?))
DateDiff("d",?,订购日期)>0
DateDiff("d",?,订购日期)<0
订单.订单ID;
说明:在以上查询语句Where条件中使用了参数查询,参数使用的是?占位,?的出现顺序需要与数据集参数中定义的参数顺序一致。同时,?是Access中的查询参数设置方式,SQLServer中需要使用以@开始的字符串作为参数。
然后在“运行报表”按钮的Click事件中实现报表参数的设置并运行报表:
http://www.gcpowertools.com.cn/products/activereports_demo.htm
1、创建报表文件
在应用程序中创建一个名为rptOrderDetails.rdlx的ActiveReports报表文件,使用的项目模板为ActiveReports页面报表,创建完成之后从VS的报表菜单项中选择转换为连续页面布局(CPL)报表,将固定页面报表转换为连续页面报表。2、打开报表资源管理器,在参数节点中添加以下三个报表参数
3、打开报表资源管理器,并按照以下信息创建报表数据源
4、添加数据集
在新建的NWind_CHS数据源上鼠标右键并选择添加数据集菜单项4.1、添加数据集参数
说明:在添加参数设置值属性时,可以点击下拉列表,并选中表达式选项,然后在表达式编辑对话框中设置参数的值
4.2、设置数据集其他属性
常规-名称:Products
查询-查询:
SELECT产品.*,类别.类别名称,类别.说明AS类别说明,类别.图片AS类别图片,供应商.公司名称AS供应商,供应商.联系人姓名,供应商.城市,供应商.地址
FROM(供应商INNERJOIN产品ON供应商.供应商ID=产品.供应商ID)INNERJOIN类别ON产品.类别ID=类别.类别ID
ORDERBY产品.类别ID;
设置Products数据集的目的是为用户提供产品名称的选择,如最终运行图的左上角所示,因此我们需要为最开始设置的报表参数中的参数1设置可选值,右键点击报表参数1,修改,选择可选值标签,设置信息:
查询-查询:
SELECT
订单.订单ID,订单.客户ID,订单.订购日期,产品.产品名称,订单明细.数量,订单明细.单价,订单明细.折扣
from
((订单
inner join
订单明细
on
订单.订单ID=订单明细.订单ID)
inner join
产品
on
订单明细.产品ID=产品.产品ID)
where
(订单明细.产品ID
in
(?)
or
-1
in
(?))
and
DateDiff("d",?,订购日期)>0
and
DateDiff("d",?,订购日期)<0
ORDER BY
订单.订单ID;
说明:在以上查询语句Where条件中使用了参数查询,参数使用的是?占位,?的出现顺序需要与数据集参数中定义的参数顺序一致。同时,?是Access中的查询参数设置方式,SQLServer中需要使用以@开始的字符串作为参数。
5、设计报表界面
从VisualStudio工具箱中将Table控件添加到报表设计界面,并将OrderDetails数据集中的字段拖拽到Table的相应列中,得到的设计界面如下:6、运行程序
通过F5键运行程序,在参数面板中输入值之后,点击查看报表按钮,将得到以下结果:7、自定义报表参数面板
ActiveReports报表处理支持内置的报表参数面板,您还可以提供独立于报表Viewer控件的自定义报表参数面板,类似的实现效果如下:然后在“运行报表”按钮的Click事件中实现报表参数的设置并运行报表:
protectedvoidbtnRun_Click(objectsender,EventArgse)
{
GrapeCity.ActiveReports.PageReportreport1=newGrapeCity.ActiveReports.PageReport(newSystem.IO.FileInfo(Server.MapPath("PageReport1.rdlx")));
report1.Report.ReportParameters[0].DefaultValue.Values.Add(txtParam.Text);
WebViewer1.Report=report1;
}
源码下载地址:
相关文章推荐
- ActiveReports 报表应用教程 (8)---交互式报表之动态过滤
- ActiveReports 报表应用教程 (8)---交互式报表之动态过滤
- ActiveReports 报表应用教程 (8)---交互式报表之动态过滤
- ActiveReports 报表应用教程 (8)---交互式报表之动态过滤
- ActiveReports 报表应用教程 (8)---交互式报表之动态过滤
- ActiveReports 报表应用教程 (8)---交互式报表之动态过滤
- ActiveReports 报表应用教程 (9)---交互式报表之动态排序
- ActiveReports 报表应用教程 (9)---交互式报表之动态排序
- ActiveReports 报表应用教程 (9)---交互式报表之动态排序
- ActiveReports 报表应用教程 (9)---交互式报表之动态排序
- ActiveReports 报表应用教程 (9)---交互式报表之动态排序
- ActiveReports 报表应用教程 (9)---交互式报表之动态排序
- ActiveReports 报表应用教程 (9)---交互式报表之动态排序
- ActiveReports 报表应用教程 (12)---交互式报表之贯穿钻取
- ActiveReports 报表应用教程 (12)---交互式报表之贯穿钻取
- ActiveReports 报表应用教程 (10)---交互式报表之向下钻取(详细数据按需显示解决方案)
- ActiveReports 报表应用教程 (11)---交互式报表之文档目录
- ActiveReports 报表应用教程 (10)---交互式报表之向下钻取(详细数据按需显示解决方案)
- ActiveReports 报表应用教程 (11)---交互式报表之文档目录
- ActiveReports 报表应用教程 (11)---交互式报表之文档目录