zoukankan      html  css  js  c++  java
  • ActiveReports 交互式报表之向下钻取解决方案

      在 ActiveReports 中可以动态的显示或者隐藏某区域的数据,通过该功能用户可以根据需要显示或者隐藏所关心的数据,结合数据排序、过滤等功能可以让用户更方便地分析报表数据。

      本文中展示的是销售数据分析表实现方法,该报表包含每年销售数据汇总图表,月度销售统计,以及每月销售明细属性。通过年度销售数据可以向下专区到月度销售数据,从月度销售数据可以向下钻取到月度销售明细数据,

      1、创建报表文件

      在应用程序中创建一个名为 rptDrollDown.rdlx 的 ActiveReports 报表文件,使用的项目模板为 ActiveReports 页面报表,创建完成之后从 VS 的报表菜单项中选择转换为连续页面布局(CPL)报表,将固定页面报表转换为连续页面报表。

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

      名称:

      NWind_CHS

      类型:

      Micorsoft OleDb Provider

      OLE DB 提供程序:

      Microsoft.Jet.OLEDB.4.0

      服务器或文件名称:

      Data/NWind_CHS.mdb

      3、 添加数据集

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

      常规-名称:OrderDetails

      查询-查询:SAT答案

      SELECT DatePart("yyyy",订单.订购日期) as 订购年, DatePart("m",订单.订购日期) as 订购月, 订单.订单ID, 订单.客户ID, 订单.订购日期, 产品.产品名称,订单明细.数量, 订单明细.单价, 订单明细.折扣, 类别.类别名称 from ((( 订单inner join 订单明细 on 订单.订单ID = 订单明细.订单ID )inner join 产品 on 订单明细.产品ID = 产品.产品ID )inner join 类别 on 产品.类别ID = 类别.类别ID)ORDER BY DatePart("yyyy",订单.订购日期) DESC;

      4、设计报表界面

      从 Visual Studio 工具箱中将 BandedList 控件添加到报表设计界面,按照以下列表设置 BandedList 控件的属性:

      常规-数据集名称:

      OrderDetails

      分组-分组1:

      名称:BandedList1_Group1

      表达式:=[订购年]

      分组-分组2:

      名称:BandedList1_Group2

      表达式:=[订购月]

      在 BandedList1_Header 区域中添加以下控件,并设置相应属性:

      TextBox123

      默认属性设置

      TextBox14

      Value:=Fields!订购年.Value & " 年销售汇总"

      TextBox8

      Value:=Sum(Fields!数量.Value * Fields!单价.Value * ( 1 - Fields!折扣.Value),"BandedList1_Group1")

      在 BandedList1_Group1_Header 区域中添加以下控件,并设置相应属性:

      Chart1

      常规-数据集名称:OrderDetails

      系列值-系列标签:数量

      系列值-值:=Sum([数量] * [单价] * (1 - [折扣]))

      类别分组-名称:Chart1_CategoryGroup1

      类别分组-表达式:=[类别名称]

      类别分组-标签:=[类别名称]

      在 BandedList1_Group2_Header 区域中添加以下控件,并设置相应属性:

      TextBox3

      默认属性设置

      TextBox15

      常规-值:=[订购月] & " 月销售明细"

      TextBox11

      交互式排序选项卡的以下属性

      为文本框添加交互式排序功能:True

      排序表达式:=[订购月]

      选择数据区域或者分组:BandedList1_Group1

      选择数据区域或者分组:BandedList1_Group2

      TextBox12

      常规-值:=Sum([数量] * [单价] * ( 1 - [折扣]),"BandedList1_Group2")

      TextBox13

      交互式排序选项卡的以下属性

      为文本框添加交互式排序功能:True

      排序表达式=Sum([数量] * [单价] * ( 1 - [折扣]),"BandedList1_Group2")

      选择数据区域或者分组:BandedList1_Group1

      选择数据区域或者分组:BandedList1_Group2

      在 BandedList1_Details 区域中添加以下控件,并设置相应属性:

      TextBox10

      =Fields!订单ID.Value

      TextBox4

      =Fields!产品名称.Value

      TextBox5

      =Fields!数量.Value

      TextBox6

      =Fields!单价.Value

      TextBox7

      =Fields!折扣.Value

      TextBox9

      =Fields!数量.Value * Fields!单价.Value * ( 1 - Fields!折扣.Value )

      完成基本的报表界面设计之后,我们需要为报表添加向下钻取功能,在 ActiveReports 中是通过指定报表元素的Visibility属性来实现向下钻取操作,需要设置的元素如下:

      BandedList1_Group2_Header

      Visibility.Hidden = True

      Visibility.ToggleItem = TextBox123

      BandedList1_Details

      Visibility.Hidden = True

      Visibility.ToggleItem = TextBox123

      5、运行程序托福答案
     

  • 相关阅读:
    237. Delete Node in a Linked List
    430. Flatten a Multilevel Doubly Linked List
    707. Design Linked List
    83. Remove Duplicates from Sorted List
    160. Intersection of Two Linked Lists
    426. Convert Binary Search Tree to Sorted Doubly Linked List
    142. Linked List Cycle II
    类之间的关系
    初始化块
    明确类和对象
  • 原文地址:https://www.cnblogs.com/haosola/p/3504390.html
Copyright © 2011-2022 走看看