Oracle Reports 6.0 的弹性域支持 API(二)

FND FLEXSQL

FND FLEXIDVAL

[@more@]

FND FLEXSQL
您可以调用此用户出口来创建一个可供报表使用的 SQL 片段,以编写用于检索弹性域值的 SELECT 语句。此片段允许您“选择”弹性域值或创建 WHERE,ORDER BY,GROUP BY 或 HAVING 子句,以限制由 SELECT 语句返回的弹性域值或为其排序。您需要为 Select 语句所需的每个片段调用一次该用户出口。即使表可能使用 NUMBER,DATE 或其它一些数据类型,您也要将报表中的所有弹性域列定义为 CHARACTER 类型。
语法:
FND FLEXSQL

CODE="flexfield code"

APPL_SHORT_NAME="application short name"

OUTPUT=":output lexical parameter name"

MODE="{ SELECT | WHERE | HAVING | ORDER BY}"

[DISPLAY="{ALL | flexfield qualifier | segment

number}"]

[SHOWDEPSEG="{Y | N}"]

[NUM=":structure defining lexical" |

MULTINUM="{Y | N}"]

[TABLEALIAS="code combination table alias"]

[OPERATOR="{ = | < | > | <= | >= | != | "||" |

BETWEEN | QBE}"]

[OPERAND1=":input parameter or value"]

