1

これらの値を返す MySQL クエリがあります。

+------------+-------+
| transcount | users |
+------------+-------+
|        118 |     2 |
|        240 |     4 |
|        480 |     8 |
+------------+-------+

これは、各ユーザー レベルでのトランザクションの数です。users フィールドの順序は asc です。

線形スケーリング システムでユーザー数が増加するにつれて、トランスカウントが段階的に増加することを示すレポートを作成する必要があります。たとえば、ユーザー数が 2 の場合は 118 のトランザクションがあり、線形スケーリング システムではユーザー数が 4 の場合は 236 のトランスカウント (4 / 2 x 118 トランザクション) が得られ、8 人のユーザーでは 480 のトランスカウント (8 / 4 x 240) が得られます。トランスカウント)。

最初の行は常に同じ値です。最終レポートは次のようになります。

+------------+-------+-------------------------|
| transcount | users | Count_at_linear_scaling |
+------------+-------+-------------------------|
|        118 |     2 |                     118 |
|        240 |     4 |                     236 |
|        480 |     8 |                     480 |
+------------+-------+-------------------------|

これは、SQL または Jasper チャートで行うことができます。あなたはどれをお勧めしますか?MySQL と Jasper でこれを行うにはどうすればよいですか?

4

2 に答える 2

1

ジャスパーサポートオファーのジム:

こんにちは、このリンクのメソッドを試してください。必要なものと非常によく似ています。 http://jasperforge.org/plugins/mwiki/index.php/Jasperserver/Creating_A_Percent_Of_Field どうなるか教えてください。

于 2012-07-02T23:28:59.013 に答える
0

より良い解決策を見つけました。結果データの行ごとにバック ブリゲード パターンを実装する必要がありました。in と out という名前の 2 つの変数を使用して、前の行の値を変数 out に格納し、新しい行の値を変数 in に格納できます。秘訣は、Jasper に in と "Now" に「自動」評価時間を使用するように指示することです。 「評価時間外です。例えば:

<variable name="in" class="java.lang.Long" resetType="None" calculation="System">
    <variableExpression><![CDATA[$V{out}]]></variableExpression>
    <initialValueExpression><![CDATA[0]]></initialValueExpression>
</variable>
<variable name="out" class="java.lang.Long" resetType="None">
    <variableExpression><![CDATA[$F{Y_VALUE}]]></variableExpression>
    <initialValueExpression><![CDATA[$F{Y_VALUE}]]></initialValueExpression>
</variable>

<detail>
    <band height="35">
        <textField>
            <reportElement x="3" y="0" width="46" height="20"/>
            <textElement/>
            <textFieldExpression><![CDATA[$F{controllers_users}]]></textFieldExpression>
        </textField>
        <textField>
            <reportElement x="67" y="0" width="58" height="20"/>
            <textElement/>
            <textFieldExpression><![CDATA[$F{Y_VALUE}]]></textFieldExpression>
        </textField>
        <textField evaluationTime="Auto">
            <reportElement x="148" y="0" width="44" height="20"/>
            <textElement/>
            <textFieldExpression><![CDATA[$V{in}]]></textFieldExpression>
        </textField>
        <textField>
            <reportElement x="203" y="0" width="44" height="20"/>
            <textElement/>
            <textFieldExpression><![CDATA[$V{out}]]></textFieldExpression>
        </textField>
    </band>
</detail>

-フランク

于 2012-07-05T06:26:22.767 に答える