Просмотр коллекций объектов в отчете - PullRequest
1 голос
/ 21 октября 2011

Существует коллекция объектов. И я хочу показать ее в отчете о яшме. Допустим, класс предметов;

public class Item{ Color color; Category category;  and getters and setters for color & category}  

public class Color{int id; String name; //and getters and setters} public class Category {int id; String name; // and getters and setter} Тогда в коллекции есть объекты Item. Я хочу показать цвет, категорию идентификаторы и имена предметов в отчете яшмы. Пожалуйста, кто-нибудь подскажет, как это сделать (как написать выражение в отчете jasper; jrxml). purchaseList - моя коллекция, состоящая из объектов Item.

    `try {
        InputStream in = getClass().getResourceAsStream("/Reports/invoice.jasper");
        Map<String, Object> params = new HashMap<String, Object>();

        JRBeanCollectionDataSource datasource = new JRBeanCollectionDataSource(purchasingList);

        JasperPrint jasperPrint = JasperFillManager.fillReport(in, params, datasource);
        JasperViewer.viewReport(jasperPrint, true);

    } catch (Exception e) {
        e.printStackTrace();
    }`

1 Ответ

1 голос
/ 21 октября 2011

Для того, чтобы показать, например. идентификатор категории вы должны поместить что-то подобное в jrxml

<?xml version="1.0" encoding="UTF-8"?>
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd">
    <property name="ireport.zoom" value="1.0" />
    <property name="ireport.x" value="0" />
    <property name="ireport.y" value="0" />
    <style name="Heading 1" isDefault="false" fontSize="16" isBold="true" />
    <queryString>
                <![CDATA[]]>
    </queryString>
    <field name="category" class="Category">
        <fieldDescription><![CDATA[category]]></fieldDescription>
    </field>
    <title>
        <band height="21">
            <staticText>
                <reportElement style="Heading 1"/>
                <textElement textAlignment="Center">
                    <font isUnderline="true" />
                </textElement>
                <text>Purchases</text>
            </staticText>
        </band>
    </title>
    <pageHeader>
        <band splitType="Stretch">
            <staticText>
                <reportElement/>

                <textElement textAlignment="Center" verticalAlignment="Middle">
                    <font fontName="Arial" size="12" isBold="true" />
                </textElement>
                <text>Category Id</text>
            </staticText>
    </pageHeader>
    <detail>
        <band height="23" splitType="Stretch">
            <textField>
                <reportElement/>
                <textElement verticalAlignment="Bottom">
                    <font fontName="Arial" isItalic="true" />
                </textElement>
                <textFieldExpression class="java.lang.Integer"><![CDATA[$F{category}.getId()]]></textFieldExpression>
            </textField>
    </detail>
</jasperReport>

При необходимости вы можете изменить параметры форматирования.

Опять же, это вызывающий пример для идентификатора категории. Я полагаю, вы можете настроить его в соответствии с другими необходимыми вам полями, довольно просто.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...