-1

特定の列をグループ化して、 iReport5.0.0でレポートを作成するにはどうすればよいですか。例えば

username  category       view
xmen        news         good
xmen        media        good
xmen        radio        bad
xmen        tv            ok
Ymen        news         good
Ymen        media        good
Ymen        radio        bad
Ymen        tv            ok

表形式のレポートとして簡単に作成できますが、グループ化に関しては行き詰まります。

このように表示される表形式のレポートが欲しい

username  category       view
xmen        news         good
            media        good
            radio        bad
             tv            ok
Ymen        news         good
            media        good
            radio         bad
             tv            ok

グループのプロパティはどこにあり、どのように実行できるか。これらはすべて表形式になりますが、ここではできません。

plsは私のためにこれをフォーマットすることができます。

4

2 に答える 2

1

または、次のこともできます (iReport を使用)。

  • ユーザー名に基づいてレポート グループを追加します。グループ ヘッダーとフッターは追加しません。
  • フィールドをレポート インスペクターからレポート デザイナーの詳細バンドにドラッグ アンド ドロップします。
  • Text fieldユーザー名を保持する を選択し、プロパティ パネルで [繰り返される値を印刷する] のチェックを外します。

結果のレポートは、次の図に示すようになります。 レポート出力

さらに参照するために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" name="report6" language="groovy" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="9ecb5f72-ce8e-4b32-bc4b-124460d6d018">
    <property name="ireport.zoom" value="1.0"/>
    <property name="ireport.x" value="0"/>
    <property name="ireport.y" value="0"/>
    <queryString>
        <![CDATA[select * from (

select 'xmen' as  username, 'news' as category, 'good' as view
union select 'xmen', 'media', 'good'
union select 'xmen', 'radio', 'bad'
union select 'xmen', 'tv', 'ok'
union select 'Ymen', 'news', 'good'
union select 'Ymen', 'media', 'good'
union select 'Ymen', 'radio', 'bad'
union select 'Ymen', 'tv', 'ok'

) tbl

order by username]]>
    </queryString>
    <field name="username" class="java.lang.String"/>
    <field name="category" class="java.lang.String"/>
    <field name="view" class="java.lang.String"/>
    <group name="user">
        <groupExpression><![CDATA[$F{username}]]></groupExpression>
    </group>
    <columnHeader>
        <band height="20">
            <staticText>
                <reportElement uuid="6cb3e793-d932-4d29-aca4-3b1efa03a5dd" x="0" y="0" width="185" height="20"/>
                <textElement/>
                <text><![CDATA[username]]></text>
            </staticText>
            <staticText>
                <reportElement uuid="341be19e-6a83-4b8d-9878-8e2c8760b014" x="185" y="0" width="185" height="20"/>
                <textElement/>
                <text><![CDATA[category]]></text>
            </staticText>
            <staticText>
                <reportElement uuid="8778300d-b296-41d9-9d12-abda95a80c71" x="370" y="0" width="185" height="20"/>
                <textElement/>
                <text><![CDATA[view]]></text>
            </staticText>
        </band>
    </columnHeader>
    <detail>
        <band height="20" splitType="Stretch">
            <textField>
                <reportElement uuid="4d88aa40-ee74-4535-99a4-e3aec64188d2" isPrintRepeatedValues="false" x="0" y="0" width="185" height="20"/>
                <textElement/>
                <textFieldExpression><![CDATA[$F{username}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement uuid="c098560e-c140-4b9a-9599-ed0875014c0f" x="185" y="0" width="185" height="20"/>
                <textElement/>
                <textFieldExpression><![CDATA[$F{category}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement uuid="1784b19e-6adb-4d3e-aa04-d172ee39a7cf" x="370" y="0" width="185" height="20"/>
                <textElement/>
                <textFieldExpression><![CDATA[$F{view}]]></textFieldExpression>
            </textField>
        </band>
    </detail>
</jasperReport>
于 2013-01-25T12:41:18.197 に答える
0

iReportを使用すると、レポートインスペクターでレポート名を右クリックして[レポートグループを追加]することで、グループ化を追加できます。クエリデザイナでデータをグループ化する必要があることと、レポートデザイナでグループを追加する必要があることを認識しておくと、主に2つの新しいバンドが追加され、グループ名の強調表示など、グループに固有のレポートデザインを管理できるようになります。デザイナのグループを使用すると、変数の評価時間を管理することもできます。これにより、たとえば、各グループのすべての要素を合計することができます。

ただし、例に基づくと、ユーザー名列のテキストフィールドで式を使用し、2つの変数を追加することで回避できます。計算なしで$F{username}に等しい変数を追加し、「currentValue」という名前を付けます。$ V {currentValue}に等しい2番目の変数を追加し、「previousValue」という名前を付けます。

次に、レポートインスペクターパネルの変数リストで、変数「previousValue」を「currentValue」変数の上にドラッグします。JRは変数を上から下に実行するため、最初に「previousValue」にnullを与え、次に「currentValue」に現在の値を与え、次の行で「currentValue」が前の行の値になり、「previousValue」に割り当てられます。 "そして"currentValue"は現在の値を取ります。したがって、テキストフィールド式に入力するだけです

$V{previousValue}==$V{currentValue} ? "" : $F{username}

そうすれば、ユーザー名は最初に表示されたときにのみ表示されます。

于 2013-01-25T12:24:10.947 に答える