【问题标题】:Highlighting Values in a Crystal Reports Crosstab based on sibling values根据同级值突出显示 Crystal Reports 交叉表中的值
【发布时间】:2012-02-28 17:51:35
【问题描述】:

我有交叉表,其中有行列指示不同的类,然后是顶部的人名。

|         | Required | Person 1 | Person 2 | Person 3 |
| Class 1 | 8      6 | 1      6 | 3      6 | 4      6 | 
| Class 2 | 6      2 | 3      2 | 2      2 | 1      2 |

每个字段包含 2 个值第一个值是在课堂上花费的小时数,第二个字段是认证所需的小时数。

必填字段 id 我的总计摘要。

在交叉表专家中,字段定义如下。

行:

Command.descr -> 包含类名的字段

列:

Command.fullname -> 包含学生全名的字段

汇总字段:

Command.evlength 的总和 -> 在给定课程中花费的所有时间的总和

Max of @required -> 此公式根据课程名称返回所需的小时数

如果字段 Sum of Command.evlength 大于或等于 Max of @required 的值,我会尝试突出显示该字段。

我的解决方案是执行背景格式化。右键单击 Sum of Command.evlength 字段,选择格式化字段。单击边框选项卡,选中背景,然后输入公式。

我使用的公式是:

if CurrentFieldValue >= {@required} then color(152, 251, 152) else crNoColor

这不是正确的公式。我的交叉表已放置在页脚中,这导致 {@required} 包含网格中的最后一个值,在上面的示例中为 2。

根据我的研究,我认为我必须使用 GridRowColumnValue(row or column name) 来访问交叉表中 {@required} 的值,但我想不出正确的字符串来表示它。

有没有人可以让我正确地进行这种比较?

【问题讨论】:

    标签: highlighting crystal-reports-2008 crosstab


    【解决方案1】:

    令人沮丧的是,我认为您不能使用突出显示专家来与动态值进行比较。您可以交换列,然后添加以下公式:

    到 max_of_required 背景颜色:

    whileprintingrecords;
    global numbervar required_hrs := currentfieldvalue;
    crNoColor;
    

    到 sum_of_command.evlength 背景色:

    whileprintingrecords;
    global numbervar required_hrs;
    if currentfieldvalue >= required_hrs then
     crRed
    else
     crNoColor;
    

    我认为还有其他一些方法,但我对这些方法没有那么自信,所以从这里开始。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多