在一些统计报表中,利用树形结构报表来实现维度钻取功能是十分常见的。通过逐级钻取,可以快速查看更细粒度的指标数据,如项目施工进度报告等。

使用葡萄城报表控件——ActiveReports ,即可轻松设计树形结构报表,以及设置进度条显示等功能。

什么样的报表样式被称为树形结构报表呢?让我们先来看看“树形结构”报表的展示样式。

了解了树形结构报表模板的样式,下面我们就来详细讲解如何使用ActiveReports 完成“基于.NET架构的动态树形结构报表”的设计步骤。

一、绑定数据源和数据集

动态报表与静态报表最大的区别,在于能否绑定数据源和数据集。要实现一张专业的“树形结构”报表,我们需要绑定的数据结构是什么样的呢?如下,就是典型的“树形结构”报表数据源,使用ActiveReports 链接该数据源:

二、拖入表格组件,进行分组设计

如下是ActiveReports 报表设计器中的截图,子分组是编号,父分组是上级编号。

三、优化报表样式

为了使主分组和子分组之间有一个缩进的功能,以便于更好地区分信息。这里,我们需要对边距进行设置:左边距 = 5 + (Level() * 25) & "pt"。

其中level()代表了分组是第几级:

四、添加展开、合并按钮

这里,主要是为树形结构报表添加自分组合并和展开功能,也就是“+”、“-”按钮的功能设置。

由于要在项目名称这里添加一个可用于“合并和展开”的按钮,所以要在可见性区域,绑定项目名称对应的文本框:TextBox4

切换图表的样式,有如下属性:Expanded(展开)和 Collapsed(合并)

五、显示进度条

在此报表模板中,进度条是通过图像(image)控件来显示的。

要显示进度条,只需拖入一个容器到table里,然后在容器里放入一个图像(image)控件。接下来进行如下设置:

选择进度条 databar:

调整值和颜色的设置:

六、预览效果

如上,一张树形结构报表就设计好了,全程基本都是通过拖拉拽的方式,无需编写一段代码,即可轻松设计报表模板,这就是ActiveReports 的魅力所在。当然,ActiveReports 的报表设计能力不仅于此,学习更多应用教程,请访问 ActiveReports 技术论坛

基于.NET架构的树形动态报表设计与应用的更多相关文章

  1. 3-1. 基于epoll架构的视频采集端设计

    精通epoll架构 epoll:Linux中最优秀的多路复用机制! 与select .poll区别 1.select和poll没有太大区别,除了select有文件描述符限制(1024个).select ...

  2. Java生鲜电商平台-系统报表设计与架构

    Java生鲜电商平台-系统报表设计与架构 说明:任何一个运行的平台都需要一个很清楚的报表来显示,那么作为Java开源生鲜电商平台而言,我们应该如何设计报表呢?或者说我们希望报表来看到什么数据呢?   ...

  3. 基于 MongoDB 动态字段设计的探索 (二) 聚合操作

    业务需求及设计见前文:基于 MongoDB 动态字段设计的探索 根据专业计算各科平均分 (总分.最高分.最低分) public Object avg(String major){ Aggregatio ...

  4. MIS系统开发利器,实施、维护人员自定义报表的福音,AgileEAS.NET SOA平台动态报表指南

    一.前言 AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台.用于帮助中小型软件企业建立一条适合市 ...

  5. 架构师修炼 III - 掌握设计原则

    关于软件的设计原则有很多,对于设计原则的掌握.理解.实践及升华是架构师的一项极为之必要的修炼. 记得在12年前第一次阅读<敏捷开发>时,五大基本设计原则就深深地植入到我的脑海中一直影响至今 ...

  6. HighCharts SVN IReport进行PDF报表设计--模板

    BOS物流项目笔记第十五天 HIghcharts是很强大的图表绘制插件,它是基于纯js绘制的.当然地,对于图表也会有很多操作了.下面就我工作时遇到的一些比较常见的highcharts的操作进行小结,不 ...

  7. 基于WebServices简易网络聊天工具的设计与实现

    基于WebServices简易网络聊天工具的设计与实现 Copyright 朱向洋 Sunsea ALL Right Reserved 一.项目内容 本次课程实现一个类似QQ的网络聊天软件的功能:服务 ...

  8. 如何基于LSM-tree架构实现一写多读

    一  前言 PolarDB是阿里巴巴自研的新一代云原生关系型数据库,在存储计算分离架构下,利用了软硬件结合的优势,为用户提供具备极致弹性.海量存储.高性能.低成本的数据库服务.X-Engine是阿里巴 ...

  9. 基于AgileEAS.NET企业应用平台实现基于SOA架构的应用整合方案-开篇

    开篇 系统架构的文章,准备在这段时间好好的梳理和整理一下,然后发布基于AgileEAS.NET平台之上的企业级应用架构实践,结合具体的案例来说明AgileEAS.NET平 台之上如何进行系统的逻辑架构 ...

随机推荐

  1. BZOJ 2834: 回家的路 Dijkstra

    按照横,竖为方向跑一个最短路即可,算是水题~ #include <bits/stdc++.h> #define N 200005 #define E 2000000 #define set ...

  2. Python面试题: 判断IP地址是否合法

    题目: 给出一个字符串, 判断其是否是是合法的IP(IPv4)地址 思路 将字符串按"."分割成4段得到一个列表 逐个判断列表中的字符串是否数字格式并且在0~255之间, 是在新列 ...

  3. 使用Flask搭建基于unittest的简单用例挑选及执行平台

    在用例组织上,unittest的Test Suite的拥有非常好的灵活性,然而Test Suite一般要提前编制好,添加和组织用例必须使用代码,不方便使用. 本文使用 Flask + unittest ...

  4. 最近公共祖先lca模板

    void dfs(int x,int root){//预处理fa和dep数组 fa[x][0]=root; dep[x]=dep[root]+1; for(int i=1;(1<<i)&l ...

  5. 给类或者类的对象添加打印内容 def __repr__(self)

    通常情况下 打印一个类或者类的对象 会显示 xx.xx object at 0xaaaaabbbbbbb  只会告诉你这个对象或者类 储存在某个内存中,这是因为你的类没有实现相关的打印功能 print ...

  6. python 找出数组重复的元素

    """ 从头扫到尾,只要当前元素值与下标不同,就做一次判断,numbers[i]与numbers[numbers[i]], 相等就认为找到了重复元素,返回true,否则就 ...

  7. fastadmin 全手动添加规则

    全手动的话 你需要在规则管理里面添加规则 然后角色组就可以设置权限了如果是自动的话 应该就都生成了权限设置 1.增删改查的规则也要添加哦 2.角色组勾选相应的规则 https://ask.fastad ...

  8. react-hook的简单的动画插件react-simple-animate(其实是react插件,但是这里只介绍react-hook的简单用法)

    1.useAnimate(普通anima动画的形式) (1)js const animate = useAnimate({ complete: { display: 'none' }, //动画完成的 ...

  9. tkinter入门-布局方式pack(), grid(), place()

    pack 转载于https://www.cnblogs.com/kongzhagen/p/6144588.html\ 1. 使用pack函数的时候,默认先使用放到上面的,然后依次从上向下排 2. 可接 ...

  10. centos7 安装 ftp 服务及创建 repo源

    安装 ftp 服务 安装和启动服务:# yum install vsftpd# systemctl enable vsftpd# systemctl start vsftpd 配置文件: vi /et ...