srw的总结

srw的总结

1.在报表触发器BeforeReport中调用用户出口函数 FND SRWINIT 来初始化环境:取得并发程序相关信息和预制文件信息
function BeforeReport return boolean is
begin
SRW.USER_EXIT('FND SRWINIT');
srw.reference( :P_COA_ID );------------帐套,必须在report和ebs里都定义这个参数不然会报错SRW.REFERENCE 将引用的对象添加到构造依赖列表中,让Report在触发初始化构造的时候对值进行测定
srw.user_exit('FND FLEXSQL --------------------在报表中调用 FND FLEXIDVAL来动态设置显示的弹性域数据
CODE = "GL#" ------‘GL#’是帐户关键性弹性域的代码;code:弹性域编码
NUM=":P_COA_ID" ---------包括弹性域结构ID的词义变量
APPL_SHORT_NAME = "SQLGL"-----弹性域对应的应用简称
OUTPUT=":ACC_SELECT_ALL" -------------output:用来存贮SQL语句的词义变量(Placeholder)

TABLEALIAS="c")--------如果使用表别名,制定弹性域对应表的别名

MODE="SELECT" "----SELECT 按照内部的格式取出所有段值

DISPLAY="ALL"');---指定有多少段是需要显示的,默认值为 ALL;如果只希望显示其中的一段,
可以通过指定段名或者段号码来实现
return (TRUE);
end;

2.在报表触发器AfterReport中调用用户出口函数 FND SRWEXIT 来释放用户出口函数中使用的内存,USER_EXIT是一个用户出口函数,用于取得帐户段描

function AfterReport return boolean is
begin
SRW.USER_EXIT('FND SRWEXIT');
return (TRUE);
end;

3.在字段内

设置

function ACC_flex_dataFormula return VARCHAR2 is
begin
srw.reference(:ACC_flex);
srw.reference( :P_COA_ID );
srw.user_exit('FND FLEXIDVAL
CODE="GL#"
NUM=":P_COA_ID"
APPL_SHORT_NAME="SQLGL"
DATA=":ACC_FLEX"
VALUE=":ACC_FLEX_DATA"
DISPLAY="ALL"');
return(:ACC_FLEX_DATA);
end;


function ACC_FLEX_DESCFormula return Char is
begin
srw.reference(:ACC_flex);
srw.reference( :P_COA_ID );
srw.user_exit('FND FLEXIDVAL
CODE="GL#"
NUM=":P_COA_ID"
APPL_SHORT_NAME="SQLGL"
DATA=":ACC_FLEX"
FULL_DESCRIPTION=":ACC_FLEX_DESC"
DISPLAY="ALL"');

return(REPLACE(REPLACE(REPLACE(:ACC_flex_desc,'南京本部'),'缺省'),'无'));
end;


4.做一个cp acc_select_all

value is null 为

(c.segment1||'n'||c.segment2||'n'||

c.segment3||'n'||c.segment4||'n'||c.segment5||'n'||

c.segment6||'n'||c.segment7)

具体按要选择的段落分类


5.在报表的SqL里写

select
&acc_select_all acc_flex,


------------------------2------------------------
今天试试了SRW,成功了,特高兴
===========================================================
srw.reference(:FLEXDATA);
srw.reference(:STRUCT_NUM);
srw.user_exit('FND FLEXIDVAL CODE="GL#"
NUM=":STRUCT_NUM"
APPL_SHORT_NAME="SQLGL"
DATA=":FLEXDATA"
VALUE=":FLEXFIELD"
PADDED_VALUE=":FLEXFIELD_PAD"
DESCRIPTION=":FLEXDESC"
DISPLAY="ALL"
IDISPLAY="ALL"');
RETURN(:FLEXFIELD);

增加placeholder (占位符) SELECT_ALL


(CC.SEGMENT1 || 'n' || SEGMENT2 || 'n' || SEGMENT3 || 'n' || SEGMENT4 || 'n' || SEGMENT5 || 'n' || SEGMENT6 || 'n' || SEGMENT7 || 'n' || SEGMENT8 || 'n' || SEGMENT9 || 'n' || SEGMENT10 || 'n' || SEGMENT11 || 'n' || SEGMENT12 || 'n' || SEGMENT13 || 'n' || SEGMENT14 || 'n' || SEGMENT15 || 'n' || SEGMENT16 || 'n' || SEGMENT17 || 'n' || SEGMENT18 || 'n' || SEGMENT19 || 'n' || SEGMENT20 || 'n' || SEGMENT21 || 'n' || SEGMENT22 || 'n' || SEGMENT23 || 'n' || SEGMENT24 || 'n' || SEGMENT25 || 'n' || SEGMENT26 || 'n' || SEGMENT27 || 'n' || SEGMENT28 || 'n' || SEGMENT29 || 'n' || SEGMENT30)


其中 FLEXDATA 是查询的各段的组合,就是SELECT_ALL

STRUCT_NUM 是COAID

FLEXDESC 是科目的描述


FLEXFIELD_PAD还不清楚,戴解决

[@more@]

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

转载于:http://blog.itpub.net/733767/viewspace-998658/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值