Crystal reports 基于详细信息中的项有条件地抑制节

Crystal reports 基于详细信息中的项有条件地抑制节,crystal-reports,Crystal Reports,让我们假设我在我的细节中有这些数据 项目一 项目二 项目三 项目四 项目五 如果细节部分中有第三项,我想取消隐藏页脚部分C 有什么好办法吗?。我试着制作一个公式,将其放在细节部分,然后将值传递到参数字段,但仍然没有结果 我希望你能在这里帮助我。谢谢 注: 我一直在做的事 创建两个公式字段,一个名为january1,另一个名为JanuarParameter 在细节部分中添加公式字段1月1日,并在其中添加此脚本 WhileReadingRecords; if {MyTable.MyItem} = "

让我们假设我在我的细节中有这些数据

项目一 项目二 项目三 项目四 项目五 如果细节部分中有第三项,我想取消隐藏页脚部分C

有什么好办法吗?。我试着制作一个公式,将其放在细节部分,然后将值传递到参数字段,但仍然没有结果

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

注:

我一直在做的事

创建两个公式字段,一个名为january1,另一个名为JanuarParameter

在细节部分中添加公式字段1月1日,并在其中添加此脚本

WhileReadingRecords;
if {MyTable.MyItem} = "Item Three"  then
{@janparameter} = "1"
else
{@janparameter} = "0"
在页脚的C部分,我写下了这个脚本

{@janparameter} = "0"

这意味着,如果{@janparmeter}值等于0,则页脚部分C将被抑制。但这对我来说根本不起作用。我希望有人能解决这个问题。

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

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

If {MyTable.Item} = "Item Three" Then True Else False
也就是说,如果项目是项目3,则抑制该部分,否则显示该部分

编辑1: 由于目标是抑制页脚而不是细节部分,因此上述解决方案不起作用

参数不能像变量一样使用。此外{@janparmeter}是一个公式而不是参数。参数以问号开始?不是一个,

如果{MyTable.MyItem}的值是第三项,@janparameter的值是1,那么january1公式当前所做的是在适当的细节上返回True。如果不是,则返回False

要实现您想要的,您可以使用变量。 将@january1公式的代码替换为以下代码:

WhilePrintingRecords;
booleanVar ItemThreeFound;
If {MyTable.MyItem} = "Item Three" Then ItemThreeFound := True;
WhilePrintingRecords;
booleanVar ItemThreeFound;
…在页脚C部分的抑制公式中,输入以下内容:

WhilePrintingRecords;
booleanVar ItemThreeFound;
If {MyTable.MyItem} = "Item Three" Then ItemThreeFound := True;
WhilePrintingRecords;
booleanVar ItemThreeFound;
编辑2: 要获得相反的行为,只需添加Not:


您的意思是使用数据库字段作为参数?真的可以吗?我的意思是,我还是个新手,但我想我们不能改变数据库字段的值,除了它的格式,所以我一直在使用参数字段。例如`如果right{Invoice.ItemCode},7=2305580,那么{@janparameter}=1`但是,当我在要隐藏的部分中的suppress部分中使用@janparameter时。即使有第三项,它仍会显示。该值不会随此公式更改。它将仅与字符串项3进行比较,如果它相等,则该部分将被抑制。根本不需要参数字段。哦,很抱歉,如果我的问题不是详细信息,我要抑制的不是详细信息部分,而是页脚部分c。如果我把它放在抑制公式中,同样的公式也会起作用吗?不,它不会像这样起作用。请编辑您的问题并添加详细要求。好的,只需编辑问题。我希望你能再次帮助我。