由于Crystal没有数据网格,我在SAP的水晶报告中使用VS2010 SQLServer的数据来自数据库,因为Crystal没有数据网格。
我怎样才能替换这些文本框的背景颜色?
答案 0 :(得分:2)
我有两种方法可以做到这一点。第一个是最简单但最不稳健的。在详细信息部分中,您只需添加如下背景颜色格式公式:if recordnumber mod 2 = 0 then crgray else crnocolor
第二种情况是,如果您需要更多地控制格式,请说明您是否根本没有显示详细信息部分,只是组页脚/标题。它只涉及跟踪单个布尔变量。在您想要触发的部分中,将其添加到背景颜色格式公式中:
whileprintingrecords;
booleanvar fliprow;
fliprow := not fliprow;
if fliprow then crgray else crnocolor
答案 1 :(得分:2)
创建自定义公式;称之为'Colorize':
//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;
将此公式添加到group-header部分,然后禁止它。
将石斑鱼标题的条件公式更改为:
WhilePrintingRecords;
Numbervar i;
Colorize(i);
答案 2 :(得分:0)
为文本框实现此目的。您将要创建一个自定义公式,我创建了“切换”
WhilePrintingRecords;
Global booleanVar g_bGreyRow := Not(g_bGreyRow);
然后插入一个文本框并添加“切换公式”字段。然后,您将要选择文本框并设置文本格式。选择边框标签并选中背景框,然后在自定义公式编辑器中添加
Global booleanVar g_bGreyRow;
If g_bGreyRow
Then color(231, 231, 231)
Else crNoColor
现在,您的文本框将打开和关闭背景色。不过,有一个小问题,那就是您会看到文本True或False。我先选择“编辑文本...”,然后选择文本并右键单击以设置文本格式,以解决此问题。我将文本的颜色设置为白色,大小设置为1,然后将“切换”文本的格式从true和false更改为T和F,这基本上使它不可见。另外,请确保将文本框移到后面。当我不想或不需要更改整个部分的背景而只是一部分时,我使用此方法。