ebs html 图表无数据库,Oracle-EBS-Html报表开发总结(12页)-原创力文档

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

输出职务的信息,在输出时注意报表的格式,注意输出部分是列还是行的循环输出。

End loop;

End loop;

1.2 报表列动态

在报表的输出过程中,表行是作为参数输出的,具体以下表为例

月份,一级组织和二级组织都是作为参数的一部分, 在此处详细介绍在输出报表时关于如何

控制表样算行的三种方法:

1) 嵌套 Table 的方法

在此处主要介绍表头下面的表格输出

月份

初学oracle报表开发笔记 -- process report output('<HTML xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel">'); output('<head>'); output('<title>库存现有量报表</title>'); output('<style>'); output('body,table{font-size:13px;font-family:"Book Antiqua","Segoe UI", Tahoma, "Trebuchet MS", verdana, helvetica, arial, sans-serif, Georgia;}.text {mso-number-format:"\@";}.retnum {mso-number-format:"0\.00";}'); output('</style>'); output('</head>'); output('<body>'); output('<h2 align=center><B>库存现有量报表</B></h2>'); output('<table width=600 border=0 bordercolor=black>'); output(' <tr>'); output('<th align=right>OU:</th>'); output('<td align=left>' || g_ou_name || '</td>'); output('<th align=right>组织:</th>'); output('<td align=left>' || l_organization_name || '</td>'); output(' </tr>'); output('</table>'); output('<table width=1800 border=1 bordercolor=black>'); output(' <tr>'); output('<th rowspan=1 width=50>库存组织编码</th>'); output('<th rowspan=1 width=50>库存组织说明</th>'); output('<th rowspan=1 width=50>子库编码</th>'); output('<th rowspan=1 width=50>子库说明</th>'); output('<th rowspan=1 width=50>物品编码</th>'); output('<th rowspan=1 width=50>物品说明</th>'); output('<th rowspan=1 width=50>批次</th>'); output('<th rowspan=1 width=50>库存量 </th>'); output('<th rowspan=1 width=50>最小库存量</th>'); output('<th rowspan=1 width=50>最大库存量</th>'); output(' </tr>'); FOR cl IN (select OOD.ORGANIZATION_CODE, --库存组织编码 OOD.ORGANIZATION_NAME, --库存组织说明 MSA.SECONDARY_INVENTORY_NAME subinventory_code, --子库编码 MSA.DESCRIPTION subinventory_name, --子库说明 MSIV.SEGMENT1 item_no, --物品编码 MSIV.DESCRIPTION item_desc, --物品说明 MOQD.LOT_NUMBER, --批次 sum(MOQD.Primary_Transaction_Quantity) Primary_Transaction_Quantity, --库存量 MSIV.MIN_MINMAX_QUANTITY, --最小库存量 MSIV.MAX_MINMAX_QUANTITY --最大库存量 from mtl_onhand_quantities_detail moqd, ORG_ORGANIZATION_DEFINITIONS OOD, mtl_subinventories_all_v MSA, MTL_SYSTEM_ITEMS_VL MSIV where moqd.inventory_item_id = msiv.INVENTORY_ITEM_ID and moqd.organization_id = msiv.ORGANIZATION_ID and moqd.organization_id = ood.ORGANIZATION_ID and moqd.subinventory_code = msa.SECONDARY_INVENTORY_NAME and moqd.organization_id = msa.ORGANIZATION_ID group by OOD.ORGANIZATION_CODE, OOD.ORGANIZATION_NAME, MSA.SECONDARY_INVENTORY_NAME, MSA.DESCRIPTION, MSIV.SEGMENT1, MSIV.DESCRIPTION, MOQD.LOT_NUMBER, MSIV.MIN_MINMAX_QUANTITY, MSIV.MAX_MINMAX_QUANTITY) LOOP output(' <tr>'); output(' <td align=left><font size=1>' || cl.ORGANIZATION_CODE || '</font></td>'); output(' <td align=left><font size=1>' || cl.ORGANIZATION_NAME || '</font></td>'); output(' <td align=left><font size=1>' || cl.subinventory_code || '</font></td>'); output(' <td align=left><font size=1>' || cl.subinventory_name || '</font></td>'); output(' <td align=left><font size=1>' || cl.item_no || '</font></td>'); output(' <td align=left><font size=1>' || cl.item_desc || '</font></td>'); output(' <td align=left><font size=1>' || cl.LOT_NUMBER || '</font></td>'); output(' <td align=left><font size=1>' || cl.Primary_Transaction_Quantity || '</font></td>'); output(' <td align=left><font size=1>' || cl.MIN_MINMAX_QUANTITY || '</font></td>'); output(' <td align=left><font size=1>' || cl.MAX_MINMAX_QUANTITY || '</font></td>'); output(' </tr>');
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值