根据项目的细节有条件地抑制部分

时间:2018-01-29 08:02:50

标签: crystal-reports

让我说我的详细信息中有这些数据

  1. 第一项
  2. 第二项
  3. 第三项
  4. 第四项
  5. 第五项
  6. 我想压制(隐藏)"页脚部分C"如果有"第三项"在"细节部分"。

    这有什么好的伎俩吗?我已经尝试制作一个公式并将其放在详细信息部分中,然后将值传递给参数字段但仍然没有结果。

    我希望你能在这里帮助我。感谢

    注意:

    我一直在做什么。

    创建2个公式字段,一个名为january1,另一个名为janparameter

    添加公式字段" january1"在里面有这个脚本的详细信息部分

    You cannot run CocoaPods as root

    和"页脚C" in"抑制(No Drill Down)"我放下了这个剧本

    WhileReadingRecords;
    if {MyTable.MyItem} = "Item Three"  then
    {@janparameter} = "1"
    else
    {@janparameter} = "0"
    

    表示如果{@janparameter}值相等" 0"那么"页脚C"将被压制。但这对我来说根本不起作用。我希望有人可以解决这个问题。

1 个答案:

答案 0 :(得分:0)

在详细信息部分的抑制公式中添加以下代码:

{MyTable.Item} = "Item Three"

{MyTable.Item}应替换为数据库表的相应字段。
以上是简短版本:

If {MyTable.Item} = "Item Three" Then True Else False

这意味着,如果该项目为"Item Three",则取消其他部分显示该部分。

编辑1:

由于目标是抑制页脚而不是详细信息部分,因此上述解决方案不起作用。

不能使用参数,因为它是变量。此外,{@janparameter}是公式而不是参数。参数以问号?开头,而不是@

如果january1的值为“第3项”且True的值为{,则{MyTable.MyItem} - 公式当前执行的操作是返回@janparameter相应的详细信息{1}}。如果没有,则返回1

要实现您想要的功能,您可以使用变量。
用以下内容替换False - 公式的代码:

@january1

...并且在“Footer Section C”的抑制公式中提出以下内容:

WhilePrintingRecords;
booleanVar ItemThreeFound;
If {MyTable.MyItem} = "Item Three" Then ItemThreeFound := True;

编辑2:

要获得相反的行为,只需添加WhilePrintingRecords; booleanVar ItemThreeFound;

Not