初学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>'); ### Oracle报表开发学习记录 #### 1. EBS系统熟悉与登录 - **EBS系统登录**:在浏览器中输入指定URL(例如:`http://ebstest.livzon.cn:8011/OA_HTML/RF.jsp?function_id=28910&resp_id=-1&resp_appl_id=-1&security_group_id=0&lang_code=US¶ms=...`),此URL包含了访问特定功能所需的参数,包括`function_id`、`resp_id`等,用于确定具体的登录页面或功能页面。登录时需输入用户名及密码。 - **登录后界面**:成功登录后将进入EBS系统的主页。用户可以根据需求选择不同的责任权限来访问相应的模块或功能。 #### 2. 数据抽取与处理 - **查看所需信息字段**:在EBS系统中,可以通过两种方式查看字段信息: - 选中输入框后,通过菜单中的“帮助”->“诊断”->“检查”选项获取字段详情。 - 同样选中输入框后,通过“帮助”->“诊断”->“检查”->“块”->“SYSTEM”->“字段”->“LAST_QUERY”->“值”的路径查看相关信息。 - **编写SELECT语句**:根据上一步骤获取的信息,编写SQL查询语句以抽取需要的数据。 #### 3. 报表开发流程 - **参考现有报表**:可以参照现有的报表样式进行开发,以便快速掌握报表设计的基本结构和逻辑。 - **定义存储过程**:在PL/SQL中定义必要的存储过程,比如`raise_exception`用于抛出异常、`output`用于输出数据到HTML等,这些过程对于报表的正确运行至关重要。 - **定义网页格式**:利用HTML和CSS来定义报表的外观样式,如字体大小、颜色、布局等,以确保报表的呈现效果符合预期。 #### 4. 常用资源整理 - **常用表、字段、函数、存储过程、集值**:在开发过程中整理并记录经常使用的数据库表、字段名称、内置函数、自定义存储过程以及集值等信息,便于后续查阅和复用。 #### 5. 测试与部署 - **测试文件包**:完成报表开发后,需要对文件包进行测试,确保没有错误并能正常运行。 - **上传报表至EBS系统**: - **登录系统管理员账号**:使用具有足够权限的账户登录EBS系统。 - **配置并保存并发程序**:通过“并发”->“程序”->“可执行”选项,配置报表的相关设置,并保存。 - **定义并发程序**:通过“并发”->“程序”->“定义”选项,进一步配置报表的具体细节。 - **定义请求组**:在“系统管理员”->“安全性”->“责任”->“定义”->“责任”->“请求”->“请求组”中设置报表的请求组。 - **测试权限**:选择相应的权限进行测试,确保报表能够正确显示。 #### 6. 错误处理与验证 - **查看日志**:如果报表运行时报错,应查看系统日志,根据日志中的信息定位问题并进行修复。 - **验证输出结果**:当报表成功运行后,还需要验证输出结果是否符合预期,确保数据的准确性和完整性。 ### Oracle报表开发示例代码分析 - **HTML报表生成**:通过输出一系列HTML标签来构建报表页面。例如,通过`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">');`等语句定义HTML文档的基本结构。 - **报表标题设置**:通过`<h2 align=center><B>库存现有量报表</B></h2>`设定报表标题。 - **报表数据展示**:使用FOR循环遍历查询结果,通过`output()`函数逐行输出数据到HTML表格中,展示库存组织编码、库存组织说明、子库编码、子库说明、物品编码、物品说明、批次、库存量、最小库存量和最大库存量等信息。 - **SQL查询语句**:示例中的SQL查询语句从多个表(如`mtl_onhand_quantities_detail`, `ORG_ORGANIZATION_DEFINITIONS`, `mtl_subinventories_all_v`, `MTL_SYSTEM_ITEMS_VL`)中联接数据,以获取库存现有量的相关信息。 通过以上步骤和技术点的详细介绍,我们可以了解到Oracle报表开发涉及的技术栈、开发流程及注意事项,为初学者提供了完整的指南。
剩余12页未读,继续阅读
- duck_rabbit2012-07-06十个积分对这篇文章有点多了吧?我还以为里面有料呢,原来不用下载,看资源介绍就可以了
- 你的益达_2012-10-30不是我要的,而且资源很少。不值得下载。
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 数据库课程设计-基于的个性化购物平台的建表语句.sql
- 数据库课程设计-基于的图书智能一体化管理系统的建表语句.sql
- Java 代码覆盖率库.zip
- Java 代码和算法的存储库 也为该存储库加注星标 .zip
- 免安装Windows10/Windows11系统截图工具,无需安装第三方截图工具 双击直接使用截图即可 是一款免费可靠的截图小工具哦~
- Libero Soc v11.9的安装以及证书的获取(2021新版).zip
- BouncyCastle.Cryptography.dll
- 5.1 孤立奇点(JD).ppt
- 基于51单片机的智能交通灯控制系统的设计与实现源码+报告(高分项目)
- 什么是 SQL 注入.docx