仅在Crystal Reports中的可见详细信息上显示替代颜色

时间:2015-12-16 21:22:20

标签: crystal-reports suppress alternate

我的抑制记录公式中有以下公式:

if {status.code} in ['1LS','2LS','3LS','PCA','BIR','BTS','CCC','COD','FAC','IAP','IBP',
  'IND','INF','INP','INR','ISN','LOC','LS2','MIN','NAR','NAU','PPL','RSR','RTS','SLD',
  'SSP','SUS','UPD'] then
    true
else
    false;

然后在我的着色公式中我有经典:

If RecordNumber Mod 2 = 0 Then 
    crSilver 
else
    crNoColoR

问题是着色不是交替的,因为它引用的所有状态代码不仅仅是可见的。关于如何让可见的替代着色的任何想法?

1 个答案:

答案 0 :(得分:0)

内置的特殊字段RecordNumber将从数据库中提取您获取的记录号,无论其是否被抑制。您只能为可见记录创建自己的记录计数器,然后根据该计数器着色。

  1. 创建公式字段 ff_MyRecNo并将其值与记录抑制公式一起设置为:

    WhilePrintingRecords;
    if {status.code} in ['1LS','2LS','3LS','PCA','BIR','BTS','CCC','COD','FAC','IAP','IBP',
      'IND','INF','INP','INR','ISN','LOC','LS2','MIN','NAR','NAU','PPL','RSR','RTS','SLD',
      'SSP','SUS','UPD'] then 
        // ignore suppressed records
    else
        // count other records
        numberVar recNo := recNo + 1;
    
  2. ff_MyRecNo放入详细信息部分并禁止显示。
  3. 将替代着色公式更改为:

    WhilePrintingRecords;
    if {@ff_MyRecNo} mod 2 = 0 then
        crSilver
    else
        crNocolor