【问题标题】:How to set dynamic main report width when using crosstab?使用交叉表时如何设置动态主报告宽度?
【发布时间】:2016-03-01 22:41:55
【问题描述】:

我正在制作一个仅显示具有动态记录计数的交叉表的报告。

这意味着我需要一个没有固定宽度的主报表。到目前为止,我似乎没有使用干净的方法(我只是让宽度超大,比如超过 10,000)。

那么是否有某种针对宽度的 build-it 关键字,例如 DYNAMIC 或 hasNoWidth,以便主报告的宽度将基于交叉表的宽度。

【问题讨论】:

    标签: jasper-reports crosstab


    【解决方案1】:

    对于单个交叉表,使用属性ignoreWidth="true"

    来自Schema reference

    如果此属性设置为 true,则交叉表将向 向右(如果交叉表方向为 RTL,则向左)只要 因为它需要。这将导致呈现交叉表单元格 超过页面边界;这些元素将被某些人导出 基于网格的导出器,例如 HTML 或 XLS 导出器,但不会 在遵守页面宽度的导出格式中可见,例如 PDF 出口商。

    注意:这如何适用于动态宽度可以作为 HTML、XLS 的导出,但不适用于动态宽度不能作为 PDF 的导出。

    示例

    <crosstab ignoreWidth="true">
        ....
    </crosstab>
    

    如果你喜欢所有交叉表在报告中的ignoreWidth,你也可以设置属性net.sf.jasperreports.crosstab.ignore.width

    示例

    <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="Blank_A4" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="48809477-2290-4dda-a6f9-5d348ff0b70b">
        <property name="net.sf.jasperreports.crosstab.ignore.width" value="true"/>
    ....
    </jasperReport>
    

    【讨论】:

    • 另外我想知道你是否可以制作一个配置,只要它超过页面高度就不会剪切交叉表。但如果您希望这是另一个问题,我会理解的。
    • 您不希望它出现在新页面中吗?...应该继续吗?你的出口是什么?
    • 我不这样做,因为报告必须不断地放在一个表中。我会说 excel,我决定将页面的顶部和底部边距设置为 0。
    • 在 jasper 报告中,您在 jasperReport 标记上有一个属性 isIgnorePagination="true" ......但您也可以在导出时设置。你可以检查这个excel(它如何处理不同的工作表)stackoverflow.com/questions/34808741/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 2018-11-01
    相关资源
    最近更新 更多