protected Map<String, Object> prepareValues(Report report, List<ParameterValueInfo> paramValues) { Map<String, Object> preparedValues = new HashMap<>(); if (paramValues != null) { for (ReportInputParameter inputParam : report.getInputParameters()) { paramValues.stream().filter(paramValue -> Objects.equals(paramValue.name, inputParam.getAlias())) .findFirst() .ifPresent(paramValue -> preparedValues.put(paramValue.name, prepareValue(inputParam, paramValue))); } } return preparedValues; }
protected void orderParameters() { if (getItem().getInputParameters() == null) { getItem().setInputParameters(new ArrayList<>()); } for (int i = 0; i < getItem().getInputParameters().size(); i++) { getItem().getInputParameters().get(i).setPosition(i); } }
/** * Open input parameters dialog if report has parameters otherwise print report * * @param report - target report * @param screen - caller window */ public void runReport(Report report, FrameOwner screen) { if (report == null) { throw new IllegalArgumentException("Can not run null report"); } if (report.getInputParameters() != null && report.getInputParameters().size() > 0 || inputParametersRequiredByTemplates(report)) { openReportParamsDialog(screen, report, null, null, null); } else { printReport(report, ParamsMap.empty(), screen); } }
protected ReportInputParameter getParameterAlias(Report report, MetaClass inputValueMetaClass) { for (ReportInputParameter parameter : report.getInputParameters()) { if (reportGuiManager.parameterMatchesMetaClass(parameter, inputValueMetaClass)) { return parameter; } } throw new ReportingException(String.format("Selected report [%s] doesn't have parameter with class [%s].", report.getName(), inputValueMetaClass)); }
protected ReportInfo mapToReportInfo(Report report) { ReportInfo reportInfo = new ReportInfo(); reportInfo.id = report.getId().toString(); reportInfo.code = report.getCode(); reportInfo.name = report.getName(); if (entityStates.isLoaded(report, "templates")) { if (report.getTemplates() != null) { reportInfo.templates = report.getTemplates().stream() .map(this::mapTemplateInfo) .collect(Collectors.toList()); } } if (entityStates.isLoaded(report, "xml")) { if (report.getInputParameters() != null) { reportInfo.inputParameters = report.getInputParameters().stream() .map(this::mapInputParameterInfo) .collect(Collectors.toList()); } } return reportInfo; }
protected void storeIndexFields(Report report) { if (PersistenceHelper.isLoaded(report, "xml")) { StringBuilder entityTypes = new StringBuilder(IDX_SEPARATOR); if (report.getInputParameters() != null) { for (ReportInputParameter parameter : report.getInputParameters()) { if (isNotBlank(parameter.getEntityMetaClass())) { entityTypes.append(parameter.getEntityMetaClass()) .append(IDX_SEPARATOR); } } } report.setInputEntityTypesIdx(entityTypes.length() > 1 ? entityTypes.toString() : null); StringBuilder screens = new StringBuilder(IDX_SEPARATOR); if (report.getReportScreens() != null) { for (ReportScreen reportScreen : report.getReportScreens()) { screens.append(reportScreen.getScreenId()) .append(IDX_SEPARATOR); } } report.setScreensIdx(screens.length() > 1 ? screens.toString() : null); StringBuilder roles = new StringBuilder(IDX_SEPARATOR); if (report.getRoles() != null) { for (Role role : report.getRoles()) { roles.append(role.getId().toString()) .append(IDX_SEPARATOR); } } report.setRolesIdx(roles.length() > 1 ? roles.toString() : null); } }
if (CollectionUtils.isNotEmpty(report.getInputParameters())) { parametersGrid.setRows(report.getInputParameters().size() + 2); int currentGridRow = 2; for (ReportInputParameter parameter : report.getInputParameters()) { if (bulkPrint && Objects.equals(inputParameter, parameter)) { continue;
throw new IllegalArgumentException("Can not run null report"); List<ReportInputParameter> params = report.getInputParameters();
protected void openLookup(FrameOwner screen) { ScreenContext screenContext = UiControllerUtils.getScreenContext(screen); WindowManager wm = (WindowManager) screenContext.getScreens(); WindowInfo windowInfo = AppBeans.get(WindowConfig.class).getWindowInfo("report$Report.run"); Screen hostScreen; if (screen instanceof Screen) { hostScreen = (Screen) screen; } else { hostScreen = UiControllerUtils.getHostScreen((ScreenFragment) screen); } wm.openLookup(windowInfo, items -> { if (items != null && items.size() > 0) { Report report = (Report) items.iterator().next(); if (screen instanceof LegacyFrame) { DataSupplier dataSupplier = ((LegacyFrame) screen).getDsContext().getDataSupplier(); report = dataSupplier.reload(report, "report.edit"); } else { DataManager dataManager = AppBeans.get(DataManager.NAME); report = dataManager.reload(report, "report.edit"); } if (report.getInputParameters() != null && report.getInputParameters().size() > 0 || reportGuiManager.inputParametersRequiredByTemplates(report)) { openReportParamsDialog(report, screen); } else { reportGuiManager.printReport(report, Collections.emptyMap(), screen); } } }, OpenType.DIALOG, ParamsMap.of(ReportRun.SCREEN_PARAMETER, hostScreen.getId())); }
if (reportData.getReportType().isEntity()) { mainParameter = createMainInputParameter(report, reportData); report.getInputParameters().add(mainParameter); } else if (reportData.getQueryParameters() != null) { int i = 1; report.getInputParameters().add(parameter);
protected void setRelevantReferencesToReport(Report entity) { for (ReportValueFormat reportValueFormat : entity.getValuesFormats()) { reportValueFormat.setReport(entity); } for (BandDefinition bandDefinition : entity.getBands()) { bandDefinition.setReport(entity); } for (ReportInputParameter reportInputParameter : entity.getInputParameters()) { reportInputParameter.setReport(entity); } for (ReportScreen reportScreen : entity.getReportScreens()) { reportScreen.setReport(entity); } } }
@Override public void actionPerform(Component component) { ReportInputParameter parameter = (ReportInputParameter) target.getSingleSelected(); if (parameter != null) { List<ReportInputParameter> inputParameters = getItem().getInputParameters(); int index = parameter.getPosition(); if (index < parametersDs.getItemIds().size() - 1) { ReportInputParameter nextParameter = null; for (ReportInputParameter _param : inputParameters) { if (_param.getPosition() == index + 1) { nextParameter = _param; break; } } if (nextParameter != null) { parameter.setPosition(nextParameter.getPosition()); nextParameter.setPosition(index); sortParametersByPosition(); } } } }
@Override public void actionPerform(Component component) { ReportInputParameter parameter = (ReportInputParameter) target.getSingleSelected(); if (parameter != null) { List<ReportInputParameter> inputParameters = getItem().getInputParameters(); int index = parameter.getPosition(); if (index > 0) { ReportInputParameter previousParameter = null; for (ReportInputParameter _param : inputParameters) { if (_param.getPosition() == index - 1) { previousParameter = _param; break; } } if (previousParameter != null) { parameter.setPosition(previousParameter.getPosition()); previousParameter.setPosition(index); sortParametersByPosition(); } } } }
@Override public void onBeforeDetach(Report entity, EntityManager entityManager) { if (persistence.getTools().isLoaded(entity, "xml") && StringUtils.isNotBlank(entity.getXml())) { Report reportFromXml = reportingApi.convertToReport(entity.getXml()); entity.setBands(reportFromXml.getBands()); entity.setInputParameters(reportFromXml.getInputParameters()); entity.setReportScreens(reportFromXml.getReportScreens()); entity.setRoles(reportFromXml.getRoles()); entity.setValuesFormats(reportFromXml.getValuesFormats()); entity.setValidationOn(reportFromXml.getValidationOn()); entity.setValidationScript(reportFromXml.getValidationScript()); setRelevantReferencesToReport(entity); sortRootChildrenBands(entity); } }
protected MetaClass findMetaClassByAlias(DataSet dataSet) { String dataSetAlias = getNameForEntityParameter(dataSet); if (dataSetAlias == null) { bandDefinitionEditor.showNotification( bandDefinitionEditor.formatMessage("dataSet.entityAliasNull"), Frame.NotificationType.TRAY); return null; } MetaClass byAliasMetaClass = bandDefinitionEditor.reportService.findMetaClassByDataSetEntityAlias(dataSetAlias, dataSet.getType(), bandDefinitionEditor.bandDefinitionDs.getItem().getReport().getInputParameters()); //Lets return some value if (byAliasMetaClass == null) { //Can`t determine parameter and its metaClass by alias bandDefinitionEditor.showNotification( bandDefinitionEditor.formatMessage("dataSet.entityAliasInvalid", dataSetAlias), Frame.NotificationType.TRAY); return null; //when byAliasMetaClass is null we return also null } else { //Detect metaclass by current view for comparison MetaClass viewMetaClass = null; if (dataSet.getView() != null) { viewMetaClass = bandDefinitionEditor.metadata.getClass(dataSet.getView().getEntityClass()); } if (viewMetaClass != null && !byAliasMetaClass.getName().equals(viewMetaClass.getName())) { bandDefinitionEditor.showNotification( bandDefinitionEditor.formatMessage("dataSet.entityWasChanged", byAliasMetaClass.getName()), Frame.NotificationType.TRAY); } return byAliasMetaClass; } }
if (report != null) { report = getDsContext().getDataSupplier().reload(report, "report.edit"); if (report.getInputParameters() != null && report.getInputParameters().size() > 0 || reportGuiManager.inputParametersRequiredByTemplates(report)) { Window paramsWindow = openWindow("report$inputParameters", OpenType.DIALOG,