还是公司那个部门委托的那件事。 要将大量数据以复杂的表格表示到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'> </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);