Main_Output_Report subreports #1 WARN DecimalLocaleConverter:237 - Шаблон не предоставлен, используется по умолчанию
Я принял приложение и обнаружил, что при создании отчетов (PDF), которые создаются с помощью I-Report (Jasper), я получаю сообщения, которые появляются в моей IDE (Eclipse):
WARN DecimalLocaleConverter:237 - Шаблон не указан, используется по умолчанию. WARN DecimalLocaleConverter:237 - Шаблон не указан, используется по умолчанию. [Main_Output_Report subreports #1] WARN DecimalLocaleConverter:237 - Шаблон не указан, используется по умолчанию. [Main_Output_Report subreports #1] WARN DecimalLocaleConverter:237 - Шаблон не указан, используется по умолчанию.
Первые два взяты из основного файла Jasper, а два других - из подотчета, который вызывается.
Соответствующий Java-код в приложении:
File jasperFile = new File(getJasperResourcePath(templateName));
Map<String, Object> jasperParams = new HashMap<String, Object>();
jasperParams.put(ReportExporterStrings.SUBREPORT_DIR, jasperFile.getParent() + File.separator);
OutputStream outStream = new FileOutputStream(fileDir + File.separator + fileName);
JRDataSource datasource = new JsonDataSource(new ByteArrayInputStream(json.getBytes(StandardCharsets.UTF_8)));
JasperReport jasperReport = (JasperReport)JRLoader.loadObject(jasperFile);
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, jasperParams, datasource);
Я обнаружил, что если я сделаю небольшое изменение в коде
File jasperFile = new File(getJasperResourcePath(templateName));
Map<String, Object> jasperParams = new HashMap<String, Object>();
jasperParams.put(ReportExporterStrings.SUBREPORT_DIR, jasperFile.getParent() + File.separator);
OutputStream outStream = new FileOutputStream(fileDir + File.separator + fileName);
JRDataSource datasource = new JsonDataSource(new ByteArrayInputStream(json.getBytes(StandardCharsets.UTF_8)));
// New bit added in that removes the main Jasper message of (WARN DecimalLocaleConverter:237 - No pattern provided, using default.)
setCommonJRDataSourceProperties((JRAbstractTextDataSource) datasource);
JasperReport jasperReport = (JasperReport)JRLoader.loadObject(jasperFile);
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, jasperParams, datasource);
private void setCommonJRDataSourceProperties(final JRAbstractTextDataSource jrDataSource) {
jrDataSource.setNumberPattern("#,###,##0.00");
}
Моя проблема заключается в том, что я все еще получаю предупреждения о вложенном отчете независимо от того, что я пытался попробовать: [Main_Output_Report subreports #1] WARN DecimalLocaleConverter:237 - Шаблон не предоставлен, используется по умолчанию.
Есть ли что-то, что может быть добавлено в Java, которое передает "Шаблон номера" во вложенный отчет, или копирует основные свойства в вложенный отчет, или что-то в файле Jasper (jrxml), который копирует соответствующие свойства в подотчет, чтобы остановить появление этих предупреждающих сообщений?