基本上,我有一个在打印记录时运行的公式,可以使用chr(13)和全局字符串变量打印0-3行以形成最终字符串(尝试使用chr(10)和chr(13)),同一页面页脚作为子报表,可以有0行到3以上的任何一个。两者都设置为“可以增长”但是公式字段永远不会超过子报表。
我正在使用Crystal Reports 9。
我还尝试使用从上一页页脚到另一页页脚的公式周围的框。
这是我的公式
WHILEPRINTINGRECORDS;
global stringvar WD;
global stringvar ADV;
global stringvar NASC;
stringvar final :="";
IF WD <> "" AND ADV <> "" AND NASC <> "" THEN final := WD + Chr(13) + chr(10) + NASC + Chr(13) + chr(10) + ADV
ELSE IF WD = "" AND ADV <> "" AND NASC <> "" THEN final := NASC + Chr(13) + chr(10) + ADV
ELSE IF WD <> "" AND ADV = "" AND NASC <> "" THEN final := WD + Chr(13) + chr(10) + NASC
ELSE IF WD <> "" AND ADV <> "" AND NASC = "" THEN final := WD + Chr(13) + chr(10) + ADV
ELSE IF WD = "" AND ADV = "" AND NASC = "" THEN final := "";
final
这里是设置stringvars的公式之一的示例,它们都遵循相同的方法。
WHILEPRINTINGRECORDS;
global Stringvar ADV;
global Stringvar Status;
if({COLUMN1}="EX"
OR {COLUMN1}="ADV"
OR {COLUMN1}="CR"
OR {COLUMN1} = "DES" )
THEN ( ADV := "# - EXEMPT"; Status := "Status"; "#") ELSE ""
答案 0 :(得分:0)
每个子报表都有自己的详细信息部分,如果您的字段设置在那里,它会显示所有行的结果,即使您将其放在页脚中也是如此。相反,在页脚(页面或报表)中设置的公式以聚合形式工作,因为页脚应该仅用于聚合结果(max,min,sum等)。如果你把一个公式放在页脚中并且你编辑它以返回一个字段值或它与字段值有关的东西,那么它将只返回你的select的第一行的结果(比如SQL中的TOP 1),I认为
当然我不完全确定,因为你没有显示任何结果或你的架构,但你的情况似乎很像