2016-12-14 82 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

相关问题