我仍然是freemarker的新手,但我相信我剛剛爲自己解決了這個問題。它的醜陋,但它的作品。大多數時候我並沒有處理數千甚至數百行,所以效率並不是這個案例的一個重要問題。 NetSuite是加入Freemarker的系統,它有點痛苦。基本上,我運行一次列表並將一個值或另一個值(服務器/本地時間)存儲到一個變量中(在我的情況下爲invoiceDate
)。然後我把這個變量和我需要的其他顯示變量一起放到一個散列中。那個散列是列表中的一行。
要顯示:我運行該列表,該列表按照我的invoiceDate
變量進行排序,並且對於每一行(散列),我打印出我需要的來自該鍵/值對的信息。
我知道這是4年前,但我今晚需要一個答案,並找不到一個,直到我這樣想...希望這可以幫助下一個傢伙!
<#assign y=[]>
<#list record.lines as tmpLine>
<#assign invoiceDate = tmpLine.datecol>
<#if (tmpLine.someIdentifyingMarker != "")>
<#assign invoiceDate = tmpLine.custbody_p_ending_date>
</#if>
<#assign dataLine = {"displayDate":invoiceDate, "Description":tmpLine.description, "CheckNum":tmpLine.custbody_checknumprint, "InvoiceAmount":tmpLine.charge,"Credit":tmpLine.payment,"Remaining":tmpLine.amountremaining,"Balance":tmpLine.balance}>
<#assign y = y+[dataLine]>
</#list>
<#list y?sort_by('displayDate') as line><tr>
<td colspan="4">${line.displayDate}</td>
<td colspan="10">${line.Description}</td>
<td colspan="4"><span style="background-color: rgb(255, 255, 255);">${line.CheckNum}</span></td>
<td align="right" colspan="5">${line.InvoiceAmount}</td>
<td align="right" colspan="4">${line.Credit}</td>
<td align="right" colspan="4"><span style="text-align: -webkit-right; background-color: rgb(255, 255, 255);">${line.Remaining}</span></td>
<td align="right" colspan="5">${line.Balance}</td>
</tr>
</#list></table>