【问题标题】:Crystal Reports Suppress Group If Field Does Not Change如果字段未更改,Crystal Reports 会抑制组
【发布时间】:2019-09-30 12:18:20
【问题描述】:

如果某个字段在该组中没有更改,我想禁止该组。这是我的示例数据的屏幕截图(两个红框字段显示具有不变字段的组):

如您所见,reservation_number 10002 和 10014 这两个组应该被隐藏,因为它们的 amount 字段没有改变。

理想情况下,上面的截图应该是这样的:

请注意,一个组中可以有两个以上的amount 行。

【问题讨论】:

    标签: crystal-reports crystal-reports-2016


    【解决方案1】:

    按照以下流程进行

    创建一个公式@Initialize 并在下面编写代码并放在组标题中

    共享 numbervar 计数器; 计数器:=0

    再创建一个公式count 并在下面编写代码并详细说明您有数据行的位置

        Shared numbervar counter;
        if PreviousIsNull(amount)
                then counter:=counter+0
                else if previous(amount) = amount
                then counter:=counter+0
                else if next(amount) = amount
                then counter:=counter+0
    else counter:=counter+1
    

    再创建一个公式result 并放入groupfooter

    Shared numbervar counter;
    Shared Numbervar counter1:=0;
    counter1:=counter;
    counter
    

    去部门专家那里,压制并写下以下条件:

    EvaluateAfter({result})    ;
    Shared numbervar counter;
        if counter = 0
        then
        true
         else false
    

    使用下面的公式来抑制标题:

    EvaluateAfter({result});
    Shared Numbervar counter1;
    if counter1 = 0
            then
            true
             else false
    

    让我知道这是否可行,否则会建议其他方式

    【讨论】:

    • 我把这个放在哪个部分?我尝试了DetailsGroup Header #1 都没有成功。
    • 这将删除一行中只有两个相同数量的行,然后是其他数量的行,例如 10007,这是不应该的。
    • @WolfieeifloW 刚刚编辑了解决方案,请尝试告诉我
    • 最后一段代码应该放在哪里?如果我只把它放在Group Header 中,Details 仍然显示(反之亦然),如果我把它放在两者中,它与以前的问题相同,10007 没有显示。
    • 似乎仍然无法正常工作 - 我再次将最后一段代码放在哪里?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-31
    • 2013-12-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多