首页 文章

是否可以根据各种条件详细抑制组头?

提问于
浏览
0

我有一个组1和组2的报告 . 出于格式化目的,组2 Headers 和详细信息被禁止,所有信息都显示在组2页脚中 . 如果满足某个条件,我已设置报告以抑制组2页脚,这意味着有时组1 Headers 下的整个部分是空白的,我想要禁止它 .

以下是它的设置方式

组1 - 员工组2 - 客户端(已抑制)详细信息(已抑制)客户端名称field1字段2字段3字段4

对于字段1-4,可以返回“Draft”,“Final”和null . 我只是在寻找“草稿”和空值 .

所以我如何设置组2页脚只是返回客户名称和一个总结所有四个字段的值的公式{@draft}

if {#divDraft} + {#convoDraft} + {#yearDraft} + {#rovDraft} >= 1 then "Draft" else if {#divFinal} + {#convoFinal} + {#yearFinal} + {#rovFinal} >= 1 then "Final" else " "

然后我根据{@draft}返回“最终”来压制页脚

如果该组中的每个客户端都将所有四个字段返回为null或至少一个作为草稿返回,则可以取消组1标头吗?

我尝试运行子报表,然后将它和共享变量放在组1 Headers 中,但这不能正常工作

WhilePrintingRecords; Shared NumberVar totalSuppress; Global NumberVar suppression; suppression := Shared NumberVar totalSuppress;

共享报告中的{@totalSuppress}公式添加了至少返回一个“草稿”的时间,其中所有四个字段均为空 . 我将其放在子报表的页脚中,然后在主报表组 Headers 中放置{@suppression} .

我得到的是一个模式,其中第一组 Headers 返回0.00,其中有4个结果,组页脚为4.00 . 然后下一组在组头中有4.00,其中有1个结果,组页脚有1.00 . 下一个在组头中有1.00,依此类推 .

我试着用一个公式来重置每个组头的变量 . 所以我写了

Global NumberVar suppression; suppression := 0

但所有这一切都是在组头中返回0.00 .

任何其他想法都会受到欢迎 .

RE:试过新配方

if {sales_div.draft_pend_approv_Value} = "Draft" or {sales_div.draft_pend_approv_Value}  = "Pending Approval"
or {convoSales_200.pending_approval_Value} = "Draft" or  {rov_client.pend_draft_Value} = "Draft"
or {yearly_sales.draft_pend_Value} = "Draft") then 1
else if isnull({sales_div.draft_pend_approv_Value}) and
isnull({convoSales_200.pending_approval_Value}) and   isnull({rov_client.pend_draft_Value})
and isnull({yearly_sales.draft_pend_Value}) 
then 1
else 0

1 回答

  • 0

    如果我理解正确,那么您正在尝试使用“运行总计字段”的结果来抑制 Headers - 这将无效,因为运行总计仅在页脚中计算 .

    您可以尝试不同的方法 . 创建一个将进入“详细信息”部分的公式字段 . 它应该只检查该行是否是您想要显示的那种,如:

    if (isnull({field1}) or isnull({field2}) or ... or {field1} = 'Draft' or {field2} = 'Draft' ...)
    then 1 else 0
    

    然后在Group Header#1中,在Section Expert中,在Suppress公式中放入

    sum({@check},{Employee})=0
    

    其中{@check}是该公式字段,是创建组1的字段

相关问题