java - 如何在 Jasper Report 中动态显示列?

标签 java jasper-reports conditional-statements

我正在生成一个 Jasper 报告,它有 5 个固定列。客户端已请求能够在运行时选择列数。

例如,如果他检查显示的 JTable 中的 2 列,那么 Jasper 报告中应该有 2 列,如果他检查 4 列,那么 jasper 报告中应该有四列。为了解决这个问题,我正在考虑在 jasper 报告中添加条件。如果客户选择 A 列和 B 列,我会将其设置为报表中的参数,并使用它来确定是否显示该列。

为了做到这些,我需要在 Jasper XML 中使用条件。我应该在报告的什么地方设置条件。

最佳答案

你可以试试下面的方法

  1. 创建 HashMap并在其中设置所需的属性

    Map params = new HashMap();
    params.put("DISPLAY_COLUMN_ONE", "Y")
    
  2. 传递这个 params方法中映射到Jasper

    JasperFillManager.fillReport

  3. 在您的 JRXML 中,创建一个对应于每个属性集的参数 在上面的 HashMap 中:

    <parameter name="DISPLAY_COLUMN_ONE" class="java.lang.String"/>

  4. 根据参数值显示列

    <printWhenExpression><![CDATA[$P{DISPLAY_COLUMN_ONE}.equals("Y")]]></printWhenExpression>

关于java - 如何在 Jasper Report 中动态显示列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10863124/

相关文章:

java - JAXB 解码混合内容

java - 在 DynamicReports 上创建图表以按年份比较销售额

java - 在服务器上部署时发布导出到 PPTX 的下载报告

arrays - 在 Perl 中,如何找到数组中最后定义的元素?

Java随 secret 码生成器问题

java - 如何通过 asterisk-java 调用一个人

java - 在 Java 中显示 Rserve 的结果(R 和 Java 的集成)

java - 如何将jasper文件路径传递给子报表的子报表

Jquery 基于选择文本的条件验证

MySQL - 组中的条件选择