Oracle EBS Report开发笔记1.docx
《Oracle EBS Report开发笔记1.docx》由会员分享,可在线阅读,更多相关《Oracle EBS Report开发笔记1.docx(13页珍藏版)》请在冰豆网上搜索。
OracleEBSReport开发笔记1
报表开发
进入PLSQLDeveloper开发工具后
1.登录服务器
2.如果要进行SQL语句测试
1)点击File->New->SQLWindows即可进入命令窗口
2)输入标准SQL语句,点击第二行工具条中的齿轮型图标(运行)即可运行查询语句
3)如果被查询的对象不是一个table,而是一个view,必须在select语句前输入以下语句,才能查询出数据。
begin
mo_global.set_policy_context('S',86);
end;
注意:
上述语句中,S字母必须大写,后面的数字是Oracle系统中的组织ID号,不同的ou,另外要运行查询还必须遵循一定的方法和步骤
比如,下图的语句
步骤一、如下图,先选中蓝色区域的一段代码,然后点击运行。
步骤二、再选中自己写好的select语句,点击运行才能看到数据。
3、如果要进行报表开发
1)点击File–>New->CommandWindow即可进入报表开发命令行窗口
然后就可输入各种命令了,修改原来的程序用edit,而oracle中自主开发的东西都以cux开头。
2)输入editcux_ap_invoice_detail_pkg,点击回车即可看到如下界面
4、报表程序结构分析
createorreplacepackagebodyCUX_AP_INVOICE_DETAIL_PKGis
--author:
shawn.liu
--created:
2010/08/0316:
53:
46
--purpose:
应付款明细账
--publictypedeclarations
gc_sob_idnumber:
=fnd_profile.value('GL_SET_OF_BKS_ID');
functionget_flex_desc(p_value_set_nameinvarchar2,p_flex_valueinvarchar2)
returnvarchar2isv_descriptionvarchar2(240):
=null;
begin
selecttrim(replace(ffv.description,'&','_'))intov_description
fromfnd_flex_values_vlffv,fnd_flex_value_setsffs
whereffs.flex_value_set_name=p_value_set_nameandffs.flex_value_set_id=ffv.flex_value_set_id
andffv.enabled_flag='Y'andffv.flex_value=p_flex_value;
returnv_description;
exception
whenothersthen
returnnull;
end;
procedureoutlog(i_chr_messageinvarchar2)is
begin
fnd_file.put_line(fnd_file.log,i_chr_message);
end;
procedureoutput(i_chr_messageinvarchar2)as
begin
fnd_file.put_line(fnd_file.output,i_chr_message);
end;
proceduremain(errbufoutvarchar2,
retcodeoutvarchar2,
p_period_nameinvarchar2)is
v_b_returnboolean;
v_org_namevarchar2(100);
cursorstay_feeis/*使用游标循环输出*/
/****************上面是标准头信息格式*******************/
{select查询语句段}
/****************下面是输出的信息格式*******************/
begin
selectnameintov_org_name
fromhr_operating_units
whereorganization_id=Fnd_Profile.Value('ORG_ID');
--output('
xmlversion="1.0"encoding="GBK"?
>');
output('
xmlversion="1.0"encoding="UTF-8"?
>');
output('');
output(''||p_period_name||'');
output(''||v_org_name||'');
forsfinstay_feeloop
output('');
output(''||sf.INVOICE_NUM||'');
output(''||sf.VENDOR_NAME||'');
output(''||sf.INVOICE_DATE||'');
output(''||sf.GL_DATE||'');
output(''||sf.INVOICE_TYPE||'');
output('');
output(''||sf.INVOICE_AMOUNT||'');
output(''||sf.AMOUNT_PAID||'');
output(''||sf.AMOUNT_BALANCE||'');
output(''||sf.AGENT_NAME||'');
output(''||sf.ORG_NAME||'');
output(''||sf.VOUCHER_NUM||'');
output(''||sf.GLCC||'');
output(''||sf.DESCRIPTION||'');
output(''||sf.COA_NAME||'');
output('');
endloop;
output('');
retcode:
=0;
ifretcode=2then
v_b_return:
=fnd_concurrent.set_completion_status('ERROR','ERROR');
elsifretcode=1then
v_b_return:
=fnd_concurrent.set_completion_status('WARNING','WARNING');
endif;
exception
whenothersthen
outlog('Error:
main'||sqlerrm);
v_b_return:
=fnd_concurrent.set_completion_status('ERROR','ERROR');
raise;
end;
endcux_ap_invoice_detail_pkg;
5、查询一个已开发报表的实际程序名称
系统管理员—并发—方案—可执行,按F11根据知道的报表名称搜索,出程序名。
如果不能在“定义”直接查询到,进系统管理员—并发—方案—定义先根据“程序”(输入报表名称)找到“简称”,然后在根据“简称”去“可执行”查询文件名。
(详见《开发笔记3》)
6、查询FORM界面字段来源
6.1在FORM界面点中某个字段,再点击主菜单“帮助(H)→诊断(D)→检查(E)”就可以大致看到当前信息是来源于那个数据库表和字段。
6.2在FORM界面点中某个字段,再点击主菜单“帮助(H)→历史记录(D)”也可以大致看到当前信息是来源于那个数据库表。
6.3直接浏览系统执行的查询语句,首先要执行一个查询动作,然后按如下步骤查询
步骤一、点击主菜单“帮助(H)→诊断(D)→检查(E)”,打开如下界面:
步骤二、在块编辑栏选择SYSTEM
步骤三、在字段编辑栏选择LAST_QUERY
步骤四、把上图中的值内容,全选复制,并粘贴到PL/SQL的SQLWindows中
步骤五、点击PL/SQL工具栏中的PL/SQLBeautifier美化器对复杂SQL语句进行格式处理
步骤六、点击PL/SQL工具栏中的齿轮
按钮执行当前SQL语句,可以查看结果是否与form界面的查询结果一致。
6、PL/SQL界面中如何浏览“视图”的真正表来源
选中视图名称,右键->edit即可浏览了