润乾报表隔行异色,N行异色,分层异色

2024-03-08 05:10

本文主要是介绍润乾报表隔行异色,N行异色,分层异色,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

          隔行异色是润乾报表的一大特色,它使得报表的可读性更强,页面也更加美观。利用背景色单元格内的IF函数及row()函数获取当前行号,可以让相邻行的单元格异色。

        其实还有一种拓展性更强的方式:case()函数,case(row()%2,list(0),rgb(255,0,0),list(1), rgb(0,0,255))即表示改行的行号对2求余,偶数行红色,奇数行蓝色。可以通过用户自定义增加异色行数,case(row()%3,list(0),rgb(255,0,0),list(1),rgb(0,0,255),list(2),rgb(0,0,255)),则改为3行异色,对3求余,余数分别是0,1,2的行号颜色为红色,蓝色,绿色。

          rand()函数表示随机生成一个大于等于0小于1的数字,此函数可以为报表提供动态随机颜色,比如为所有单元格设定背景色rgb(int(rand()*255), int(rand()*255), int(rand()*255))即可实现全表全色随机,但是rand()在一次表运算时,是一个固定值,表内所有的rand()函数都返回同一值,而且只在每次重新预览或刷新网页时改变,因此rand()只能提供一个动态偏移量。

        可以利用行号的不同来进行色彩分布,比如设定颜色如下:

rgb((row()*row()*row()*row()+1000*rand()*row())%255,(row()*row()*row()+1000*rand()*row())%255,(row()*row()+1000*rand()*row())%255)

        则能实现每次颜色都各不相同,深浅分布也居中

 

        行号的利用在合并格里并不能得到很好的表现,因为合并格的行号默认为最顶端行号,将会出现下图的效果:

        当然,可以在第一列后加一个隐藏的辅助运算列,逐行递加,然后根据该列value值进行隔行异色,第一列表现得不错,但是在后面的颜色衔接上还是显得唐突:

        那么如何才能让每一个子类的首行继承父类的颜色并且加入一种新的颜色进行隔行异色呢?如下图:

        保证了每一行的颜色连贯性,并且在数据的子类细分上,颜色也各有子类区分。

方法依然是为每一个group分组设定隐藏辅助运算列B、D、F:

        但是在逻辑上要求比较严谨:

D2单元格表达式:=b=b+if((row(C2)-row(B2))==0 and (b+B2)%2==0,0,1)*1。

F2单元格表达式:=c=c+if((row(E2)-row(D2))==0 and (c+D2)%2==0,0,1)*1。

        这样能够保证子类递加,而且首行奇偶性跟随父类。

再为D2的背景色根据B2扩展新颜色:if(B2{}%2==0,if(value()%2==0,rgb(153,255,153),rgb(255,255,153)),if(value()%2==0,rgb(255,153,255),rgb(255,153,153)))

其中标红的为B2格原有颜色,另两种是新增颜色

 

F2的背景色设定为:

if(B2{}%2==0,

    if(D2{}%2==0,

        if(value()%2==0,

            rgb(153,255,153),

            rgb(204,255,204)

        ),

        if(value()%2==0,

            rgb(255,255,204),

            rgb(255,255,153)

        )

    ),

    if(D2{}%2==0,

        if(value()%2==0,

            rgb(255,153,255),

            rgb(255,204,255)

        ),

        if(value()%2==0,

            rgb(255,204,204),

            rgb(255,153,153)

        )

    )

)

 

 

这篇关于润乾报表隔行异色,N行异色,分层异色的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/786117

相关文章

多线程解析报表

