传递给报表的数据源有一个Serial属性,我需要为每个细节部分编写一个这种格式的字段:[Serial] from [Top serial]我为最高序列写了这个公式:
Serial
Maximum({VW_Sizes.Serial})
但它获取当前序列号,所以不是1 of 2,而是2 of 2它得到1的1,2的2。
jogvjijk1#
您遇到的问题是,当详细信息部分的每次迭代打印到报表时,它只知道已经打印到报表的行的SERIAL的Max值。我更喜欢使用SQL表达式字段来解决这个问题。这使您可以在将所有行打印到报表之前,使用SQL查询检索分组数据的SERIAL最大值。这样的事情通常对我有用。
( SELECT MAX("ORD_DETAIL"."ORD_DET_SEQNO") FROM ORD_DETAIL WHERE "ORD_DETAIL"."ORDERS_ID" = "ORDERS"."ID" )
在我的示例中,我有两个表,ORDERS和ORD_DETAIL。ORD_DETAIL.ORD_DET_SEQNO包含订单明细行的序列号。我的数据在ORDERS.ID上分组,以迭代每个Order,下面的公式字段将为每个明细行打印一个输出,该输出指示其在该订单的所有序列号的最大值中的序列。
ORDERS
ORD_DETAIL
ORD_DETAIL.ORD_DET_SEQNO
ORDERS.ID
ToText({ORD_DETAIL.ORD_DET_SEQNO}) + " of " + ToText({%Max});
在此公式中,%Max是上例中SQL表达式字段的名称。如果数据中没有SERIAL编号重置的点,则SQL表达式字段将如下所示。
%Max
( SELECT MAX(Serial) FROM VW_Sizes )
如果您需要在某些点重置,只需添加一个WHERE子句,该子句引用用于对一组SERIAL值进行分组的table.column。
yhived7q2#
您可以将该变量连接到详细信息部分中的 * 公式字段 * 中,并包含以下内容:
{VW_Sizes.Serial} & " from " & Maximum ({VW_Sizes.Serial})
否则,您只能将具有最大值的汇总字段放在明细部分之外,例如在 * 总计(报表页脚)* 中。
bprjcwpo3#
我认为有一个更简单的方法来做这样的事情,从报告中你需要从字段资源管理器创建运行字段:
3条答案
按热度按时间jogvjijk1#
您遇到的问题是,当详细信息部分的每次迭代打印到报表时,它只知道已经打印到报表的行的SERIAL的Max值。
我更喜欢使用SQL表达式字段来解决这个问题。这使您可以在将所有行打印到报表之前,使用SQL查询检索分组数据的SERIAL最大值。
这样的事情通常对我有用。
在我的示例中,我有两个表,
ORDERS
和ORD_DETAIL
。ORD_DETAIL.ORD_DET_SEQNO
包含订单明细行的序列号。我的数据在ORDERS.ID
上分组,以迭代每个Order,下面的公式字段将为每个明细行打印一个输出,该输出指示其在该订单的所有序列号的最大值中的序列。在此公式中,
%Max
是上例中SQL表达式字段的名称。如果数据中没有SERIAL编号重置的点,则SQL表达式字段将如下所示。
如果您需要在某些点重置,只需添加一个WHERE子句,该子句引用用于对一组SERIAL值进行分组的table.column。
yhived7q2#
您可以将该变量连接到详细信息部分中的 * 公式字段 * 中,并包含以下内容:
否则,您只能将具有最大值的汇总字段放在明细部分之外,例如在 * 总计(报表页脚)* 中。
bprjcwpo3#
我认为有一个更简单的方法来做这样的事情,从报告中你需要从字段资源管理器创建运行字段: