3

レポートにハイパーリンクを追加したい。あるレポートに設定されたハイパーリンクは、別のサブレポートに移動するはずです。これが可能かどうか教えてください。もしそうなら、これを達成するための段階的なアプローチを提供していただけますか?

4

3 に答える 3

2

まず、はい、それは実行可能です。

次に、ステップバイステップの手順を示します。

  1. リンク元の要素を右クリックして、[ハイパーリンク]を選択します。
  2. ハイパーリンクターゲットを選択:空白
  3. ハイパーリンクタイプを選択します:参照
  4. [参照]タブに、(パラメーターを使用して)サブレポートを呼び出すためのURLを入力します。たとえば、私のレポートの1つで、次のようにReportControllerサーブレットを呼び出してサブレポートを作成します。 =&parmName_3 = END_TIME_MS&parmValue_3 = "
  5. [ツールチップ]タブにツールチップを追加します(オプション)。ツールチップで変数とパラメータの値を参照できることに注意してください。

これを行う方法は他にもあることに注意してください。レポートの生成にJavaとサーブレットを使用していない場合は、メソッドが異なる場合があります。詳細な手順については、ireportのドキュメントを参照することをお勧めします。

于 2012-06-11T17:29:13.467 に答える
1

私は自分の問題の解決策を得ました。あるサブレポートから別のサブレポートに値を渡す必要があるという要件はありませんでした。そのため、リンクが必要なテキストフィールドを右クリックするだけです。ハイパーリンクターゲットを「Self」に設定し、ハイパーリンクタイプを「LocalPage」に設定し、ハイパーリンクページ式で次の式を設定します。Integer.valueOf(i)、ここでiはページ番号(私の場合はシート番号)です。ハイパーリンクで私を連れて行きたい。必要に応じて、次のプロパティを使用することもできます:Integer.valueOf($ V {REPORT_COUNT})。

返信ありがとうございます。

于 2012-06-19T10:35:46.080 に答える
0

レポート内のナビゲーションについては、ハイパーリンクとアンカーを使用して実装しました

以下はhyperlinkAnchorExpressionのテキストフィールドです。これがリンクになります。hyperlinkType="LocalAnchor"に注意してください

<textField isStretchWithOverflow="true" hyperlinkType="LocalAnchor">
            <reportElement positionType="Float" stretchType="RelativeToTallestObject" x="80" y="0" width="80" height="20" forecolor="#3286C7" uuid="9a8313d2-21f3-4cd2-8e40-f9cddeb3cdaf"/>
            <box topPadding="3" leftPadding="3">
                <topPen lineWidth="0.2"/>
                <leftPen lineWidth="0.2"/>
                <bottomPen lineWidth="0.2"/>
                <rightPen lineWidth="0.2"/>
            </box>
            <textElement>
                <font isUnderline="true"/>
            </textElement>
            <textFieldExpression><![CDATA[$F{cAddress}.getId()]]></textFieldExpression>
            <hyperlinkAnchorExpression><![CDATA[$F{cAddress}.getId().toString()]]></hyperlinkAnchorExpression>
        </textField>

以下はanchornameexpressionです。これは、ハイパーリンクがクリックされ、値がレポート内の任意のhyperlinkAnchorExpression値と一致したときに呼び出されます。

</textField>
        <textField isStretchWithOverflow="true">
            <reportElement positionType="Float" stretchType="RelativeToTallestObject" x="80" y="0" width="80" height="20" uuid="9a8313d2-21f3-4cd2-8e40-f9cddeb3cdaf"/>
            <box topPadding="3" leftPadding="3">
                <topPen lineWidth="0.2"/>
                <leftPen lineWidth="0.2"/>
                <bottomPen lineWidth="0.2"/>
                <rightPen lineWidth="0.2"/>
            </box>
            <textFieldExpression><![CDATA[$F{id}]]></textFieldExpression>
            <anchorNameExpression><![CDATA[$F{id}.toString()]]></anchorNameExpression>
        </textField>

レポートとサブレポート間を移動するためにこれを実装しました。これがお役に立てば幸いです。

于 2019-01-12T11:46:06.327 に答える