0

私はいくつかのサブデータセットを持っています。ほとんどの結果はチャートとこの (作業中の) 部分で使用します:

<pieDataset>
 <dataset incrementType="Group" incrementGroup="group_2113924770">
  <datasetRun subDataset="data_2113924770" uuid="724d6473-dd5d-41c4-af6e-4c5b1d995416">
   <connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]>
   </connectionExpression>
  </datasetRun>
 </dataset>
</pieDataset>

サブデータセットの定義は次のようになります。

<subDataset name="data_2113924770" uuid="4a29c5a4-cd0a-4078-8b88-6699c60cbe5e">
    <queryString language="MongoDbQuery">
        <![CDATA[{ collectionName: 'xxx',
               findQuery : { xxx: 1234 },
               sort: { geo.c: -1 }
             }]]>
    </queryString>
    <field name="xxx" class="java.lang.Integer"/>
    <field name="geo.c" class="java.lang.String"/>
    <variable name="var_2113924770" class="java.lang.Integer" resetType="Group" resetGroup="group_2113924770" calculation="Count">
        <variableExpression><![CDATA[$F{geo.c}]]></variableExpression>
    </variable>
    <filterExpression><![CDATA[$F{geo.c} != null]]></filterExpression>
    <group name="group_2113924770">
        <groupExpression><![CDATA[$F{geo.c}]]></groupExpression>
    </group>
</subDataset>

これはチャートに適しています(結果は実際にグループ化されます)。グループ化された geo.c データをチャートではなくテーブルに表示したいのですが、出力は次のようになります。

ここに画像の説明を入力

これは、同じデータセットを使用して私のチャートがどのように見えるかです:

ここに画像の説明を入力

テーブルに入れることができず、行が国別 にグループ化されません..「printRepeatedValues」オプションを試しましたが成功しませんでした。ここが一番の問題だと思います。<dataset incrementType="Group" incrementGroup="group_2113924770">

テーブル内のデータセットの定義は次のようになります。

                <jr:table xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd">
                    <datasetRun subDataset="data_2113924770" uuid="8c9a7682-73d6-4c85-b37d-5333eb7806cb">
                        <connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression>
                    </datasetRun>

入れようとするdatasetと、次のエラーが表示されます。

レポート テンプレートの読み込み中にエラーが発生しました: "dataset" で始まる無効なコンテンツが見つかりました。"datasetRun" が必要です。

質問: キー値の繰り返しを避け、すべての国を 1 回だけにする方法は?

テーブル定義:

<group name="presentation_2113924770" isStartNewPage="true">
    <groupExpression><![CDATA[null]]></groupExpression>
    <groupHeader>
        <band height="225">
            <componentElement>
                <reportElement uuid="59259048-375f-4d6e-8c64-803ed1d626e2" key="table 3" style="table 3" isPrintRepeatedValues="false" x="25" y="24" width="360" height="140" isRemoveLineWhenBlank="true"/>
                <jr:table xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd">
                    <datasetRun subDataset="data_2113924770" uuid="3accd345-1640-4493-a8ae-d000f84ccfcd">
                        <connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression>
                    </datasetRun>
                    <jr:column width="90" uuid="de9563e1-11a3-4c60-80bd-5678a9232475">
                        <jr:tableHeader style="table 3_TH" height="30"/>
                        <jr:tableFooter style="table 3_TH" height="30"/>
                        <jr:columnHeader style="table 3_CH" height="30">
                            <staticText>
                                <reportElement uuid="91f39641-8c93-4cc0-92a9-01649f83991c" x="0" y="0" width="90" height="30"/>
                                <textElement/>
                                <text><![CDATA[Country]]></text>
                            </staticText>
                        </jr:columnHeader>
                        <jr:columnFooter style="table 3_CH" height="30"/>
                        <jr:detailCell style="table 3_TD" height="20">
                            <textField>
                                <reportElement uuid="f7e51c9f-7837-45de-b90a-daaa3c330c06" x="0" y="0" width="90" height="20"/>
                                <textElement/>
                                <textFieldExpression><![CDATA[$F{geo.c}]]></textFieldExpression>
                            </textField>
                        </jr:detailCell>
                    </jr:column>
                    <jr:column width="90" uuid="9374f6e6-0dde-4699-bd4e-3479526babb4">
                        <jr:tableHeader style="table 3_TH" height="30"/>
                        <jr:tableFooter style="table 3_TH" height="30"/>
                        <jr:columnHeader style="table 3_CH" height="30">
                            <staticText>
                                <reportElement uuid="9e67b831-f794-4ead-ad33-fea93cc5ca63" x="0" y="0" width="90" height="30"/>
                                <textElement/>
                                <text><![CDATA[Hits]]></text>
                            </staticText>
                        </jr:columnHeader>
                        <jr:columnFooter style="table 3_CH" height="30"/>
                        <jr:detailCell style="table 3_TD" height="20">
                            <textField>
                                <reportElement uuid="e823f0ac-8c65-4bd9-b243-0a8335aacc4a" x="0" y="0" width="90" height="20"/>
                                <textElement/>
                                <textFieldExpression><![CDATA[$V{var_2113924770}]]></textFieldExpression>
                            </textField>
                        </jr:detailCell>
                    </jr:column>
                </jr:table>
            </componentElement>
        </band>
    </groupHeader>
</group>
4

2 に答える 2

0

変数宣言には、「カウント」計算があります。

<variable name="var_2113924770" class="java.lang.Integer" resetType="Group" resetGroup="group_2113924770" calculation="Count">
    <variableExpression><![CDATA[$F{geo.c}]]></variableExpression>
