我制作了一份Crystal Report,每个地点都有一组租户。每个租户都按其当前和上个月的所有销售情况进行查看。在某些情况下,租户目前的销售状态是关闭的。我需要做的是过滤所有这些租户并将它们放入Group Footer PER GROUP / PER LOCATION。目前我的代码是让所有租户处于关闭状态并在所有页面中显示。
代码:
公式1
whilereadingrecords;
stringvar strtitle;
if ({@CurrentMonthNew}) = "CLOSED" and ({@PreviousMonthNew}) <> "CLOSED"
THEN
strtitle := strtitle + ">" + {spMSR;1.name}
公式2:将实际公式放在部分细节之外作为注释
evaluateafter({@notes});
stringvar strtitle;
如何对每个位置组进行过滤。请参阅此图像以了解报告结构
答案 0 :(得分:1)
UNTESTED 可能会有一些拼写错误,但这应该让你开始假设我理解你的问题。
公式1 //放置在第2组标题中并禁止,以便您无法看到它
Whilereadingrecords;
global stringvar notes = "";
公式2 //详细位置部分已被禁止,因此您无法看到它
Whilereadingrecords;
global stringvar notes;
if {table.yearcurrentfield} = 'CLOSED' then Notes := Notes & " " & {table.Notes field}
第2组中的公式3 //未被抑制
global stringvar notes;
答案 1 :(得分:0)
根据CoSpringGuy的有用答案,我找到了正确解决问题的正确答案
使用3路方法公式
公式1:在组头中
Whileprintingrecords;
stringvar strtitle := "";
numbervar var :=0;
公式2:在详细信息部分中,您想要的条件
Whileprintingrecords;
stringvar strtitle;
numbervar var;
if ({@CurrentMonthNew}) = "CLOSED" and ({@PreviousMonthNew}) <> "CLOSED"
THEN
strtitle := strtitle + ChrW(13) + {spMSR;1.name}
公式3:在组页脚中,要在报告上显示的实际内容
whileprintingrecords;
stringvar strtitle;
使用whileprintingrecord代替whilereadingrecord来处理生成笔记的每组功能。