oracle ebs 报表开发步骤
- 格式:docx
- 大小:15.19 KB
- 文档页数:3
PLSQL报表开发步骤1.PLSQL创建package1.1在PL/SQL Developer中创建一个package。
➢此时会生成一个和包体。
➢部分定义一个过程:➢包体部分定义具体的格式控制及输出数据。
➢在print函数中进行输出(输出到控制台和报表)。
➢cursor的定义放在包体的最前面。
➢main函数为该函数的入口地址。
入口函数的特点为:前两个的定义必须为errbuf out varchar2,retcode out number,否则报错。
使用 errbuf 返回任何错误消息和retcode 返回完成状态。
参数 retcode 返回 0 表示成功、警告,成功为 1 和 2 的错误。
在并行程序运行后,并发管理器会将 errbuf 和 retcode 的容写入与您的并发请求相关联的日志文件。
➢屏蔽不在包体外调用的函数声明。
➢创建的package可不必上传到应用。
在数据库中编译后即可。
参考文件:plsql形式报表开发及html输出格式.pdf参考代码:Rz_Gl_Period_Charge_Pkg最后.pck(在PLSQL中打开)2.定义并发可执行➢在EBS中注册挂载:登录oracle EBS R12系统。
选择应用开发员--》并发--》可执行。
➢填入如下信息。
3.定义并发程序应用开发员--》并发--》程序参数设置:Notes:关于值集的定义,参见附件。
Parameter顺序、名称与 Procedure 参数一致(Errbuf 与 Retcode 不用设定) 4.添加并发程序到请求组4.1 请求组分配给责任,责任分配给用户。
首先要查找职责和请求组➢查找职责:系统管理员》安全性》职责》定义➢查找请求组:如果没有自己的请求组,可以自己新建一个。
切换责任到系统管理员 >安全性>责任>请求,系统管理员》安全性》职责》请求➢提交请求,查看结果。
切换到相应的职责,本例中为R_GL_总账超级用户,提交一个新的请求,在请求的名称中找到创建的程序。
ORACLE EBS FORM利用模板开发步骤1、在formbuilder开发form—>从服务器的以下路径$AU_TOP/forms/US下载模板:TEMPLATE.fmb,并将模板名字改为STUDENTS.fmb—>将服务器$AU_TOP目录下的resource文件夹所有文件下载—>将以上STUDENTS.fmb和resource文件夹分别放在以下目录D:\ErpForm\Form , D:\ErpForm\Library—>在Regedit > HKEY_LOCAL_MACHINE > SOFTWARE > ORACLE > FORMS60_PA TH 加入client 端存放form 及resource的路径D:\ErpForm\Library;D:\ErpForm\Form(放在最前较好)—>运行formbuilder,打开STUDENTS.fmb后,修改名字,删除不需要使用的数据块和画布—>首先建一个窗口,因为画布放在窗口上。
这里将原来的一个窗口BLOCKNAME,改名为WIN_MAIN,并双击进入属性面板修改名称—>添加要用的数据块:右键数据块>数据块向导—>制作要用的画布:—>修改新建数据块和画布的名字为相同(建议),这里都改为MAIN。
并进入属性面板修改子类信息和窗口属性将数据块MAIN里的项STUID、STUNAME、STUSCORE的属性里的子类信息改为TEXT_ITEM,以下只列出STUID的截图将画布MAIN里的子类信息选为CANV AS,窗口选为WIN_MAIN,因为该画布放在WIN_MAIN 展示—>修改FORM上得Trigger2、将开发完的form上传到到服务器并编译—>通过SecureCRT登录到dev3(例如),在SecureCRT里通过echo $AU_TOP获得AU_TOP 路径—>通过FXPFlash也登录到dev3,进入$AU_TOP目录—>通过FXPFlash,将开发完成的form传到$AU_TOP/forms/ZHS目录下—>进入SecureCRT里的$AU_TOP/forms/ZHS目录,然后执行以下命令:f60gen userid=apps/apps module=STUDENTS.fmb output_file=$CPER_TOP/forms/ZHS/STUDENTS.fmx module_type=FORM batch=no3、将编译完成的form挂到EBS前台菜单—>以应用开发员职责登录,注册表单—>以应用开发员职责登录,定义功能—>将以上定义的功能加入MENU,此处加入的是系统管理员职责的MENU。
Oracle EBS 财务报表1. 引言Oracle EBS(Enterprise Business Suite)是一款集成的企业资源计划(ERP)软件,为企业提供全面的财务管理功能。
财务报表是Oracle EBS的核心功能之一,它能够帮助企业管理财务数据,生成各种报表以支持决策和报告要求。
在本文档中,我们将讨论Oracle EBS财务报表的功能和使用方法,以及如何生成和定制财务报表。
2. Oracle EBS财务报表的功能Oracle EBS财务报表模块提供了广泛的财务报表功能,包括但不限于:•总账报表:提供企业的总体财务状况,包括资产、负债、权益等方面的信息。
•利润与损失表:显示企业在一定期间内的收入、成本和利润以及亏损情况。
•现金流量表:记录企业在一定期间内的现金流动情况,包括经营活动、投资活动和融资活动。
•财务指标报表:提供企业的财务指标,如营业收入增长率、财务杠杆比率等。
•预算与实际对比报表:将企业预算与实际数据进行对比,帮助管理层分析业绩和控制成本。
3. 生成财务报表要生成财务报表,首先需要配置Oracle EBS的财务模块。
以下是生成财务报表的基本步骤:步骤1:设置会计日历在Oracle EBS中,会计日历指定了财务报表的计算和报告周期。
需要根据企业的需求来配置会计日历,包括会计年度、会计周期等。
步骤2:配置会计灵活性会计灵活性是Oracle EBS财务报表的关键概念之一。
通过配置会计灵活性,可以定义会计段位、账户和段位组合等。
这些配置将用于财务报表的数据提取和分析。
步骤3:配置总账模板总账模板是生成财务报表的重要元素之一。
通过配置总账模板,可以定义财务报表所需的账户和科目。
步骤4:进行账务凭证录入在生成财务报表之前,需要进行账务凭证的录入。
可以通过Oracle EBS的会计模块进行凭证录入,以准确记录企业的财务数据。
步骤5:运行财务报表程序在账务凭证录入完成后,可以运行财务报表程序来生成报表。
PLSQL报表开发步骤1.PLSQL创建package1.1在PL/SQL Developer中创建一个package。
➢此时会生成一个包头和包体。
➢包头部分定义一个过程:➢包体部分定义具体的格式控制及输出数据。
➢在print函数中进行输出(输出到控制台和报表)。
➢cursor的定义放在包体的最前面。
➢main函数为该函数的入口地址。
入口函数的特点为:前两个的定义必须为errbuf out varchar2,retcode out number,否则报错。
使用errbuf 返回任何错误消息和retcode 返回完成状态。
参数retcode 返回0 表示成功、警告,成功为1 和2 的错误。
在并行程序运行后,并发管理器会将errbuf 和retcode 的内容写入与您的并发请求相关联的日志文件。
➢屏蔽不在包体外调用的函数声明。
➢创建的package可不必上传到应用。
在数据库中编译后即可。
参考文件:plsql形式报表开发及html输出格式.pdf参考代码:Rz_Gl_Period_Charge_Pkg最后.pck(在PLSQL中打开)2.定义并发可执行➢在EBS中注册挂载:登录oracle EBS R12系统。
选择应用开发员--》并发--》可执行。
➢填入如下信息。
3.定义并发程序●应用开发员--》并发--》程序参数设置:Notes:关于值集的定义,参见附件。
Parameter顺序、名称与Procedure 参数一致(Errbuf 与Retcode 不用设定) 4.添加并发程序到请求组4.1 请求组分配给责任,责任分配给用户。
首先要查找职责和请求组➢查找职责:系统管理员》安全性》职责》定义➢查找请求组:如果没有自己的请求组,可以自己新建一个。
切换责任到系统管理员>安全性>责任>请求,系统管理员》安全性》职责》请求查找出请求组后,在上述请求组中加入刚才定义好的并发请求程序。
➢提交请求,查看结果。
Oracle EBS Html报表开发总结一需求分析1 确认需求1.1 确定参数类型、个数,可否为空,是否必输。
1.2 提炼、分析和自习审查已经收集到的需求,以确保所有的风险承担者都明确其含义并找到其中的错误和其他不足的地方(在必要的情况下向顾问提出改进建议);1.3 确认报表样式、title等;2 确定字段确认报表中的表项取值及应满足的逻辑条件,拿到正确的字段;3 涉及计算的字段取值报表中需要计算的表项具体计算公式;4 数据获取找字段方法总结:4.1 从EBS中的历史记录来找到该字段是来自哪个视图,再从帮助下的诊断来找到字段的名称;4.2 利用弹性域来找字段,首先找到是否是描述性弹性域,再找到弹性域的名称,从弹性域中找到字段;Step1.找到该描述性弹性域的名称Step2.切换职责,在【系统管理员】中查找该描述性弹性域点击【段】按钮即可查看该弹性域内EBS字段对应的基表字段,如下:4.3 从弹性域中的块下找到system,字段是last query 下来找整个form下的字段;路径:帮助诊断检查块:SYSTEM字段:LAST_QUERY值:查询当前FORM中所有字段用到的SQL语句,包括字段名,基表或视图。
4.4 自己添加一条数据来进行先后对比确定EBS中的项目对应的基表字段;二报表设计1 表头设计1.1报表行动态在报表的输出中,报表的表头数据是作为报表的参数输出例如下表该表中的测试序列,开发序列等都是作为报表的参数输出的,只能选一个或全选,不选则全出,每个序列下的职务信息都是根据序列来查出来显示在报表中,在此如何控制报表的样式。
首先测试序列作为一个游标循环输出,在内层循环根据序列作为一个游标输出,在控制表样时根据序列查出该序列的colspan:for xulie in (根据参数取序列) loop在此处算该序列的colspan即该序列下有多少职务,在输出序列时传到其colspan中For zhiwu in (序列游标作为条件查询该序列的职务信息)loop输出职务的信息,在输出时注意报表的格式,注意输出部分是列还是行的循环输出。
使用Dreamweaver &Report Builder 进行报表开发作者:HuangRongxin版本: 1.0状态:发布最后修改日期:2011-06-15版本修改内容修改人审核人日期1.0 创建黄荣新内容索引1详细功能设计 (1)1.1使用R EPORT B UILDER构建数据源 (1)1.1.1.1构建数据模型 (1)1.1.1.2在EBS中创建请求生成XML (2)1.2使用D REAMWEAVER绑定数据源 (4)1.2.1.1创建XSL文件并附加XML数据源 (4)1.2.1.2编辑XSL文件 (4)1.3修改RPT文件,使生成的数据源能与XSL结合 (6)1.3.1.1编辑RPT文件 (6)1.4修改并发程序 (7)1.4.1.1把并发程序的输出格式改成html (7)2未结事项 (7)3术语说明 (7)设计说明标准Oracle EBS使用Report Builder来生成报表文件,在实际开发过程中,存在着格式不好控制的问题,有必要使用新的方法来更灵活的生成报表。
1详细功能设计1.1使用Report Builder构建数据源Report Builder 构建数据源具有分组统计比较方便等特点,所以选用它来构建数据源。
1.1.1.1构建数据模型此步骤大家都比较熟悉了,这里不做介绍,给出最终模型图和输出效果图:数据模型图:输出效果图:1.1.1.2在EBS中创建请求生成XML1)上传Report文件到$<应用>_TOP/reports,在ZHS和US下都存一份;2)定义并发可执行;3)定义并发程序;4)把并发程序绑定到指定责任的请求组5)提交请求生成XML输出, 将输出文件另存为SCOTT.xml1.2使用Dreamweaver绑定数据源1.2.1.1创建XSL文件并附加XML数据源(M)文件 -> 新建 -> XSLT(整页),在弹出框附加XML数据源然后保存文件为SCOTT. x sl1.2.1.2编辑XSL文件创建一个两行N列的表格,一行用来输入标题,一行用来循环输出Data;点击Dreamweaver的”绑定”快捷菜单,应该看到XML的层次结构已经可以呈现了;把需要的项目拖放进来吧,现在这样只是显示一行数据,我们的目的是要让数据项重复显示,不然不成废材了,切换到代码示图,在要循环的行加入XSL代码(标签的具体说明参照相关文档)说明几点:在XSL中,如果有空数据,则会显示成NaN,加入<xsl:decimal-format NaN = "" />使显示为空;把encoding="UTF8"都改成GB2312,可以正确的显示中文;也可以外链CSS文件,美化输出,在</head>前加入<link type="text/css" rel="stylesheet" href="rpt.css" />,当然也可以写在内部;XSL的函数很多,有统计、还可以附加script,不一一列举。
1:点击XML publisher Administrator →定义数据定义和模板先数据定义,然后模板定义。
A 数据定义:名称和代码→名称最好一样例如:CUX_应用产品的英文简称_应用的简称(英文都大写) 代码的名称是文件的名字. 名称可以和代码一样,也可以在后面加一段中文说明应用产品→就是新开发的东西要应用到那个模块(例如:库存管理系统)B 模板名称和代码→名称最好一样例如:CUX_应用产品的英文简称_应用的简称(英文都大写) 代码的名称是文件的名字. 名称可以和代码一样,也可以在后面加一段中文说明应用产品→就是新开发的东西要应用到那个模块(例如:库存管理系统)和数据定义上的一样数据定义→选择刚刚建立的数据定义类型→RTF文件→选择RTF文件的位置语言→汉语到此数据定义和模板定义已经完成2::上传.rdf到unix服务器特定的目录下,必须保证后缀名是小写的./u01/erpdemo/apps/apps_st/appl/inv/应用的是库存模块所以是这个目录/u01/erpdemo/apps/apps_st/appl/invOracle报表所以是这个目录/u01/erpdemo/apps/apps_st/appl/inv/语言选择的是汉语所以是这个目录/u01/erpdemo/apps/apps_st/appl/inv/3: 定义值集→定义参数关联的数据库表设置应用产品→验证→集(1):(2) : 编辑信息上面的设置的的意思是→select SEGMENT1 , DESCRIPTION from MTL_SYSTEM_ITEMS_B where organization_id=204 4:点击系统管理员→定义可执行文件A: 并发→方案→可执行B: 并发→方案→定义(关联刚刚建立的可执行文件)通过简称连接模版文件(必须和模版的数据定义的代码名称一样)然后是参数设置5:关联到请求组安全性→责任→定义→定义职责上图的菜单排除项中千万不要设置东西→要不CUX_FND_开发员职责中没有什么东西。
报表开发进入PL SQL Developer开发工具后1.登录服务器2.如果要进行SQL 语句测试1)点击File->New->SQL Windows即可进入命令窗口2)输入标准SQL语句,点击第二行工具条中的齿轮型图标(运行)即可运行查询语句3)如果被查询的对象不是一个table,而是一个view,必须在select语句前输入以下语句,才能查询出数据。
beginmo_global.set_policy_context('S',86);end;注意:上述语句中,S字母必须大写,后面的数字是Oracle系统中的组织ID号,不同的ou,另外要运行查询还必须遵循一定的方法和步骤比如,下图的语句步骤一、如下图,先选中蓝色区域的一段代码,然后点击运行。
步骤二、再选中自己写好的select语句,点击运行才能看到数据。
3、如果要进行报表开发1)点击File –> New -> Command Window 即可进入报表开发命令行窗口然后就可输入各种命令了,修改原来的程序用edit ,而oracle中自主开发的东西都以cux开头。
2)输入edit cux_ap_invoice_detail_pkg ,点击回车即可看到如下界面4、报表程序结构分析create or replace package body CUX_AP_INVOICE_DETAIL_PKG is-- author : shawn.liu-- created : 2010/08/03 16:53:46-- purpose : 应付款明细账-- public type declarationsgc_sob_id number := fnd_profile.value('GL_SET_OF_BKS_ID');function get_flex_desc(p_value_set_name in varchar2, p_flex_value in varchar2)return varchar2is v_description varchar2(240):= null;beginselect trim(replace(ffv.description,'&','_')) into v_descriptionfrom fnd_flex_values_vl ffv,fnd_flex_value_sets ffswhere ffs.flex_value_set_name = p_value_set_name and ffs.flex_value_set_id = ffv.flex_value_set_id and ffv.enabled_flag='Y'and ffv.flex_value = p_flex_value;return v_description;exceptionwhen others thenreturn null;end;procedure outlog(i_chr_message in varchar2) isbeginfnd_file.put_line(fnd_file.log, i_chr_message);end;procedure output(i_chr_message in varchar2) asbeginfnd_file.put_line(fnd_file.output, i_chr_message);end;procedure main(errbuf out varchar2,retcode out varchar2,p_period_name in varchar2) isv_b_return boolean;v_org_name varchar2(100);cursor stay_fee is /* 使用游标循环输出*//****************上面是标准头信息格式*******************/ {select 查询语句段}/****************下面是输出的信息格式*******************/beginselect name into v_org_namefrom hr_operating_unitswhere organization_id= Fnd_Profile.Value('ORG_ID');-- output ('<?xml version="1.0" encoding = "GBK"?>');output ('<?xml version="1.0" encoding = "UTF-8"?>');output ('<G_REPORT>');output ('<P_PERIOD_NAME>' || p_period_name || '</P_PERIOD_NAME>');output ('<V_ORG_NAME>' || v_org_name || '</V_ORG_NAME>');for sf in stay_fee loopoutput ('<G_MAIN_0>');output ('<INVOICE_NUM>' || sf.INVOICE_NUM || '</INVOICE_NUM>');output ('<VENDOR_NAME>' || sf.VENDOR_NAME || '</VENDOR_NAME>');output ('<INVOICE_DATE>' || sf.INVOICE_DATE || '</INVOICE_DATE>');output ('<GL_DATE>' || sf.GL_DATE || '</GL_DATE>');output ('<INVOICE_TYPE>' || sf.INVOICE_TYPE || '</INVOICE_TYPE>');output ('<SOURCE>' || sf.SOURCE || '</SOURCE>');output ('<INVOICE_AMOUNT>' || sf.INVOICE_AMOUNT || '</INVOICE_AMOUNT>');output ('<AMOUNT_PAID>' || sf.AMOUNT_PAID || '</AMOUNT_PAID>');output ('<AMOUNT_BALANCE>' || sf.AMOUNT_BALANCE || '</AMOUNT_BALANCE>');output ('<AGENT_NAME>' || sf.AGENT_NAME || '</AGENT_NAME>');output ('<ORG_NAME>' || _NAME || '</ORG_NAME>');output ('<VOUCHER_NUM>' || sf.VOUCHER_NUM || '</VOUCHER_NUM>');output ('<GLCC>' || sf.GLCC || '</GLCC>');output ('<DESCRIPTION>' || sf.DESCRIPTION || '</DESCRIPTION>');output ('<COA_NAME >' || sf.COA_NAME || '</COA_NAME >');output ('</G_MAIN_0>');end loop;output ('</G_REPORT>');retcode:=0;if retcode = 2thenv_b_return := fnd_concurrent.set_completion_status('ERROR','ERROR');elsif retcode = 1thenv_b_return := fnd_concurrent.set_completion_status('WARNING','WARNING');end if;exceptionwhen others thenoutlog('Error:main'||sqlerrm);v_b_return := fnd_concurrent.set_completion_status('ERROR','ERROR');raise;end;end cux_ap_invoice_detail_pkg;5、查询一个已开发报表的实际程序名称系统管理员—并发—方案—可执行,按F11根据知道的报表名称搜索,出程序名。
PLSQL报表开发步骤
1.PLSQL创建package
1.1在PL/SQL Developer中创建一个package。
➢此时会生成一个包头和包体。
➢包头部分定义一个过程:
➢包体部分定义具体的格式控制及输出数据。
➢在print函数中进行输出(输出到控制台和报表)。
➢cursor的定义放在包体的最前面。
➢main函数为该函数的入口地址。
入口函数的特点为:前两个的定义必须为errbuf out varchar2,retcode out number,否则报错。
使用errbuf 返回任何错误消息和retcode 返回完成状态。
参数retcode 返回0 表示成功、警告,成功为1 和2 的错误。
在并行程序运行后,并发管理器会将errbuf 和retcode 的内容写入与您的并发请求相关联的日志文件。
➢屏蔽不在包体外调用的函数声明。
➢创建的package可不必上传到应用。
在数据库中编译后即可。
参考文件:
参考代码:(在PLSQL中打开)
2.定义并发可执行
➢在EBS中注册挂载:登录oracle EBS R12系统。
选择应用开发员--》并发--》可执行。
➢填入如下信息。
3.定义并发程序
●应用开发员--》并发--》程序
参数设置:
Notes:关于值集的定义,参见附件。
Parameter顺序、名称与Procedure 参数一致(Errbuf 与Retcode 不用设定)
4.添加并发程序到请求组
4.1 请求组分配给责任,责任分配给用户。
首先要查找职责和请求组
➢查找职责:
系统管理员》安全性》职责》定义
➢查找请求组:
如果没有自己的请求组,可以自己新建一个。
切换责任到系统管理员>安全性>责任>请求,系统管理员》安全性》职责》请求
查找出请求组后,在上述请求组中加入刚才定义好的并发请求程序。
➢提交请求,查看结果。
切换到相应的职责,本例中为R_GL_总账超级用户,提交一个新的请求,
在请求的名称中找到创建的程序。
提交。
查找。
查看输出。
5.定义值集
入口:应用开发员-->应用产品-->验证-->集
1.弹出值集窗口。
屏幕剪辑的捕获时间: 2011/8/29 15:23
➢输入值集的名称,参考文献中“值集命名惯例”即Fnd_Flex_Value_Sets表中的flex_value_set_name 字段。
➢验证类型:
o无(根本无需验证):在允许用户输入任意值时,只要该值符合值集格式规则,就可以使用“无”
类型值集。
由于不验证“无”值集,因此使用此值集的段不为用户提供值列表。
使用此值集的段(即非验证的段)不能使用弹性域安全性规则来限制用户输入的值。
o独立:值集中值的含义与其他任何段的值无关。
可以在“段值”定义独立值。
o从属:列表中的可用值和给定值的含义从属于在弹性域结构的前面段中选定的独立值。
o表:验证表值集,其值存储在应用表中。
o特殊(高级)
o成对(高级)
o可转换独立
o可转换从属
N:由于更改会影响所有使用相同值集的弹性域和报表参数,因此不能更改现有值集的验证类型。
创建完值集后,可以在Fnd_Flex_Value_Sets表中可以查到相应的值集名称:flex_value_set_name;如果该值集独立,可以在段值Fnd_Flex_Values_Vl中查到相应的值集信息。
编辑信息设置:
屏幕剪辑的捕获时间: 2011/8/29 17:51
➢说明:
o值:就是下拉框中左侧出现的值;
o含义:下拉框中右侧出现的值,是友好型显示给用户的,一般在选完参数值后自动显示在后面;o标识:是实际传往后台的值,如果为空,则传“值”表示的值。
o N:当其他参数引用本参数时,如果“标识”为空,则引用“值”。
➢参考文献:
6.方法。