</variable>

「Sum」が必要です。あなたの問題を正しく理解していれば、それで解決します。

于 2013-08-12T20:35:20.287 に答える
0

Crosstab 要素でさえ、より複雑に見えますが、独自の集計があるため、私の場合は機能します。テーブルはサブデータセットではうまく機能しません。

ここに画像の説明を入力

これは完全に仕事をしました:

<crosstab>
                <reportElement uuid="d276ffa1-21e0-4ed8-8227-9655b60db25d" x="0" y="0" width="802" height="469"/>
                <crosstabDataset>
                    <dataset>
                        <datasetRun subDataset="data_1825349606" uuid="c6e653d6-3eba-4064-a26e-c08d0f036b21">
                            <connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression>
                        </datasetRun>
                    </dataset>
                </crosstabDataset>
                <rowGroup name="geo.c" width="334">
                    <bucket class="java.lang.String">
                        <bucketExpression><![CDATA[$F{geo.c}]]></bucketExpression>
                    </bucket>
                    <crosstabRowHeader>
                        <cellContents backcolor="#73B0E6" mode="Opaque">
                            <box>
                                <pen lineWidth="0.5" lineStyle="Solid" lineColor="#FFFFFF"/>
                            </box>
                            <textField>
                                <reportElement uuid="793c2a9e-5298-48c6-b15f-a1dd017bd781" style="Crosstab Data Text" x="0" y="0" width="70" height="25"/>
                                <textElement/>
                                <textFieldExpression><![CDATA[$V{geo.c}]]></textFieldExpression>
                            </textField>
                        </cellContents>
                    </crosstabRowHeader>
                    <crosstabTotalRowHeader>
                        <cellContents/>
                    </crosstabTotalRowHeader>
                </rowGroup>
                <columnGroup name="var_1825349606" height="30">
                    <bucket class="java.lang.Integer">
                        <bucketExpression><![CDATA["test"]]></bucketExpression>
                    </bucket>
                    <crosstabColumnHeader>
                        <cellContents backcolor="#73B0E6" mode="Opaque">
                            <box>
                                <pen lineWidth="0.5" lineStyle="Solid" lineColor="#FFFFFF"/>
                            </box>
                            <textField>
                                <reportElement uuid="751c32bf-7945-4532-a155-1ad1f533b559" style="Crosstab Data Text" x="0" y="0" width="144" height="30"/>
                                <textElement>
                                    <font fontName="Verdana" size="12" isBold="true"/>
                                </textElement>
                                <textFieldExpression><![CDATA["Hits"]]></textFieldExpression>
                            </textField>
                        </cellContents>
                    </crosstabColumnHeader>
                    <crosstabTotalColumnHeader>
                        <cellContents/>
                    </crosstabTotalColumnHeader>
                </columnGroup>
                <measure name="geo.cMeasure" class="java.lang.Integer" calculation="Count">
                    <measureExpression><![CDATA[$F{geo.c}]]></measureExpression>
                </measure>
                <crosstabCell width="144" height="25">
                    <cellContents>
                        <box>
                            <pen lineWidth="0.5" lineStyle="Solid" lineColor="#FFFFFF"/>
                        </box>
                        <textField>
                            <reportElement uuid="68daa770-9cc9-427f-a03a-9a614e585fb5" style="Crosstab Data Text" x="0" y="0" width="144" height="25"/>
                            <textElement/>
                            <textFieldExpression><![CDATA[$V{geo.cMeasure}]]></textFieldExpression>
                        </textField>
                    </cellContents>
                </crosstabCell>
                <crosstabCell height="25" rowTotalGroup="geo.c">
                    <cellContents backcolor="#CFDBE6" mode="Opaque">
                        <box>
                            <pen lineWidth="0.5" lineStyle="Solid" lineColor="#FFFFFF"/>
                        </box>
                        <textField>
                            <reportElement uuid="7a8a647f-84cd-4cff-84dc-bce867499f91" style="Crosstab Data Text" x="0" y="0" width="50" height="25"/>
                            <textElement/>
                            <textFieldExpression><![CDATA[$V{geo.cMeasure}]]></textFieldExpression>
                        </textField>
                    </cellContents>
                </crosstabCell>
                <crosstabCell width="50" columnTotalGroup="var_1825349606">
                    <cellContents backcolor="#CFDBE6" mode="Opaque">
                        <box>
                            <pen lineWidth="0.5" lineStyle="Solid" lineColor="#FFFFFF"/>
                        </box>
                        <textField>
                            <reportElement uuid="09274f02-3cc5-491e-922c-653f9a8908fe" style="Crosstab Data Text" x="0" y="0" width="50" height="25"/>
                            <textElement/>
                            <textFieldExpression><![CDATA[$V{geo.cMeasure}]]></textFieldExpression>
                        </textField>
                    </cellContents>
                </crosstabCell>
                <crosstabCell rowTotalGroup="geo.c" columnTotalGroup="var_1825349606">
                    <cellContents backcolor="#CFDBE6" mode="Opaque">
                        <box>
                            <pen lineWidth="0.5" lineStyle="Solid" lineColor="#FFFFFF"/>
                        </box>
                        <textField>
                            <reportElement uuid="2d2e463d-c66b-4575-a08d-42db590cd03d" style="Crosstab Data Text" x="0" y="0" width="50" height="25"/>
                            <textElement/>
                            <textFieldExpression>  <![CDATA[$V{geo.cMeasure}]]></textFieldExpression>
                        </textField>
                    </cellContents>
                </crosstabCell>
            </crosstab>
于 2013-08-14T07:26:58.890 に答える