最近在blogjava看到一篇總結報表圖例的文章http://www.blogjava.net/report9d/archive/2009/03/04/257848.html。總結的相當不錯,如果你不知道什麼是標籤式報表,可以看看。
1.先上效果圖
2.數據源還是沿用NameList XML數據源,關於怎麼配置數據源可以看這裏。
<NameList>
<Person>
<Name>強尼</Name>
<Gender>男</Gender>
<Age>56</Age>
</Person>
<Person>
<Name>阿美</Name>
<Gender>女</Gender>
<Age>23</Age>
</Person>
<Person>
<Name>李麗</Name>
<Gender>女</Gender>
<Age>58</Age>
</Person>
<Person>
<Name>傑森</Name>
<Gender>男</Gender>
<Age>32</Age>
</Person>
<Person>
<Name>劉三</Name>
<Gender>男</Gender>
<Age>21</Age>
</Person>
</NameList>
3.製作報表的思路
在製作標籤報表的時候,我們先來理清一下思路。可以發現,其實標籤式報表的每個小標籤內的內容類型都是一樣的,這樣可以認爲報表是由多個標籤組成的。這樣就可以分離出主體報表和子報表的概念,這與Jasperreport裏的subreport(子報表)概念是一樣的。這樣就可以大概抽象出一個標籤式報表的模型了,在主體報表上使用兩個subreport元素指向同一個標籤報表。
但是在Jasperreport裏,報表的渲染是從上到下的。所以我們期待的順序是先渲染1號標籤,然後渲染2號標籤,這是從左到右的渲染,在Jasperreport裏面是做不到的。但是我們可以採用同時渲染1號和2號標籤,這就需要兩個subreport元素。
4.具體步驟(關於子報表的製作,可以參考我的第一篇文章)
a)建立一個主模板,加入兩個subreport。
b)建立一個子模板(標籤模板)。
c)配置subreport的XPATH。
左邊的subreport的Datasource配置
右邊的subreport的Datasource配置
報表模板下載:http://www.blogjava.net/Files/heis/%E5%9B%9B-%E5%88%B6%E4%BD%9C%E6%A0%87%E7%AD%BE%E5%BC%8F%E6%8A%A5%E8%A1%A8/Chapter4.zip