APEX下用HTML显示复杂表格数据的一种尝试

还是公司那个部门委托的那件事。 要将大量数据以复杂的表格表示到WEB画面上。(图为表格之一的缩微图像)

为啥要作如此麻烦的表格?

 因为这原来就是一个牛人在EXCEL上写的一个程序。EXCEL上做这些事情不是易如反掌嘛。

用户要求将EXCEL的表格在Web上真实再现。

 

总体设想就是将HTML表格和数据分别处理,再用javascript整合到一起。具体做法如下:

● 借用原先的EXCEL表格,进行某些更改,并保存为HTML格式。(HTML表格)

●  用PL/SQL的过程从数据库取出数据,并隐藏。(取数据)

● onload时执行javascript,将取出的数据匹配到HTML表格。

 

 1. EXCEL表格的更改和HTML保存

 在EXCLE上做出这样的表格。栏目名称旁边是其变量名。为便于javascript处理,前后加上两个##。

再将其以HTML格式保存到文件,比如 p92_summary.html。

 

生成的HTML代码节选:

 <tr class=xl6428637 height=26 style='mso-height-source:userset;height:19.5pt'>
  <td height=26 class=xl7228637 style='height:19.5pt'> </td>
  <td class=xl7128637>部门: </td>
  <td class=xl7528637 align=center>##SR_MGR_NM##</td>
  <td class=xl7628637 align=center>##SR_DEPT_NM##</td>
  <td class=xl7128637><span style='mso-spacerun:yes'>&nbsp;</span>部長</td>
  <td class=xl7128637> </td>
  <td class=xl7728637>承认号码</td>
  <td class=xl7828637>##BCASE_APR_NO#<span style='display:none'>#</span></td>
  <td class=xl7928637> </td>
  <td class=xl7928637> </td>
  <td class=xl7928637> </td>
  <td class=xl7928637> </td>
  <td class=xl7428637> </td>
 </tr>

 

注意:

1. EXCEL生成的HTML在APEX上显示时可能会出现某些错位。在EXCEL内部不能解决时,要通过修改HTML源代码修正。

2.如果不是用EXCEL而改用其他HTML生成软件,应该是可以的。我使用过OpenOffice的表计算软件,生成的HTML代码比EXCEL还要简洁一些。

 

 2. 取出数据的PL/SQL过程

这个PL/SQL过程将Table/View名和where条件作为参数,输出如下的HTML。

一个HTML的p块,ID为域名(也就是EXCEL中夹在两个##之间的变量名,其后是相应的数据)

<p id="BCASE_UKETSUKE_NO">722</p>
<p id="SR_MGR_NM">Tracy, ZHANG</p>
<p id="SR_DEPT_NM">Service Development</p>
<p id="BCASE_APR_NO">20120129</p>

......

 

使用例:

sup_html_generator('VIE_BCASE_KEISAN_IE2_1','BCASE_UKETSUKE_NO='||:CRT_UK_NO);


 

PL/SQL过程代码:

create or replace procedure "SUP_HTML_GENERATOR"(P_table_nameinvarchar2,P_where_clauseinvarchar2,one_timeinnumberdefault100)
is
  nl char(1):=chr(13);
  v_sql  varchar2(32767);

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值