盒子
导航
文章目录
  1. 输出成HTML报表
  2. 第一步:制作Html模板
  3. 第二步:生成输出HTML的代码
  4. 总结

EBS快速开发美观的HTML报表

在实际项目实施的过程当中,一般是功能顾问与客户沟通需求,然后写好文档,技术顾问按照需求文档进行报表的开发。有一些非严格性要求的报表客户可能只是拿来看看,对对帐对对数据,这类报表不需要输出成为PDF格式,只需要输出到HTML或者Excel当中进行查看,但同时客户又提供了一个美观可展示的模板,功能顾问往往在Excel当中做好这个模板然后提供在需求开发文档中,例如下图:
快速开发美观的HTML报表

输出成HTML报表

如何让它输出到Excel之后还保持原样的美观呢?我们可以通过输出成HTML报表,这样既可以在浏览器中查看,也可以在Excel中查看,关键是用Excel打开这个HTML之后还能保持像原模板一样的美观,而不是四四方方的行列Table结构。快速开发的方法自然不是一行一行编写HTML代码和CSS样式(不少同事这么干,同寝室的哥们儿就是这么干的,然后开发这样一个报表他需要三天,其中一天用来写这个模板)。下面讲述一种我在项目中总结的快速开发这类HTML报表的方法,能极大地提高开发效率,让我们将主要精力和时间集中在报表的取数逻辑SQL的编写上面。

第一步:制作Html模板

依据功能顾问给出的需求文档样例,先制作一个Html模板。多数功能顾问都会将模板的源文件(Excel)给你,或者是直接给你,或者是加载到Word需求文档里面。比较坑爹的功能顾问会搞个截图,告诉你做成这个样子,那么你最好去跟他拿到这个他制作的Excel源文档,以便你能直接拷贝。

首先要处理Excel里面的模板格式,例如该合并单元格的合并单元格,该居中的居中,可以在结果中循环输出结果的则删除其他多余部分,只留下一个Minimum的样例即可,即让你的模板最后变成所见即所得,然后剔除多余部分。这些操作全部在Excel当中完成。之后选中你的模板部分内容,在Excel当中选择 文件 / 另存为 HTML文件,注意在出现的选项当中选择保存你选中的部分即可,不需要保存整个Sheet页面,然后得到一个初步的HTML文件。

由于是从Excel当中另存生成的HTML页面,所以会有很多冗余代码数据,需要将这部分不影响模板显示的数据删除。凡是不影响HTML模板显示样式的代码都进行删除,然后将HTML代码里面的所有英文单引号替换成英文双引号,并确保HTML头为(不然可能浏览器解析有问题):

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml">

以上操作在文本编辑器(例如Sublime Text)当中完成。制作好的HTML模板如下:
快速开发美观的HTML报表

第二步:生成输出HTML的代码

Oracle Erp里面有两张表,All_Source和Dba_Source,这两个表就是存储了你编译到系统里面的源代码,于是就可以将HTML代码粘贴到一个程序包Package(Chx_Html_Buffer.pck)里面,然后将这个Package编译到系统里面,这样我们就能够根据程序包名来将HTML代码查询出来,然后LOOP一下就可以将他们输出出来了,这部分可以写成一个小程序来完成这个输出工作(Chx_Wdb_Utl.pck)。再然后便可以将输出的代码Copy到我们要开发的报表里面,OK,输出模板的代码你就不用愁了,接下来你就可以专注于写你的业务逻辑PLSQL,然后看看哪一个输出在哪一格显示,稍微修改点儿代码就OK了。

将HTML代码放入Package中进行编译:
快速开发美观的HTML报表
快速开发美观的HTML报表

编写并编译程序脚本,实现从Dba_Source中读取刚才编译进去的HTML代码,以便输出生成HTML模板的PL/SQL代码。通过右键选择Test运行该程序:
快速开发美观的HTML报表

填写参数,第一个为存储HTML代码的程序包的名称,第二个为该程序包里面HTML代码在程序包主体中开始的行数,第三个为倒数结束的行数,最后一个为即将在报表程序中使用的输出文本的过程名(即用来封装Fnd_File.Put_Line()函数的存储过程,此处为Out_Msg):
快速开发美观的HTML报表

运行输出的代码如下,直接将这部分代码复制粘贴到报表程序当中,就实现了输出HTML脚本生成跟需求所要求一样的美观的模板了,而后只需要将注意力集中于业务逻辑的实现即可。最后在定义并发程序的时候将输出类型选择为Html:
快速开发美观的HTML报表

总结

即写代码生成代码

  1. 从需求文档(Excel模板)整理好HTML模板
  2. 编写PL/SQL脚本将HTML模板代码生成输出
  3. 将输出的代码拷贝到报表程序当中进行调整