【发布时间】:2018-01-15 14:39:51
【问题描述】:
好的,下面是我拥有的代码。在这里,我们从 JAVA 对象中读取映射并根据映射的键和值填充列。 Java 对象映射的格式为
HashMap<HashMap<String, Object>>。
所需表的列数等于外部哈希图的数量。行数将等于内部 hashmap 中的 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
> 的 java 集合的名称 -
好的,那么getAllLegs和getLegMap的方法是什么?
-
@MauricePerry:getAllLegs 将返回对应于表列数的外部哈希图。 getLegMap 将返回对应于表行的内部哈希图。感谢您抽出宝贵时间。感谢您对此的调查。