Crystal reports Crystal报告If语句

Crystal reports Crystal报告If语句,crystal-reports,Crystal Reports,我正在Crystal Reports中的一个项目中工作,在这个项目中,我试图根据数据是否存在来抑制一个部分。我遇到了一个问题,我通过If语句基于的布尔值被激活,即使不应该输入If语句 WhilePrintingRecords; Shared BooleanVar suppress_section; If NOT (ISNULL({Orders.Data_Entry_Date})) THEN "ENTERED" 但是,这不会打印输入的内容 WhilePrintingRecords; Shared

我正在Crystal Reports中的一个项目中工作,在这个项目中,我试图根据数据是否存在来抑制一个部分。我遇到了一个问题,我通过If语句基于的布尔值被激活,即使不应该输入If语句

WhilePrintingRecords;
Shared BooleanVar suppress_section;
If NOT (ISNULL({Orders.Data_Entry_Date})) THEN
"ENTERED"
但是,这不会打印输入的内容

WhilePrintingRecords;
Shared BooleanVar suppress_section;
If NOT (ISNULL({Orders.Data_Entry_Date})) THEN
(suppress_section := false)
这会将SUPPRES_section设置为False

我只是想知道为什么会发生这种情况,因为这对我来说是不合逻辑的。
谢谢。

晶体报告中有公式字段。公式部分有选项控件结构


如果条件为true\u part否则为false\u part

您需要更具体地说明问题……您是否针对相同的数据测试两个公式?在另一种情况下,你把公式放在哪里了……我发现你的公式太复杂了。。。。你可以找到一些简单的方法来完成这项任务。。让我知道你是否在相同的数据上得到相同的结果?如果你想在该字段为空时抑制你的详细信息部分,那么你所需要做的就是添加部分抑制公式
isnull({Orders.data\u Entry\u Date})
@Siva我的想法是我必须运行一个子报告来生成我报告的一部分,但是,我必须运行它两次,因为有两个不同的表可以存储数据,或者在两个表中都没有匹配数据的情况下,我希望它打印一个格式化的空白部分来填充数据。我意识到,如果没有数据,我可以取消显示报表,但是如果两个表中都没有数据,则报表的整个部分将被删除。所以我想,如果我可以在子报表运行后传回一个共享变量,我可以抑制w/cond。@Ryan Taylor没错……这里的一个问题是,如果没有数据,报表为空……在这种情况下,你会抑制什么……如果你有一些数据,需要隐藏,那么你可以应用抑制条件。如果没有数据,应用Suppress条件的必要性是什么…我希望我理解正确…如果你正在做什么,请告诉我different@Siva因此,子报表是一个格式化的表单,我们给客户填写,如果我们的系统中已经有数据,我们希望它自动填写表单的各个部分,但是,如果我们的系统中没有这些信息,我们希望子报表只显示为空白。但是,我必须运行子报表两次,因为我们有两个不同版本的表单,但客户只运行1。所以我希望它要么显示一个,要么显示另一个,而不是同时显示两个,如果没有任何内容,只显示一个空部分,而不是两个。