交替行或文本框的背景颜色(Alternating the background color of r

2019-09-26 11:01发布

我有数据从数据库中来水晶报表由SAP与VS2010的SQLServer,在文本框中显示的,因为水晶没有数据网格。

哪有我交替的这些文本框的背景颜色?

Answer 1:

创建自定义式; 称之为“彩色化”:

//Color every other row as light tan (alter RGB to suit tastes)
Function (Numbervar row, Optional Numbervar Color := RGB(239,235,220))

If Remainder(row,2)=0 Then
    Color
Else
    crNoColor

添加下面的详细信息部分的背景颜色的条件格式化公式:

Colorize(RecordNumber)

//or over-ride color
Colorize(RecordNumber, crSilver)

您也可以与组头部分通过将GroupNumber关键字使用它:

Colorize(GroupNumber)

如果你正在做什么花哨的瓦特/分组,您可能需要使用一个磨合的总公式:

//{@G1}
WhilePrintingRecords;
Numbervar i;
i:=1+1;

添加这个公式组报头部分,然后压制它。

更改石斑鱼头的条件公式:

WhilePrintingRecords;
Numbervar i;
Colorize(i);


Answer 2:

有两种方法,我做到这一点。 第一种是最简单的,但至少稳健。 在细节部分,你可以添加背景颜色格式公式是这样的: if recordnumber mod 2 = 0 then crgray else crnocolor

第二个是,如果您需要在您的格式更多的控制权,说如果你不是在所有显示的细节部分,只是组页脚/头。 它只是涉及到跟踪单个布尔变量的。 在要触发器的部分,将它添加到您的背景颜色格式公式:

 whileprintingrecords; booleanvar fliprow; fliprow := not fliprow; if fliprow then crgray else crnocolor 



Answer 3:

要为文本框实现这一目标。 你要创建一个自定义公式,我创建了“切换”

WhilePrintingRecords;

Global booleanVar g_bGreyRow := Not(g_bGreyRow);

然后插入一个文本框,并添加切换公式字段。 然后,你将要选择的文本框和格式化文本。 选择边框选项卡,选中背景框,然后在自定义公式编辑器中添加

Global booleanVar g_bGreyRow;
If g_bGreyRow
Then color(231, 231, 231)
Else crNoColor

现在你的文本框将打开和关闭的背景颜色。 有一个小问题,虽然那是你将看到的文字真或假。 我解决了这个问题,首先选择编辑文本...然后选择文本格式的文本,然后右键单击。 我的文字为白色,大小颜色设置为1,然后我改变了切换文本的格式从真假至T和F,这使得它基本上是不可见的。 另外,还要确保你的文本框移动到后面。 我用这个方法的时候,我不想要或需要的整个章节的背景改变,只是一部分。



文章来源: Alternating the background color of rows or text boxes