如何使用java动态隐藏jasper报表中的列?

时间:2018-04-25 11:55:55

标签: java jasper-reports

我很清楚printwhenexpression用于隐藏或显示column。但我如何从Jave中使用它?可用JDesignExpression的文档很少。如何为false设置JDesignFrame的值?

下面是截图:

enter image description here

我不知道如何将任何表达式设置为StaticTexttextfielddesignframe

JRDesignExpression expression = new JRDesignExpression();

        expression.setValueClassName(Object.class.getName());
        expression.setValueClassName(measure.getValueClassName());

2 个答案:

答案 0 :(得分:1)

尝试

JRDesignTextField textField = new JRDesignTextField();
textField.setPrintWhenExpression(new JRDesignExpression("$V{REPORT_COUNT} < 10"));

使用您的特定条件表达式而不是$ V {REPORT_COUNT}&lt; 10

相同的设置也适用于JRDesignFrame。

答案 1 :(得分:0)

添加可能有帮助的条件 例如

JRDesignExpression cond1 =
    OroJasperDesign
        .tool
        .createExpression("$P{docType}
        .equalsIgnoreCase(\"MER\") ? Boolean.TRUE : Boolean.FALSE",Boolean.class);

band.addElement(OroJasperDesign
                    .tool
                    .createTextField(5, 70, pageWidth - 10, 30,
                                     textAlignment, null,
                                     orosoft
                                         .reports
                                         .jasperreports
                                         .OroReportFont
                                         .setFont(12, true, false, true),
                                     OroJasperDesign
                                         .tool
                                         .createExpression("$P{mepRmkInv}",
                                     String.class),cond1));