2016-12-14 83 views
0

我有一個SubReport,它通過JRBeanCollectionDataSource獲取文件路徑列表。這SubReport有一個TitleDetail帶。在此階段,Detail頻段只有一個ImageJASPER iReport - 在詳細視圖中連續顯示2個圖像

一切工作正常,但每個Image顯示在Detail頻段的一行中。

enter image description here

是否有可能以顯示彼此相鄰地每個行的兩個圖像進行圖像正量?這意味着如果有3個圖像,例如Detail頻段將有2行;第一個包含2個圖像,第二個包含一個圖像。

enter image description here

感謝您的支持, 托馬斯

回答

1

你可以做到這一點有兩個水平填充列的報告。

報告將指定

<jasperReport columnCount="2" printOrder="Horizontal" pageWidth=".." columnWidth=".." columnSpacing=".." ...> 

詳細信息區域將包含單個圖像元素(列寬限度內的尺寸)。

+0

這很好用。我添加了一個帶有2列的SubReport,在第一列放置了一個Image,並將printOrder設置爲Horizo​​ntal。感謝那。 –

0

也許有printWhenExpression。把所有圖像細節和打印不同的圖像集奇數和偶數行的細節:

<detail> 
     <band height="125" splitType="Stretch"> 
      <image> 
       <reportElement x="12" y="14" width="172" height="96" uuid="7afa8aa8-0360-466e-94a8-78be647a2de0"> 
        <printWhenExpression><![CDATA[($V{REPORT_COUNT} & 1) == 1]]></printWhenExpression> 
       </reportElement> 
       <imageExpression><![CDATA["C:/image1.jpg"]]></imageExpression> 
      </image> 
      <image> 
       <reportElement x="198" y="14" width="172" height="96" uuid="8b3620f2-6001-4bcb-87d8-d479747a99fe"> 
        <printWhenExpression><![CDATA[($V{REPORT_COUNT} & 1) == 1]]></printWhenExpression> 
       </reportElement> 
       <imageExpression><![CDATA["C:/image2.jpg"]]></imageExpression> 
      </image> 
         <image> 
       <reportElement x="12" y="14" width="172" height="96" uuid="e5776506-fbab-4c13-8a48-cd3de6c33b3a"> 
        <printWhenExpression><![CDATA[($V{REPORT_COUNT} & 1) == 0]]></printWhenExpression> 
       </reportElement> 
       <imageExpression><![CDATA["C:/image3.jpg"]]></imageExpression> 
      </image> 
     </band> 
    </detail> 
+0

感謝您指出我忘記提及n張圖片。我已經更新了這個問題。在同一時間我有一個想法。如何返回列表的列表,而第一個列表包含行中的圖像數量,第二個列表是行數。 –

+0

順便說一句@PeterMmm我試着用2個靜態圖像在詳細視圖中解決你的問題。執行後,第一張圖片將出現在第一行的左側'$ V {REPORT_COUNT}&1)== 1',第二張圖片將出現在右側'$ V {REPORT_COUNT}&1)== 0'上在第二排旁邊。 –

+0

我的例子是3張圖片。無論如何,它在水平方向出現,取決於'reportElement'的'x'座標。 – PeterMmm

相關問題