我想在我的报告中添加超链接。一个报告中设置的超链接应该将我带到另一个子报告。你能告诉我这是否可行。如果可以,请提供一步一步的方法来实现这一目标?
问问题
4812 次
3 回答
2
首先,是的,这是可行的。
其次,这是您的分步说明:
- 右键单击要链接的元素,然后选择超链接。
- 选择超链接目标:空白
- 选择超链接类型:参考
- 在参考选项卡中,键入 URL 以调用子报告(带参数)。例如,在我的一份报告中,我调用 ReportController servlet 来创建子报告,如下所示: "./ReportController?reportName=ValidationDetailsChart&reportTitle=Validation%20Details&nParms=3&parmName_1=ORD_NUMBER&parmValue_1=" + $F{ORDER_NUMBER} + "&parmName_2=START_TIME_MS&parmValue_2 =&parmName_3=END_TIME_MS&parmValue_3="
- 在“工具提示”选项卡中添加工具提示(可选)。请注意,您可以在工具提示中引用变量和参数值。
请注意,还有其他方法可以做到这一点,如果您不使用 java 和 servlet 生成报告,您的方法可能会有所不同。我建议查看 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 回答