Crystal 报告抑制子报告的问题

Crystal Reports suppress issue on Sub Reports

为什么子报表的某些列不能用放在其他列中的相同代码进行抑制。其他列抑制成功,只有 header 不抑制。

我已经尝试在子报告中进行抑制。当我试图抑制整个子报表部分时,整个报表不显示任何数据。

If isNull({CTA_Detail_3.PROJECT_NUM}) THEN TRUE
Else If 
    totext({CTA_Detail_3.PROJECT_NUM}) <> totext({?Pm-CTA_Head.PROJECT_NUM}) OR
    totext({CTA_Detail_3.PROJECT_PURPOSE}) <> totext({?Pm-CTA_Head.PROJECT_PURPOSE}) OR
    totext({CTA_Detail_3.PROJECT_TIRE_NO}) <> totext({?Pm-CTA_Head.PROJECT_TIRE_NO}) OR
    totext({CTA_Detail_3.EXAM_DATE_CUT}) <> totext({?Pm-CTA_Head.EXAM_DATE_CUT}) Then TRUE

如果 CTA_DETAIL_3.PROJECT_NUM 为 NULL

,则不应显示子报告

尝试将抑制公式中正在评估的字段放在它们未按预期工作的部分中。问题很可能是它们尚未包含公式计算为真所需的值。

在您提供的公式的第一行中,您正在测试 NULL 值。它可能将该字段解析为空字符串而不是 NULL,因此您可能还想通过如下修改公式来测试该条件:

If isNull({CTA_Detail_3.PROJECT_NUM}) Or {CTA_Detail_3.PROJECT_NUM} = "" THEN TRUE

我试图养成总是通过测试空字符串来测试空值的习惯,因为这有助于确保两种情况都由公式处理。