2016-12-14 4 views
0

У меня есть SubReport, который получает список путей файлов через JRBeanCollectionDataSource. Этот SubReport имеет Title и диапазон Detail. На этом этапе диапазон Detail имеет только один Image.JASPER 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

Это работает красиво. Я добавил «SubReport» с двумя столбцами, разместил «Image» в первом столбце и установил для printOrder значение «Горизонтальное». Спасибо за это. –

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 изображений. В любом случае, где он отображается по горизонтали, зависит от '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''. – PeterMmm

Смежные вопросы