0

基本上,我有一个在打印记录时运行的公式,它可以使用 chr(13) 和全局 stringvars 打印 0-3 行以在同一页面中形成最终字符串(尝试使用 chr(10) 和 chr(13))页脚作为子报表,可以有从 0 行到 3 以上的任何行。两者都设置为“可以增长”,但是公式字段永远不会超过子报表。

我正在使用水晶报表 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

这是设置字符串变量的公式之一的示例,它们都遵循相同的方法。

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 ""
4

1 回答 1

0

每个子报表都有自己的详细信息部分,如果您的字段设置在那里,它会显示所有行的结果,即使您将其放在页脚中也是如此。相反,在页脚(页面或报表)中设置的公式以聚合形式工作,因为页脚应该仅用于聚合结果(最大值、最小值、总和等)。如果您将公式放在页脚中并对其进行编辑以返回字段值或与字段值有关的内容,那么它将仅返回您选择的第一行的结果(如 SQL 中的 TOP 1),我思考。

当然我不完全确定,因为您没有显示任何结果或架构,但您的情况看起来很像

于 2017-03-30T14:44:28.497 回答