[OPERAND2=":input parameter or value"]
选项:
CODE
指定此报表的弹性域代码(如 GL#)。在一个报表中报告多个弹性域时,您需要多次调用 FLEXSQL 来设置 SQL 片段。
APPL_SHORT_NAME
指定此弹性域所属的应用简称(如 SQLGL)。
OUTPUT
指定用于存储 SQL 片段的词法参数名称。您可以稍后在定义用于选择弹性域值的 SQL 语句时,在报表中使用此词法。此参数的数据类型应为 character。
MODE
指定用于生成 SQL 片段的模式。有效模式有:
SELECT 检索以内部(不可显示)格式表示的所有段值。
如果“选择”了弹性域限定词,并且该弹性域段是一个从属段,则弹性域会自动同时选择父段和从属段。例如,如果限定词引用“子帐户”段,则弹性域会同时检索“帐户”(父段)和“子帐户”段列。
注:您可以在 GROUP BY 子句中重复使用 SELECT 子句中所用的词法。
WHERE 通过为弹性域列指定约束条件来限制查询。如果指定了 MULTINUM,则返回的片段会包括正确的译码语句。
您还应指定 OPERATOR 和 OPERANDS。
您可以使用 TABLEALIAS 变量将表别名附加至列名。
HAVING 调用过程和功能与 WHERE 子句相同。
ORDER BY 按弹性域列对查询的信息进行排序。片段将对弹性域列进行排序并用逗号将它们隔开。如果指定了 MULTINUM,则返回的片段会包括正确的译码语句。
您可以同时使用 MODE 变量和 DISPLAY 变量。DISPLAY 变量将在词法参数中指定要包括在 SQL 片段中的段。例如,如果 MODE 为 SELECT,并且指定了 DISPLAY="ALL",则 SELECT 语句将包括弹性域的所有段。同样,如果 MODE 为 WHERE,并且指定了 DISPLAY="ALL",则 WHERE 子句将包括所有段。由于在实际查询中,为 WHERE 子句指定的条件适用于所有段(例如,如果条件为 "= 3",则 SEGMENT1,SEGMENT2,...SEGMENTn 均必须等于 3),因此您通常不需要在 WHERE 子句中包括所有段。
DISPLAY
您可以同时使用 DISPLAY 变量和 MODE 变量。DISPLAY 参数允许您指定要使用的段。您可以指定表示特定的弹性域限定词或特定段号的段,其中段号是指段在弹性域窗口中显示的顺序,而不是在“定义关键字段”表单中指定的段号。应用开发员通常只在 DISPLAY 变量中使用弹性域限定词,而用户可能会自定义报表,并在设置弹性域后就使用引用了段号的 DISPLAY 变量。
默认值为 ALL,即显示所有段。此外,您也可以指定弹性域限定词名称或段号。
如果所指定的弹性域限定词不唯一,则例行程序会返回带有此限定词的第一个段(显示在用户窗口中),而不是具有此限定词的所有段。WHERE 子句只支持唯一的段限定词。
您可以多次指定这些参数,将其用作切换开关。例如,要使用除帐户段之外的所有段,您可以指定:
DISPLAY="ALL"

DISPLAY="GL_ACCOUNT"
或者,如果要使用除前两个段之外的所有段,您可以指定:
DISPLAY="ALL"

DISPLAY="1"

DISPLAY="2"
请注意,使用此弹性域列值的顺序取决于它们在用户窗口中显示的顺序,而不是您在报表中为它们指定的顺序,也不是它们在数据库表中显示的顺序。
SHOWDEPSEG
SHOWDEPSEG="N" 表示禁止自动将从属段添加至排序标准。默认值为 "Y"。此变量只适用于 FLEXSQL 中的 MODE="ORDER BY"。
NUM 或 MULTINUM
指定包含弹性域结构信息的词法或来源列的名称。如果弹性域只使用一种结构,则只指定 NUM 并使用词法参数来容纳值。如果弹性域使用多种结构,则只指定 MULTINUM 并使用来源列来容纳值。在这种情况下,用户出口会建立一个译码语句,用来处理在报告过程中结构可能发生的更改。默认值为 NUM="101"。
TABLEALIAS
指定要附加至列名的表别名。如果 SELECT 与其它弹性域表相连接或使用自连接,则需要使用 TABLEALIAS。
OPERATOR
指定用于 WHERE 子句的运算符。运算符 "= | < | > | <= | >= | != | QBE | BETWEEN" 执行的是词法比较,而不是数字比较。用户可以通过 QBE(按实例查询)和 BETWEEN 运算符指定部分弹性域值,以便与一个或多个段匹配。
例如,如果 OPERAND1 为 "01--CA%-"(假定是一个含分隔符 '-' 的四段弹性域),则第一段必须与 01 匹配,而第三段必须类似于 'CA%'。最后所得到的 SQL 片段为:
SEGMENT1='01' AND SEGMENT3 LIKE 'CA%'
对于 BETWEEN 运算符,如果 OPERAND1 为 "01--CA-",OPERAND2 为 "05--MA-",则最后所得到的 SQL 片段为:
(SEGMENT1 BETWEEN '01' AND '05') AND (SEGMENT3 BETWEEN 'CA' AND 'MA')
OPERAND1
指定一个用于 WHERE 子句的操作数。
OPERAND2
指定另一个与 OPERATOR="BETWEEN" 一起使用的操作数。
FND FLEXIDVAL
调用此用户出口,填写用于显示的字段。您可以将通过查询检索到的键弹性域数据从公式列传送到此出口。使用此出口,您可以通过传送适当的变量(VALUE,DESCRIPTION,APROMPT 或 LPROMPT 中的任何一个)来显示值、说明和提示。
语法:
FND FLEXIDVAL

CODE="flexfield code"

APPL_SHORT_NAME="application short name"

DATA=":source column name"

[NUM=":structure defining source column/lexical"]

[DISPLAY="{ALL|flexfield qualifier|segment number}"]

[IDISPLAY="{ALL|flexfield qualifier|segment

number}"]

[SHOWDEPSEG="{Y | N}"]

[VALUE=":output column name"]

[DESCRIPTION=":output column name"]

[APROMPT=":output column name"]

[LPROMPT=":output column name"]

[PADDED_VALUE=":output column name"]

[SECURITY=":column name"]
选项:
CODE
指定此报表的弹性域代码(如 GL#)。您可以使用不同的 CODE 多次调用 FLEXIDVAL,以便在一个报表中显示多个弹性域的信息。
APPL_SHORT_NAME
指定此弹性域所属的应用简称(如 SQLGL)。
DATA
指定包含级连弹性域段值(通过查询检索到的)的字段名称。
NUM
指定包含弹性域结构信息的来源列或参数的名称。
DISPLAY
DISPLAY 参数允许显示代表特定弹性域限定词或特定段号的段,其中段号指段在弹性域窗口中显示的顺序,而不是在“定义关键字段”表单中指定的段号。
默认值为 ALL,即显示所有段。此外,您也可以指定弹性域限定词名称或段号。您可以多次指定这些参数,将其用作切换开关。例如,要显示除第一段之外的所有段,您可以指定:
DISPLAY="ALL"

DISPLAY="1"
IDISPLAY
在对应的 FLEXSQL 调用中,您可以使用此参数来告知 FLEXIDVAL 在 SELECT 子句中使用的段。FLEXIDVAL 需要此信息来确定由 FLEXSQL 检索到的原始数据的格式。您可以将 IDISPLAY 的值设置为与 FLEXSQL 调用中的 DISPLAY 参数的值相同。默认值为 ALL,因此如果在 FLEXSQL 中使用了 DISPLAY="ALL",则无需在此处使用 IDISPLAY。
SHOWDEPSEG
SHOWDEPSEG="N" 表示禁止自动显示从属段。默认值为 Y。
VALUE
指定要在其中显示弹性域值的列名。
DESCRIPTION
指定要在其中显示弹性域说明的列名。
APROMPT
指定要在其中显示弹性域上方提示的列名。
LPROMPT
指定要在其中显示弹性域左侧提示的列名。
如选择公司段显示为公司


PADDED_VALUE
指定要在其中显示填补后的弹性域值的列名。段值可用空格来填补,以符合段的大小。
SECURITY
如果段值受到保护,则需指定要放置 "S" 标志的列名;然后编写逻辑,以隐藏或显示基于此标志的值。此变量只适用于段值,而不适用于说明、左侧提示或上方提示。
注:由 VALUE,DESCRIPTION,APROMPT 和 LPROMPT 所指定的列的数据类型为 CHARACTER。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8368297/viewspace-926935/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/8368297/viewspace-926935/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值