假如有这样一个需求,当我们需要解析一个Excel里多个sheet的数据时,可以考虑使用多线程,每个线程解析一个sheet里的数据,等到所有的sheet都解析完之后,程序需要提示解析完成。 Way1 join import java.time.LocalTime;public class Main {public static void main(String[] args) thro

BIRT报表script

1.隔行高亮显示 1. 在布局(Layout)中,选择Table-Detail的行。如下图:   2. 然后选择Script,打开脚本窗口顶部的方法列表并选择onPrepare,如图所示。 var count=0;   3. 最后打开脚本窗口顶部的方法列表并选择 onCreate,如图所示: count++; if (count % 2 != 0) {   style.se

Birt报表开发实战

我就截图描述得了,没什么含金量,看图基本明白的。 1.开始 a.创建报表文件 b.数据源配置 c.配置数据集 2.网格报表 拖拉式操作,很方便 3.预览效果 其他报表的操作也基本不难,就不扯了! 2.级联参数 官方视频教程:http://demo.actuate.com/demos/cascade/cascade.html

BIRT--商业智能和报表工具,从零开始

1.简介 BIRT (Business Intelligence and Reporting Tools), 是为 Web 应用程序开发的基于 Eclipse 的开源报表系统,特别之处在于它是以 Java 和 JavaEE 为基础。BIRT 有两个主要组件:基于 Eclipse 的报表设计器,以及部署到应用服务器上的运行时组件。 2.下载 官网下载网址:http://download.ec

BIRT 报表的自动化测试

来源:http://www.ibm.com/developerworks/cn/opensource/os-cn-ecl-birttest/如何为 BIRT 报表编写自动化测试用例 BIRT 是一项很受欢迎的报表制作工具,但目前对其的测试还是以人工测试为主。本文介绍了如何对 BIRT 报表进行自动化测试,以及在实际项目中的一些测试实践,从而提高了测试的效率和准确性 -------

JavaEE应用的分层模型

不管是经典的JAVAEE架构,还是轻量级JavaEE架构,大致上都可以分为如下几层: 1、Domain Object(领域对象)层:此层由一系列的POJO(Plain Old Java Object)组成,这些对象是该系统的Domain Object,往往包含了各自所需实现的业务逻辑方法。 2、DAO(Data Access Object,数据访问对象)层:此层由一系列的DAO组件组成,这些D

可测试,可维护,可移植:上位机软件分层设计的重要性

互联网中,软件工程师岗位会分前端工程师,后端工程师。这是由于互联网软件规模庞大,从业人员众多。前后端分别根据各自需求发展不一样的技术栈。那么上位机软件呢?它规模小,通常一个人就能开发一个项目。它还有必要分前后端吗? 有必要。本文从三个方面论述。分别是可测试,可维护,可移植。 可测试 软件黑盒测试更普遍,但很难覆盖所有应用场景。于是有了接口测试、模块化测试以及单元测试。都是通过降低测试对象

十三、我们应当怎样做需求分析:查询报表分析

在我以往的用例分析中,使用这样格式的用例模式,对于大多数业务操作流程来说是得心应手的,但对于有些功能来说总感觉不对劲。感觉不对劲的,就是那些查询、汇总与报表功能。对于这部分功能,需要我们描述的不是什么操作流程,而更重要的是那些数据项、数据来源、报表格式、数据链接,以及使用者、使用频率的说明。而这些,在以往的用例说明格式中统统都没有,怎么办呢?俗话说“东西是死的人是活的”,把我们的用例格式改改吧。

Jasperreports+jaspersoft studio学习教程(八)- 报表分页和大量数据内存处理

9.1 设计报表模板 9.1.1 使用Table组件新建模板(步骤参考教程七)如下: 9.1.2 模板自带变量 $V{PAGE_NUMBER} :代表当前页数(可以是页码也可以是页数,通过TextField的计算时间的不同值来设置) $V{PAGE_COUNT} :当前页面中记录的数目 $V{groupname_COUNT} :   代表当前组的记录数 $V{COLUMN_NU

Jasperreports+jaspersoft studio学习教程(七)- 子报表Subreport(父子报表互相传值)

转载:https://blog.csdn.net/shiyun123zw/article/details/79221708 有很多人都说Jasperreports不适合中国式复杂报表,实际上运用好父子报表可以解决大部分问题了。例如下面的表。每个学生的学科数目不固定,且每个学生后有相当于小计的平均分。有点复杂度的报表,可以使用子报表解决。 8.1 设计报表模板 8.1.1 新建主模板De