上一页  下一页          目录  索引  定位  词汇表  程序库

使用弹性域视图写入报表

如果要将 Oracle 应用产品数据写入报表,您通常希望写入报表的信息不直接与弹性域相关,但包括的弹性域数据却作为信息的一部分。

键弹性域的简单 SQL*Plus 报表实例

例如,假定您要将三月份的订单写入报表。您需要的信息是关于订单本身的信息,如订购客户名称、订购日期、订购对象数量等等。但是,订单的一部分是关于客户订购对象的信息,并且此信息在弹性域:部件号键弹性域表单中。

此例中,ORDER_LINES 表将包含“数量”列与 ORDER_ID 列。也包含 PART_ID(部件号的 CCID)列和保留部件号键弹性域(我们假想的键弹性域)结构号的列。它将不包含键弹性域个别段的列。但是,在没有部件号段值的情况下,报表对于读者将没有意义(且读者不可能知道与每个部件号弹性域组合相关联的唯一标识号)。您需要显示部件号组合以代替订单报表中唯一的标识号。为了达到这个目的,您应使用键弹性域视图。

下面是一个经过简化的 SQL*Plus 查询实例,您可以将其作为报表写入(请注意,此实例没有格式化,且将为每个订单行打印出 ORDER_ID、ORDER_DATE 及 CLIENT_ID 列):

SELECT O.ORDER_ID ORDER, O.CLIENT_ID CLIENT, O.ORDER_DATE, 
       L.ORDER_LINE_ID LINE, QUANTITY, 
       PN.CONCATENATED_SEGMENTS PART_NO
FROM ORDERS O, ORDER_LINES L, PART_ COMBINATIONS_KFV PN
WHERE O.ORDER_ID = L.ORDER_ID
AND O.ORDER_DATE BETWEEN '28-FEB-1994' AND '01-APR-1994'
AND L.PART_ID = PN.PART_ID

您获得的报表将是:


ORDER  CLIENT  ORDER_DATE   LINE  QUANTITY  PART_NO
-----  ------  -----------  ----  --------  --------------------
    1  ABC     03-MAR-1994     1        15  PAD-YEL-8.5X11
    1  ABC     03-MAR-1994     2         9  CUT-SCISSOR-7 INCH
    1  ABC     03-MAR-1994     3        23  PEN-BALLPT-BLK
    2  XXYYZZ  14-MAR-1994     1         8  PAPER-COPY-WHT-A4-RM
    3  QRS2    24-MAR-1994     1         3  CUT-SCISSOR-7 INCH
    3  QRS2    24-MAR-1994     2        35  PAD-YEL-8.5X11
    3  QRS2    24-MAR-1994     3        15  PEN-BALLPT-BLU

写入描述性弹性域报表

对于描述性弹性域,您一般需要报告描述性弹性域表中已包含的信息,但也需要在报表中包括级连描述性弹性域段值而不是个别值,或需要包括特定命名段的信息(与 ATTRIBUTEn 列相对)。对于这些报表,您可以使用视图中的 ROW_ID 列,以便与描述性弹性域基本表中的 ROWID 连接。

SELECT T.VARIOUS_COLUMNS, 
       V.CONTEXT_VALUE, V.CONCATENATED_SEGMENTS
FROM BASE_TABLE T, BASE_TABLE_DFV V
WHERE V.ROW_ID = T.ROWID

另请参阅

报告弹性域数据概览

弹性域视图概览

键弹性域级连段视图

键弹性域结构视图

描述性弹性域视图

创建弹性域视图

键弹性域视图实例

描述性弹性域视图实例

Oracle 报表 2.5 弹性域支持 API


         上一页  下一页          目录  索引  定位  词汇表  程序库