Search in sources :

Example 1 with JRDesignQuery

use of net.sf.jasperreports.engine.design.JRDesignQuery in project midpoint by Evolveum.

the class JasperReportDto method getTemplate.

public byte[] getTemplate() {
    try {
        //			design.remadgetFields().
        design.getFieldsList().clear();
        design.getParametersList().clear();
        design.getFieldsMap().clear();
        design.getParametersMap().clear();
        for (JasperReportFieldDto field : fields) {
            if (field.isEmpty()) {
                continue;
            }
            JRDesignField f = new JRDesignField();
            f.setValueClassName(field.getTypeAsString());
            f.setValueClass(Class.forName(field.getTypeAsString()));
            f.setName(field.getName());
            design.addField(f);
        }
        for (JasperReportParameterDto param : parameters) {
            if (param.isEmpty()) {
                continue;
            }
            JRDesignParameter p = new JRDesignParameter();
            p.setValueClassName(param.getTypeAsString());
            p.setValueClass(Class.forName(param.getTypeAsString()));
            p.setName(param.getName());
            p.setForPrompting(param.isForPrompting());
            p.setDescription(param.getDescription());
            p.setNestedTypeName(param.getNestedTypeAsString());
            p.setNestedType(param.getNestedType());
            p.getPropertiesMap().setBaseProperties(param.getJRProperties());
            //			p.getPropertiesMap().setProperty(propName, value);
            design.addParameter(p);
        }
        JasperDesign oldDesign = ReportTypeUtil.loadJasperDesign(jasperReportXml);
        oldDesign.getParametersList().clear();
        oldDesign.getParametersList().addAll(design.getParametersList());
        oldDesign.getFieldsList().clear();
        oldDesign.getFieldsList().addAll(design.getFieldsList());
        JRDesignQuery q = new JRDesignQuery();
        q.setLanguage("mql");
        q.setText(query);
        oldDesign.setQuery(q);
        String reportAsString = JRXmlWriter.writeReport(oldDesign, "UTF-8");
        return Base64.encodeBase64(reportAsString.getBytes("UTF-8"));
    } catch (JRException | ClassNotFoundException | SchemaException | UnsupportedEncodingException ex) {
        throw new IllegalStateException(ex.getMessage(), ex.getCause());
    }
}
Also used : SchemaException(com.evolveum.midpoint.util.exception.SchemaException) JasperDesign(net.sf.jasperreports.engine.design.JasperDesign) JRException(net.sf.jasperreports.engine.JRException) UnsupportedEncodingException(java.io.UnsupportedEncodingException) JRDesignField(net.sf.jasperreports.engine.design.JRDesignField) JRDesignParameter(net.sf.jasperreports.engine.design.JRDesignParameter) JRDesignQuery(net.sf.jasperreports.engine.design.JRDesignQuery)

Aggregations

SchemaException (com.evolveum.midpoint.util.exception.SchemaException)1 UnsupportedEncodingException (java.io.UnsupportedEncodingException)1 JRException (net.sf.jasperreports.engine.JRException)1 JRDesignField (net.sf.jasperreports.engine.design.JRDesignField)1 JRDesignParameter (net.sf.jasperreports.engine.design.JRDesignParameter)1 JRDesignQuery (net.sf.jasperreports.engine.design.JRDesignQuery)1 JasperDesign (net.sf.jasperreports.engine.design.JasperDesign)1