@Override
  public JasperPrint fillReport() throws Exception {

    final JasperReport[] jra = reportCard.getRichReportJRA();
    final JasperReport masterReport = jra[0];

    // init jasper "rendering map"
    final Map<String, Object> jasperFillManagerParameters = new LinkedHashMap<String, Object>();

    // add parameters to "rendering map"
    if (reportParameters != null) {
      for (final ReportParameter rp : reportParameters) {
        jasperFillManagerParameters.put(rp.getFullName(), rp.getValue());
      }
    }

    // add subreports to "rendering map"
    for (int k = 1; k < jra.length; k++) {
      if (jra[k] != null) {
        jasperFillManagerParameters.put(ReportFactory.PARAM_SUBREPORT + k, jra[k]);
      }
    }

    // add images to "rendering map"
    final InputStream[] isa = reportCard.getImagesISA();
    for (int i = 0; i < isa.length; i++) {
      jasperFillManagerParameters.put(ReportFactory.PARAM_IMAGE + i, isa[i]);
    }

    // launch report rendering
    super.fillReport(masterReport, jasperFillManagerParameters);

    return jasperPrint;
  }