好的下面是我的代碼。在這裏,我們從JAVA對象讀取映射,並根據映射的鍵和值填充列。 Java對象映射的形式爲根據使用速度的列將一張表分成多個表格
HashMap<HashMap<String, Object>>
。
所需表格的列數等於外部散列表的數量。行數將等於內部散列表中Sting/Objects的數量。
以下是生成表的代碼。如上所述,表中的列數將取決於java對象中的值。我們面臨的問題是,如果hashmap中的值超過10,那麼PDH生成會導致數據丟失。
<table style="font-family:Arial;font-size:xx-small;color:black" width="100%" border="0" cellspacing="0" cellpadding="0">
#set ($allLegs = $ConfirmationObject.getAllLegs())
#set ($i = 1)
<tr>
<td valign="top" width="30%"> </td>
#foreach($legSzie in $allLegs.keySet())
<td valign="top" width="30%" align="left"><b>Leg $i</b></td>
#set ($i=$i+1)
#end
<tr><td></td></tr>
<td valign="top" width="10%" align="right"> </td>
</tr>
<td colspan="1">
<table style="font-family:Arial;font-size:xx-small;color:black" width="100%" border="0" cellspacing="0" cellpadding="0">
#set ($map = $ConfirmationObject.getLegMap(1))
#foreach($key in $map.keySet())
<tr>
<td valign="top" width="60%">$key </td>
</tr>
#end
</table>
</td>
#foreach($legString in $allLegs.keySet())
<td colspan="1">
<table style="font-family:Arial;font-size:xx-small;color:black" width="100%" border="0" cellspacing="0" cellpadding="0">
#set ($legMap = $allLegs.get($legString))
#foreach($legKey in $legMap.keySet())
<tr>
<td >$legMap.get($legKey)</td>
</tr>
#end
</table>
</td>
#end
</table>
後市展望: 是否有可能有數據拆分成不同的表有史以來列值達到3個以上的時候?
因此,例如,考慮這樣一個場景,該表看起來像
LEG 1 LEG 2 LEG 3 LEG 4 LEG 5
A 12 13 14 15 16
B 12 13 14 15 16
C 12 13 14 15 16
D 12 13 14 15 16
E 12 13 14 15 16
我們如何拆分此類似
LEG 1 LEG 2 LEG 3
A 12 13 14
B 12 13 14
C 12 13 14
D 12 13 14
E 12 13 14
LEG 4 LEG 5
A 15 16
B 15 16
C 15 16
D 15 16
E 15 16
什麼是ConfirmationObject? –
@MauricePerry:多數民衆贊成在收集的形式hashmap> –
確定,那麼getAllLegs和getLegMap的方法是什麼? –