1. SRW的主要作用
控制报表的运行 -> srw.program_abort
在运行时输出信息 -> srw.message
执行DDL语句 -> srw.do_sql
调用用户出口 -> srw.reference
动态地设置格式 -> srw.set_attr
Report前后初始化 -> srw.userexist() ->初始化之后才能使用fnd_profile或者其他
2. SRW.PROGRAM_ABORT: 控制报表的运行
RAISE SRW.program_abort;
3. SRW.MESSAGE:在运行时输出信息
4. SRW.DO_SQL & SRW.DO_SQL_FAILURE: 执行DDL语句
5. SRW.REFERENCE & SRW.USEREXIT:调用用户出口
1. Report中实现本位币和外币转换格式化
BEGIN SRW.REFERENCE(:C_INV_DUE_AMT_3); SRW.REFERENCE(:C_BASE_CURRENCY_CODE); SRW.REFERENCE(:P_MIN_PRECISION); SRW.USER_EXIT(‘FND FORMAT_CURRENCY CODE=”:C_BASE_CURRENCY_CODE” DISPLAY_WIDTH=”15″ AMOUNT=”:C_INV_DUE_AMT_3″ DISPLAY=”:C_INV_DUE_AMT_3_F” MINIMUM_PRECISION=”:P_MIN_PRECISION”‘); RETURN(:C_INV_DUE_AMT_3_F); END;
2. 获取账户弹性域说明
SRW.USER_EXIT('FND SRWINIT'); if :P_ACCOUNT_F is not null and :P_ACCOUNT_T is not null then srw.reference(:P_COA); srw.user_exit('FND FLEXSQL CODE="GL#" NUM=":P_COA" APPL_SHORT_NAME="SQLGL" OUTPUT=":P_ACCOUNT_WHERE" MODE="WHERE" DISPLAY="ALL" OPERATOR="BETWEEN" OPERAND1=:P_ACCOUNT_T OPERAND2=:P_ACCOUNT_F TABLEALIAS="GCC"'); if :P_ACCOUNT_WHERE is not null then :P_ACCOUNT_WHERE := ' and ' || :P_ACCOUNT_WHERE; end if; end if;
6. SRW.SET_ATTR:动态设置格式
7. SRW.:Report前后初始化
BeforeReport初始化:SRW.USER_EXIT('FND SRWINIT');
AfterReport退出:SRW.USER_EXIT('FND SRWEXIT');