DynamicJasper(on Grails) 有目的地保持列或字段空白(空)

发布于 2024-09-03 10:53:50 字数 217 浏览 6 评论 0原文

我想生成一个 pdf 报告,其中一列(或单元格/字段)故意留空。该列实际上确实有一个值,但是我选择不显示它。列标题仍然需要显示。

此功能可能有用的示例:

  • 空白(空)列:报告一侧的注释或注释列。
  • 空白(空)单元格:数独谜题打印输出。

非常感谢。 DynamicJasper 太棒了!感谢 DJ 团队。

问候, 皮特

I want to generate a pdf report, where a column(or cell/field) is left blank(empty) on purpose. This column actually does have a value but, I'm choosing not to display it. The column title still needs to be displayed.

Example of where this could be useful:

  • Blank(empty) column: A comments or notes column down one side of a report.
  • Blank(empty) cell: A sudoku puzzle print-out.

Much appreciated. DynamicJasper is Awesome! Thanks to the dj-team.

Regards,
Pete

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

雨的味道风的声音 2024-09-10 10:53:50

很高兴地宣布,找到了添加“空”列的解决方案 - 简而言之,它是创建一个自定义表达式。

def cb = ColumnBuilder.getInstance()
cb = cb.setTitle("Notes")
cb = cb.setCustomExpression(new BlankExpression())
AbstractColumn columnNotes = cb.build()

然后将其添加到报告的其余部分。

类 BlankExpression 是

public class BlankExpression implements CustomExpression {

    public BlankExpression() {    }

    public Object evaluate(Map fields, Map variables, Map parameters) {
        return " ";
    }

    public String getClassName() {
        return String.class.getName();
    }
}

但是有一些与使用 customExpressions 和 grails 相关的问题。

第一期:“getNew()” - DJ网站上提供的示例均使用“getNew()”
http://dynamicjasper.sourceforge.net/docs/HOWTO%20Create% 20Custom%20Expressions.html 是 DynamicJasper v3.1.3 的一个示例,其中 Grails 插件基于 v.3.0.6,它只有一个 getInstance() 方法(在 3.1.3 中已弃用)

第二期:到目前为止正如我所看到的,groovy 不允许 java 风格的内联类实现,因此迫使我们创建一个单独的类文件。但这并不是什么大问题。我在这方面可能有错误,请指正。

希望这也对您有帮助。

问候,
皮特

Glad to announce, solution found for adding an 'empty' column - and in short, it's to create a customExpression.

def cb = ColumnBuilder.getInstance()
cb = cb.setTitle("Notes")
cb = cb.setCustomExpression(new BlankExpression())
AbstractColumn columnNotes = cb.build()

Then add it to the rest of the report.

Class BlankExpression is

public class BlankExpression implements CustomExpression {

    public BlankExpression() {    }

    public Object evaluate(Map fields, Map variables, Map parameters) {
        return " ";
    }

    public String getClassName() {
        return String.class.getName();
    }
}

But there are a few issues relating to the use of customExpressions and grails.

1st issue: "getNew()" - The examples provided on the DJ website all use "getNew()"
http://dynamicjasper.sourceforge.net/docs/HOWTO%20Create%20Custom%20Expressions.html is an example of DynamicJasper v3.1.3 where as the Grails plugin is based on v.3.0.6 which only has a getInstance() method (deprecated in 3.1.3)

2nd issue: As far as I can see, groovy doesn't allow java-style inline class implementations, thus forcing us to create a separate class file. But this is not a big problem. I might be wrong about this, and please correct me.

Hope this helps you too.

Regards,
Pete

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文