use of io.jmix.reports.entity.Report in project jmix by jmix-framework.
the class ChartWidgetEdit method onReportComboBoxValueChange.
@Subscribe("reportComboBox")
public void onReportComboBoxValueChange(HasValue.ValueChangeEvent<Report> event) {
Report report = event.getValue();
if (report != null) {
List<ReportTemplate> chartTemplates = getChartsTemplates(report);
templateComboBox.setOptionsList(chartTemplates);
reportId = report.getId();
if (ReportOutputType.CHART == report.getDefaultTemplate().getReportOutputType()) {
templateComboBox.setValue(report.getDefaultTemplate());
templateId = report.getDefaultTemplate().getId();
}
}
}
use of io.jmix.reports.entity.Report in project jmix by jmix-framework.
the class ReportWizardCreator method buildReport.
@Nullable
public Report buildReport(boolean temporary) {
ReportData reportData = reportDataDc.getItem();
// be sure that reportData.name and reportData.outputFileFormat is not null before generation of template
try {
byte[] templateByteArray = reportWizard.generateTemplate(reportData, reportData.getTemplateFileType());
reportData.setTemplateContent(templateByteArray);
} catch (TemplateGenerationException e) {
notifications.create(Notifications.NotificationType.WARNING).withCaption(messages.getMessage("templateGenerationException")).show();
return null;
}
MetaClass entityMetaClass = metadata.getClass(reportData.getEntityName());
String storeName = entityMetaClass.getStore().getName();
if (!Stores.isMain(storeName)) {
reportData.setDataStore(storeName);
}
Report report = reportWizard.toReport(reportData, temporary);
reportData.setGeneratedReport(report);
return report;
}
use of io.jmix.reports.entity.Report in project jmix by jmix-framework.
the class RunReportAction method runReports.
protected void runReports(Collection<Report> reports, FrameOwner screen) {
if (CollectionUtils.isNotEmpty(reports)) {
Report report = reports.iterator().next();
report = dataManager.load(Id.of(report)).fetchPlan("report.edit").one();
if (report.getInputParameters() != null && report.getInputParameters().size() > 0 || inputParametersRequiredByTemplates(report)) {
openReportParamsDialog(report, screen);
} else {
uiReportRunner.runAndShow(new UiReportRunContext(report).setInBackground(reportsClientProperties.getUseBackgroundReportProcessing()).setOriginFrameOwner(screen).setParametersDialogShowMode(ParametersDialogShowMode.NO).setParams(Collections.emptyMap()));
}
}
}
use of io.jmix.reports.entity.Report in project jmix by jmix-framework.
the class InputParametersDialog method onPrintReportButtonClick.
@Subscribe("printReportButton")
public void onPrintReportButtonClick(Button.ClickEvent event) {
if (inputParametersFragment.getReport() != null) {
ValidationErrors validationErrors = screenValidation.validateUiComponents(getWindow());
crossValidateParameters(validationErrors);
if (validationErrors.isEmpty()) {
ReportTemplate template = inputParametersFragment.getReportTemplate();
if (template != null) {
templateCode = template.getCode();
}
Report report = inputParametersFragment.getReport();
Map<String, Object> parameters = inputParametersFragment.collectParameters();
FluentUiReportRunner fluentRunner = uiReportRunner.byReportEntity(report).withParams(parameters).withTemplateCode(templateCode).withOutputNamePattern(outputFileName).withOutputType(inputParametersFragment.getOutputType()).withParametersDialogShowMode(ParametersDialogShowMode.NO);
if (inBackground) {
fluentRunner.inBackground(this);
}
if (bulkPrint) {
fluentRunner.runMultipleReports(inputParameter.getAlias(), selectedEntities);
} else {
fluentRunner.runAndShow();
}
} else {
screenValidation.showValidationErrors(this, validationErrors);
}
}
}
use of io.jmix.reports.entity.Report in project jmix by jmix-framework.
the class ReportRun method filterReports.
protected void filterReports() {
String nameFilterValue = StringUtils.lowerCase(nameFilter.getValue());
String codeFilterValue = StringUtils.lowerCase(codeFilter.getValue());
ReportGroup groupFilterValue = groupFilter.getValue();
Date dateFilterValue = updatedDateFilter.getValue();
List<Report> reports = reportSecurityManager.getAvailableReports(screenParameter, currentUserSubstitution.getEffectiveUser(), metaClassParameter).stream().filter(report -> {
if (nameFilterValue != null && !report.getName().toLowerCase().contains(nameFilterValue)) {
return false;
}
if (codeFilterValue != null) {
if (report.getCode() == null || (report.getCode() != null && !report.getCode().toLowerCase().contains(codeFilterValue))) {
return false;
}
}
if (groupFilterValue != null && !Objects.equals(report.getGroup(), groupFilterValue)) {
return false;
}
if (dateFilterValue != null && report.getUpdateTs() != null && !report.getUpdateTs().after(dateFilterValue)) {
return false;
}
return true;
}).collect(Collectors.toList());
reportsDc.getMutableItems().clear();
for (Report report : reports) {
reportsDc.getMutableItems().add(report);
}
Table.SortInfo sortInfo = reportsTable.getSortInfo();
if (sortInfo != null) {
Table.SortDirection direction = sortInfo.getAscending() ? Table.SortDirection.ASCENDING : Table.SortDirection.DESCENDING;
reportsTable.sort(sortInfo.getPropertyId().toString(), direction);
}
}
Aggregations