我有一个组1和组2的报告。出于格式化目的,组2标题和详细信息被禁止,所有信息都显示在组2页脚中。如果满足某个条件,我已设置报告以抑制组2页脚,这意味着有时组1标题下的整个部分是空白的,我想要禁止它。
以下是如何设置
第1组 - 员工 第2组 - 客户(被压制) 细节(压制) 客户名称field1字段2字段3字段4
对于字段1-4,可以返回"草稿","最终"和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组标题中但不能正常工作
WhilePrintingRecords;
Shared NumberVar totalSuppress;
Global NumberVar suppression;
suppression := Shared NumberVar totalSuppress;
共享报告中的{@totalSuppress}公式添加了至少一个"草稿"以四个字段为空的次数返回。我将其放在子报表的页脚中,然后在主报表组标题中放置{@suppression}。
我得到的是一个模式,其中第一组标题返回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
答案 0 :(得分:0)
如果我理解正确,您尝试使用“运行总计字段”的结果来抑制标题 - 这不会起作用,因为运行总计只在页脚中计算。
您可以尝试不同的方法。创建一个将进入“详细信息”部分的公式字段。它应该只检查该行是否是您想要显示的类型,如:
let newWindow = NSWindow(contentRect: NSMakeRect(0, 0, NSScreen.mainScreen()!.frame.width, NSScreen.mainScreen()!.frame.height), styleMask: NSBorderlessWindowMask, backing: NSBackingStoreType.Buffered, `defer`: false)
func applicationDidFinishLaunching(aNotification: NSNotification) {
newWindow.title = "New Window"
newWindow.opaque = false
newWindow.backgroundColor = NSColor(calibratedHue: 0, saturation: 1.0, brightness: 0, alpha: 0.5)
newWindow.makeKeyAndOrderFront(nil)
newWindow.level = Int(CGWindowLevelForKey(CGWindowLevelKey.ScreenSaverWindowLevelKey))
}
然后在Group Header#1中,在Section Expert中,在Suppress公式中放入
if (isnull({field1}) or isnull({field2}) or ... or {field1} = 'Draft' or {field2} = 'Draft' ...)
then 1 else 0
其中{@check}是公式字段,{Employee}是创建组1的字段