oracle的报表工具有哪些,报表开发常用的六款小工具

阅读提示:

文章中与FineReport软件使用的相关内容,基于软件的V7.0旧版本编写,不代表软件最新的使用方式。

FineReport最新版免费试用:https://www.finereport.com/product/active

FineReport最新版使用教程:https://help.fanruan.com/finereport/

1de33c9324af08e0d8ae17b4144a8031.png

现在市场中存在的数据报表大多都非常简单,因此企业在操作中没有任何问题。然而你知道吗?这些简单的数据报表软件背后,其实隐藏着强大的报表开发工具,在它们的支撑下,报表工具才有今天这样强大的功能。那么,报表开发常用的小工具都有哪些呢?

一、JasperReports

JasperReports是基于Java的开源报表开发工具,能够在Java环境下制作报表,支持各种格式输出,是常用的报表开发工具。

二、Pentaho

我们都知道,报表软件中最让企业心动的一个功能就是能为企业提供有效的解决方案。而这一点的出现则是全依赖于Pentaho。Pentaho的核心是工作流,能够整合多个开源项目,它偏向于解决方案,在大中型企业应用中非常熟练,而且能够为开发人员提供报表、仪表盘、分析类型以及商业规则等,这些都是普通工具无法做到的。

因此,使用Pentaho报表开发工具开发的软件,不仅功能强大,而且效果要比普通的软件更强悍十倍。

三、OpenReports

同样致力于为企业提供报表解决方案的工具:OpenReports,能够为用户提供非常动态的报表,同时采用Java开发,利用JasperReports作为报表生成引擎,不仅能够解决企业的方案问题,还能够更好的为企业用户提供参考,为其发展提供助力。

四、Pentaho Reporting

之前被命名为JFreeReport,是用来生成报表的报表开发类库。它能为Java应用提供一个非常灵活的打印功能,且能够输出各种格式的文件,便于企业操作。我们都知道,并不是所有的人都能够进入到报表软件当中。而未接触的人要想了解数据,必然要通过外界的手段,比如打印。打印出数据,将其展现在众人面前是最好的讨论方法。

而其他的报表开发工具虽然也是功能强大,但是却不具备打印的功能,因此不能及时输出信息,对企业工作造成一定的小阻碍。有了Pentaho Reporting之后,只需要选择自己想要的格式打印即可。

五、BIRT

作为开放源代码,BIRT主要用于应用程序的设计,为其提供运行时候所需要的组件。通常情况下,BIRT被分为两种,一种是基于Eclipse基础的报表设计,另一种则是在运行期加载应用的运行组件,这两者相互配合,为企业提供更好的报表开发。另外,BIRT还能够提供报表开发制作引擎,便于企业用户使用。

六、JXLS

这种报表开发生成工具,能够支撑非常精美的Excel表格形式。我们都知道,Excel表格功能也非常强大,而且被众人熟知,采用这种表格方式更容易被人接受,使用。所以利用类似JSP标签,写成Excel模板,最终生成报表,非常简单。

阅读次数:1,711

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
初学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、付费专栏及课程。

余额充值