首页 / 知识
将交替的行颜色添加到SQL Server报表服务报表中
2023-04-14 05:47:00

Add alternating row color to SQL Server Reporting services report如何在SQL Server Reporting Services报表中为交替的行加阴影? 编辑:下面列出了许多很好的答案-从快速,简单到复杂而全面。 las,我只能选择一个... 转到表行的BackgroundColor属性,然后选择"表达式..." 使用以下表达式:
此技巧可以应用于报告的许多区域。 在.NET 3.5+中,您可以使用:
不寻找代表-我只是自己研究了这个问题,并认为我会分享。 当对行进行分组时,使用IIF(RowNumber ...)可能会导致一些问题,另一种选择是使用简单的VBScript函数确定颜色。 这需要付出更多的努力,但是当基本解决方案不够用时,这是一个不错的选择。 基本上,您将代码添加到报表中,如下所示...
然后在每个单元格上,如下设置BackgroundColor:
有关此Wrox文章的完整详细信息
当我使用Catch22的解决方案时,我得到了象棋效果,我想是因为我的矩阵在设计上有多个列。
我已经更改了@ Catch22的解决方案,因为我不喜欢必须更改每个颜色的想法,因此我不喜欢进入每个字段的想法。这在需要更改颜色变量的字段众多的报表中尤其重要。
注意,我已经将功能从接受颜色的功能更改为包含要使用的颜色的功能。 然后在每个字段中添加:
这比手动更改每个字段的背景色的颜色要强得多。 我注意到的一件事是,前两种方法都不了解第一行应在组中是什么颜色。该组将从与上一组的最后一行相反的颜色开始。我希望我的组始终以相同的颜色开始...每个组的第一行应始终为白色,而下一行应为彩色。 基本概念是在每个组开始时重置切换,因此我添加了一些代码:
所以我现在有三种不同的细胞背景: 这对我有用。如果您希望分组行是无色或不同的颜色,则如何更改它应该很明显。 请随时添加有关如何改进此代码的注释:我对SSRS和VB都是陌生的,因此我强烈怀疑还有很多改进的余地,但是基本思想似乎是正确的(而且很有用)对我来说),所以我想把它扔在这里。 对于组页眉/页脚:
您还可以使用它来"重置"每个组中的行颜色计数。我希望每个子组中的第一条详细信息行都以怀特开头,并且此解决方案(当用于详细信息行时)允许发生这种情况:
请参阅:http://msdn.microsoft.com/zh-cn/library/ms159136(v=sql.100).aspx
Michael Haren的解决方案对我来说很好。但是我收到警告说预览时"透明"不是有效的BackgroundColor。找到了一个快速修复
不使用VB来解决此问题的唯一有效方法是将行分组模值"存储"在行分组内(以及列分组外),并在列分组内显式引用它。我在找到这个解决方案 http://ankeet1.blogspot.com/2009/02/alternating-row-background-color-for.html 但是Ankeet并不是最好的解释发生的事情,他的解决方案推荐了不必要的步骤,即在恒定值上创建分组,因此,这是我针对具有单个行组RowGroup1的矩阵的分步过程: 将RowGroupColor的文本框的值设置为
将所有行单元格的BackgroundColor属性设置为
假以将其对客户隐藏。 瞧!这也解决了该线程中提到的许多问题:
如果SSRS可以公开"文本框上的值"之外的属性,那就太好了。您可以将这种计算填入行组文本框的BackgroundColor属性中,然后在所有其他单元格中将其引用为ReportItems!RowGroup.BackgroundColor。 嗯,我们可以做梦...
我的问题是我希望连续的所有列都具有相同的背景。我按行和按列进行分组,并在此处使用前两个解决方案,使第1列中的所有行都带有彩色背景,第2列中的所有行都带有白色背景,第3列中的所有行都带有彩色背景, 等等。好像(Catch22解决方案的)
我想要的是使第1行中的所有列具有白色背景,然后使第2行中的所有列具有彩色背景,然后使第3行中的所有列具有白色背景,依此类推。我通过使用选定的答案获得了这种效果,但没有传递
认为这对其他人可能有用。 我认为这里不讨论此技巧。就是这样
在任何类型的复杂矩阵中,当您想要交替使用单元格颜色(逐行或逐列)时, 如果您想明智地选择其他颜色的细胞, 组",在1(使用表达式)上创建一个假的父组,名为 " FakeParentGroup"。 或者,使用以下背景颜色表示
就这样。 明智的做法是交替使用颜色行,只是您必须相应地编辑解决方案。 注意:在这里,有时您需要相应地设置单元格的边框,通常它会消失。 另外,当您创建假父组时,请不要忘记删除报告中出现的报告中的值1。 @Aditya的答案很好,但在某些情况下,如果行的第一单元格(用于行背景格式)缺少值(在具有列/行组和值的复杂表格中),则格式设置将被取消。
@Aditya的解决方案巧妙地利用了
希望这可以帮助。 如果整个报表需要交替显示颜色,则可以使用Tablix绑定的数据集作为报表上整个报表范围的标识行号,并在RowNumber函数中使用它。
我在带有行空格的分组Tablix上尝试了所有这些解决方案,但没有一个解决方案适用于整个报表。结果是重复的彩色行,其他解决方案导致交替的列! 这是我使用列数为我编写的功能:
对于7列Tablix,我将此表达式用于行(单元格)的背景色:
有人可以在下面的代码中解释从其余字段变为false背后的逻辑(从上面的帖子) 我注意到的一件事是,前两种方法都不了解第一行应在组中是什么颜色。该组将从与上一组的最后一行相反的颜色开始。我希望我的组始终以相同的颜色开始...每个组的第一行应始终为白色,而下一行应为彩色。 基本概念是在每个组开始时重置切换,因此我添加了一些代码:
所以我现在有三种不同的细胞背景: 这对我有用。如果您希望分组行是无色或不同的颜色,则如何更改它应该很明显。 请随时添加有关如何改进此代码的注释:我对SSRS和VB都是陌生的,因此我强烈怀疑仍有很大的改进空间,但是基本思路似乎是合理的(而且很有用)对我来说),所以我想把它扔在这里。 我的矩阵数据中缺少值,因此无法获得ahmad的解决方案,但该解决方案对我有用 基本思想是在包含颜色的最里面的组上创建一个子组和字段。然后根据该字段的值为行中的每个单元格设置颜色。 仅仅因为以上答案似乎都不适合我的矩阵,所以我在这里发布了此内容: http://reportingservicestnt.blogspot.com/2011/09/alternate-colors-in-matrixpivot-table.html 当同时使用行和列组时,我遇到一个问题,即即使是同一行,颜色也会在列之间交替。我通过使用仅在行更改时才更改的全局变量解决了此问题:
现在,在要替换的行的第一列中,将颜色表达式设置为:
-- 在其余的列中,将它们全部设置为:
这应该仅在绘制第一列之后才使颜色交替。 这也可以(不可验证地)提高性能,因为它不需要为每一列进行数学计算。 从这里对我有用的其他答案的略微修改。我的小组有两个要分组的值,因此我可以将它们都放在第一个参数中,并带有+号以使其正确交替
|
最新内容
相关内容
命令行添加linux启动?
命令行添加linux启动?,系统,软件,工具,环境,初级,地址,发行,命令,目录,终端,linux命令行如何运行程序?1、命令行界面:- 打开终端:在大多数Linuxlinux命令行字体颜色?
linux命令行字体颜色?,系统,地址,电脑,颜色,界面,字体,关键字,字符,文本,命令,linux字符界面的背景颜色和文字可以改么进入字符界面 为了在Lin服务器重启命令linux?
服务器重启命令linux?,工作,标准,设备,服务,系统,名称,命令,百度,网络,密码,怎么使用linux命令重启服务器1、shutdown。poweroff。init。reboolinux服务端常用命令?
linux服务端常用命令?,工作,地址,系统,网络,基础,命令,标准,工具,信息,管理,linux常用命令linux系统常用操作命令如下:ls:全拼list,功能是列出目linux禁用服务命令行?
linux禁用服务命令行?,服务,系统,软件,管理,工具,信息,状态,平台,连续,技术,linux系统ssh服务关闭命令1、exit就可以呀 输入exit并回车就可以linux停服务常用命令?
linux停服务常用命令?,地址,工作,系统,命令,服务,信息,标准,管理,代码,进程,linux常用命令linux系统常用操作命令如下:ls:全拼list,功能是列出目添加网卡linux命令?
添加网卡linux命令?,网络,地址,信息,状态,系统,网卡,技术指标,材料,下来,服务,如何在linux系统下配置无线网卡1、首先,查看对应的PCI设备,可以看linux添加命令参数?
linux添加命令参数?,系统,管理,工作,基础,命令,情况,网络,工具,代码,环境,别不信!掌握好这20条Linux基础命令,让你的操作效率直接双倍1、系统linux命令颜色含义?
linux命令颜色含义?,系统,设备,文件,代码,名字,地址,电脑,表示,颜色,代表,在linux下为什么有的文件名字有颜色在Linux中,文件的颜色都是有含义linux服务器删除命令?
linux服务器删除命令?,系统,服务,管理,情况,命令,工作,互动,地址,软件,较大,linux系统里怎么删除已经安装的dns服务器如果是清除NSCD上的Cachelinux添加命令权限?
linux添加命令权限?,密码,系统,权限,数字,地址,文件,命令,用户,表示,文件夹,在Linux中可以使用命令()针对文件newfiles.txt为所有用户添加执行linux开启服务命令?
linux开启服务命令?,服务,标准,设备,工作,网络,系统,密码,命令,服务器,终端,怎么使用linux命令重启服务器1、shutdown。poweroff。init。reboo