Search in sources :

Example 11 with Report

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();
        }
    }
}
Also used : Report(io.jmix.reports.entity.Report) ReportTemplate(io.jmix.reports.entity.ReportTemplate) Subscribe(io.jmix.ui.screen.Subscribe)

Example 12 with Report

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;
}
Also used : MetaClass(io.jmix.core.metamodel.model.MetaClass) Report(io.jmix.reports.entity.Report) ReportData(io.jmix.reports.entity.wizard.ReportData) TemplateGenerationException(io.jmix.reports.exception.TemplateGenerationException) Nullable(javax.annotation.Nullable)

Example 13 with 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()));
        }
    }
}
Also used : UiReportRunContext(io.jmix.reportsui.runner.UiReportRunContext) Report(io.jmix.reports.entity.Report)

Example 14 with Report

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);
        }
    }
}
Also used : FluentUiReportRunner(io.jmix.reportsui.runner.FluentUiReportRunner) ValidationErrors(io.jmix.ui.component.ValidationErrors) Report(io.jmix.reports.entity.Report) ReportTemplate(io.jmix.reports.entity.ReportTemplate)

Example 15 with Report

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);
    }
}
Also used : FluentUiReportRunner(io.jmix.reportsui.runner.FluentUiReportRunner) ItemTrackingAction(io.jmix.ui.action.ItemTrackingAction) Id(io.jmix.core.Id) MetaClass(io.jmix.core.metamodel.model.MetaClass) ParametersDialogShowMode(io.jmix.reportsui.runner.ParametersDialogShowMode) Date(java.util.Date) ReportSecurityManager(io.jmix.reports.ReportSecurityManager) Autowired(org.springframework.beans.factory.annotation.Autowired) ReportGroup(io.jmix.reports.entity.ReportGroup) StringUtils(org.apache.commons.lang3.StringUtils) Messages(io.jmix.core.Messages) LookupComponent(io.jmix.ui.screen.LookupComponent) Action(io.jmix.ui.action.Action) Named(javax.inject.Named) MetadataTools(io.jmix.core.MetadataTools) DataManager(io.jmix.core.DataManager) CollectionContainer(io.jmix.ui.model.CollectionContainer) ReportsClientProperties(io.jmix.reportsui.screen.ReportsClientProperties) Collectors(java.util.stream.Collectors) Objects(java.util.Objects) List(java.util.List) io.jmix.ui.screen(io.jmix.ui.screen) UiReportRunner(io.jmix.reportsui.runner.UiReportRunner) CurrentUserSubstitution(io.jmix.core.usersubstitution.CurrentUserSubstitution) Report(io.jmix.reports.entity.Report) io.jmix.ui.component(io.jmix.ui.component) Report(io.jmix.reports.entity.Report) Date(java.util.Date) ReportGroup(io.jmix.reports.entity.ReportGroup)

Aggregations

Report (io.jmix.reports.entity.Report)45 ReportTemplate (io.jmix.reports.entity.ReportTemplate)13 Subscribe (io.jmix.ui.screen.Subscribe)8 ReportOutputDocument (com.haulmont.yarg.reporting.ReportOutputDocument)7 TemplateReport (io.jmix.emailtemplates.entity.TemplateReport)7 MetaClass (io.jmix.core.metamodel.model.MetaClass)6 FluentUiReportRunner (io.jmix.reportsui.runner.FluentUiReportRunner)5 ReportWithParams (io.jmix.emailtemplates.dto.ReportWithParams)4 ReportInputParameter (io.jmix.reports.entity.ReportInputParameter)4 UiReportRunContext (io.jmix.reportsui.runner.UiReportRunContext)4 List (java.util.List)4 Autowired (org.springframework.beans.factory.annotation.Autowired)4 DataManager (io.jmix.core.DataManager)3 ParameterPrototype (io.jmix.reports.app.ParameterPrototype)3 ReportingException (io.jmix.reports.exception.ReportingException)3 ReportRunContext (io.jmix.reports.runner.ReportRunContext)3 LiteratureType (reports.ex2.entity.LiteratureType)3 Id (io.jmix.core.Id)2 CurrentUserSubstitution (io.jmix.core.usersubstitution.CurrentUserSubstitution)2 ParameterValue (io.jmix.emailtemplates.entity.ParameterValue)2