diff --git a/.github/workflows/deploy-mvn-central-release.yml b/.github/workflows/deploy-mvn-central-release.yml
index e7a05b6..980428c 100644
--- a/.github/workflows/deploy-mvn-central-release.yml
+++ b/.github/workflows/deploy-mvn-central-release.yml
@@ -33,11 +33,11 @@ jobs:
ref: ${{ env.BRANCH }}
fetch-depth: 0
- name: Setup Java JDK and Maven
- uses: ontimize/setup-java-maven-gitAction@v4
+ uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '11'
- server-id: ossrh
+ server-id: central
server-username: MAVEN_USERNAME
server-password: MAVEN_CENTRAL_TOKEN
gpg-private-key: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }}
diff --git a/.github/workflows/deploy-mvn-central-snapshot-manual.yml b/.github/workflows/deploy-mvn-central-snapshot-manual.yml
index 535cb95..d7f2286 100644
--- a/.github/workflows/deploy-mvn-central-snapshot-manual.yml
+++ b/.github/workflows/deploy-mvn-central-snapshot-manual.yml
@@ -19,11 +19,11 @@ jobs:
- name : Checkout repository code
uses: actions/checkout@v3
- name: Setup Java JDK and Maven
- uses: ontimize/setup-java-maven-gitAction@v4
+ uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '11'
- server-id: ossrh
+ server-id: central
server-username: MAVEN_USERNAME
server-password: MAVEN_CENTRAL_TOKEN
gpg-private-key: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }}
diff --git a/.github/workflows/deploy-mvn-central-snapshot.yml b/.github/workflows/deploy-mvn-central-snapshot.yml
index 5801842..4bce2c6 100644
--- a/.github/workflows/deploy-mvn-central-snapshot.yml
+++ b/.github/workflows/deploy-mvn-central-snapshot.yml
@@ -15,11 +15,11 @@ jobs:
- name : Checkout repository code
uses: actions/checkout@v3
- name: Setup Java JDK and Maven
- uses: ontimize/setup-java-maven-gitAction@v4
+ uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '11'
- server-id: ossrh
+ server-id: central
server-username: MAVEN_USERNAME
server-password: MAVEN_CENTRAL_TOKEN
gpg-private-key: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }}
diff --git a/.github/workflows/prepare-release-by-PR.yml b/.github/workflows/prepare-release-by-PR.yml
index d28331d..f3c3a0e 100644
--- a/.github/workflows/prepare-release-by-PR.yml
+++ b/.github/workflows/prepare-release-by-PR.yml
@@ -1,5 +1,11 @@
name: Prepare a release by a pull request
-on: workflow_dispatch
+on:
+ workflow_dispatch:
+ inputs:
+ version:
+ description: 'Optional. Enter a new custom version instead of default existing one.'
+ type: string
+ required: false
jobs:
Prepare-a-release-by-a-pull-request:
runs-on: ubuntu-latest
@@ -21,12 +27,33 @@ jobs:
- name: Get framework version to release
id: version
run: |
- var_version=$(mvn help:evaluate -q -Dexpression=project.version -DforceStdout)
+ var_version=""
+ if ${{ github.event.inputs.version != '' }}; then
+ var_version=${{ github.event.inputs.version }}
+ else
+ var_version=$(mvn help:evaluate -q -Dexpression=project.version -DforceStdout)
+ fi
echo "version=$var_version" >> $GITHUB_OUTPUT
- name: Set author identity
run: |
git config --global user.name "${{ env.CI_COMMIT_AUTHOR }}"
git config --global user.email "${{ secrets.CI_COMMIT_MAIL }}"
+ - name: Prepare CHANGELOG.md
+ run: |
+ version=$(echo "${{ steps.version.outputs.version }}" | sed 's/-SNAPSHOT//' )
+ date=$(date +%F)
+ version_header="## [$version] - $date"
+ sed -i "/^## \[Unreleased\]/a $version_header" CHANGELOG.md
+ pattern="^\[unreleased\]: https://github.com/.*/compare/"
+ linenum=$(grep -n "$pattern" CHANGELOG.md | cut -d: -f1)
+ linecontent=$(sed -n "${linenum}p" CHANGELOG.md)
+ linecontent=$(echo "$linecontent" | sed -E "s|^\[[^]]+\]|[$version]|")
+ linecontent=$(echo "$linecontent" | sed -E "s|\.\.\.HEAD|...$version|")
+ sed -i "${linenum}a $linecontent" CHANGELOG.md
+ linecontent=$(sed -n "${linenum}p" CHANGELOG.md)
+ linecontent=$(echo "$linecontent" | sed -E "s|(compare/).*?(.\.\.\HEAD)|\1$version\2|")
+ sed -i "${linenum}s|.*|$linecontent|" CHANGELOG.md
+ git add CHANGELOG.md
- name: Prepare version to release
id: tag
run: |
@@ -51,4 +78,4 @@ jobs:
- name: Create pull request
run: |
version=${{ steps.tag.outputs.version }}
- gh pr create -B main -H release/$version --title "Merge release/$version into main" --body "Created by a GitHub Action → Prepare a release by a pull request" --label "release"
\ No newline at end of file
+ gh pr create -B main -H release/$version --title "Merge release/$version into main" --body "Created by a GitHub Action → Prepare a release by a pull request" --label "release"
diff --git a/.github/workflows/send-release-mail.yml b/.github/workflows/send-release-mail.yml
index 3504126..36ec56d 100644
--- a/.github/workflows/send-release-mail.yml
+++ b/.github/workflows/send-release-mail.yml
@@ -38,7 +38,7 @@ jobs:
ref: ${{ env.BRANCH }}
fetch-depth: 0
- name: Setup Java JDK and Maven
- uses: ontimize/setup-java-maven-gitAction@v4
+ uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '11'
diff --git a/CHANGELOG.md b/CHANGELOG.md
index b842660..3e36240 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -7,6 +7,9 @@
## [Unreleased]
+## [3.6.0] - 2025-06-25
+* **TypeMappingsUtils.java**: Add *FLOAT* and *DOUBLE* as different types.
+* **DynamicJasperHelper.java**: Fix return data for *DOUBLE* or *FLOAT*.
## [3.5.0] - 2025-04-28
### Fixed 🐛
* **Report store**: Fixed problems when using parameters of Jasper Report. It was added new `ReportStoreParamsDto` object into `fillReport` API method for allowing customization of parameters as types, formattings, etc.
@@ -66,7 +69,8 @@ public InputStream generateReport(final ReportParamsDto reportParamsDto)
### Added ✔️
* **Report on-demand**: On-demand reports can now be created with the help of Jasper Reports via HTTP requests. The parameters for creating these reports can be stored in preferences for later use.
-[unreleased]: https://github.com/ontimize/ontimize-jee-report/compare/3.5.0...HEAD
+[unreleased]: https://github.com/ontimize/ontimize-jee-report/compare/3.6.0...HEAD
+[3.6.0]: https://github.com/ontimize/ontimize-jee-report/compare/3.5.0...3.6.0
[3.5.0]: https://github.com/ontimize/ontimize-jee-report/compare/3.4.0...3.5.0
[3.4.0]: https://github.com/ontimize/ontimize-jee-report/compare/3.3.0...3.4.0
[3.3.0]: https://github.com/ontimize/ontimize-jee-report/compare/3.2.0...3.3.0
diff --git a/ontimize-jee-report-common/pom.xml b/ontimize-jee-report-common/pom.xml
index ca5eded..4fbbda3 100644
--- a/ontimize-jee-report-common/pom.xml
+++ b/ontimize-jee-report-common/pom.xml
@@ -5,7 +5,7 @@
com.ontimize.jee.report
ontimize-jee-report
- 3.5.0
+ 3.6.0
ontimize-jee-report-common
@@ -76,17 +76,6 @@
https://github.com/ontimize/ontimize-jee-report/tree/master
-
-
- ossrh
- https://s01.oss.sonatype.org/content/repositories/snapshots
-
-
- ossrh
- https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/
-
-
-
com.ontimize.jee
diff --git a/ontimize-jee-report-common/src/main/java/com/ontimize/jee/report/common/util/TypeMappingsUtils.java b/ontimize-jee-report-common/src/main/java/com/ontimize/jee/report/common/util/TypeMappingsUtils.java
index 48e483e..96fe3e7 100644
--- a/ontimize-jee-report-common/src/main/java/com/ontimize/jee/report/common/util/TypeMappingsUtils.java
+++ b/ontimize-jee-report-common/src/main/java/com/ontimize/jee/report/common/util/TypeMappingsUtils.java
@@ -11,199 +11,191 @@
public class TypeMappingsUtils {
- public static final String STRING = "String",
- BOOLEAN = "Boolean",
- BINARY = "Binary",
- DOUBLE = "Double",
- DATE = "Date",
- INTEGER = "Integer",
- BIGDECIMAL = "BigDecimal",
-
- STRING_PATH = "java.lang.String",
- BOOLEAN_PATH = "java.lang.Boolean",
- OBJECT_PATH = "java.lang.Object",
- FLOAT_PATH = "java.lang.Float",
- DOUBLE_PATH = "java.lang.Double",
- DATE_PATH = "java.util.Date",
- TIMESTAMP_PATH = "ava.sql.Timestamp",
- INTEGER_PATH = "java.lang.Integer",
- BIGDECIMAL_PATH = "java.math.BigDecimal";
-
- @SuppressWarnings("rawtypes")
- public static Class getClass(int type) {
- switch (type) {
- case Types.VARCHAR:
- case Types.LONGVARCHAR:
- case Types.CLOB:
- return String.class;
-
- case Types.INTEGER:
- case Types.SMALLINT:
- case Types.TINYINT:
- case Types.BIGINT:
- return Integer.class;
-
- case Types.BIT:
- case Types.BOOLEAN:
- return Boolean.class;
-
- case Types.DOUBLE:
- case Types.DECIMAL:
- case Types.REAL:
- case Types.FLOAT:
- return Double.class;
-
- case Types.NUMERIC:
- return BigDecimal.class;
-
- case Types.DATE:
- case Types.TIME:
- case Types.TIMESTAMP:
- return Date.class;
-
- case Types.BINARY:
- case Types.LONGVARBINARY:
- case Types.VARBINARY:
- case Types.ARRAY:
- case Types.BLOB:
- case Types.OTHER:
- return Object.class;
- }
+ public static final String STRING = "String",
+ BOOLEAN = "Boolean",
+ BINARY = "Binary",
+ DOUBLE = "Double",
+ DATE = "Date",
+ INTEGER = "Integer",
+ FLOAT = "Float",
+ LONG = "Long",
+ BIGDECIMAL = "BigDecimal",
+
+ STRING_PATH = "java.lang.String",
+ BOOLEAN_PATH = "java.lang.Boolean",
+ OBJECT_PATH = "java.lang.Object",
+ FLOAT_PATH = "java.lang.Float",
+ DOUBLE_PATH = "java.lang.Double",
+ DATE_PATH = "java.util.Date",
+ TIMESTAMP_PATH = "java.sql.Timestamp",
+ INTEGER_PATH = "java.lang.Integer",
+ LONG_PATH = "java.lang.Long",
+ BIGDECIMAL_PATH = "java.math.BigDecimal";
+
+ @SuppressWarnings("rawtypes")
+ public static Class getClass(int type) {
+ switch (type) {
+ case Types.VARCHAR:
+ case Types.LONGVARCHAR:
+ case Types.CLOB:
+ return String.class;
+ case Types.BIGINT:
+ return Long.class;
+ case Types.INTEGER:
+ case Types.SMALLINT:
+ case Types.TINYINT:
+ return Integer.class;
+ case Types.BIT:
+ case Types.BOOLEAN:
+ return Boolean.class;
+ case Types.FLOAT:
+ return Float.class;
+ case Types.DOUBLE:
+ case Types.DECIMAL:
+ case Types.REAL:
+ return Double.class;
+ case Types.NUMERIC:
+ return BigDecimal.class;
+ case Types.DATE:
+ case Types.TIME:
+ case Types.TIMESTAMP:
+ return Date.class;
+ case Types.BINARY:
+ case Types.LONGVARBINARY:
+ case Types.VARBINARY:
+ case Types.ARRAY:
+ case Types.BLOB:
+ case Types.OTHER:
return Object.class;
}
-
- @SuppressWarnings("rawtypes")
- public static Class getClass(String type) {
- return getClass(getSQLType(type));
- }
-
- public static String getClassName(int type) {
- switch (type) {
- case Types.VARCHAR:
- case Types.LONGVARCHAR:
- case Types.CLOB:
- return STRING_PATH;
-
- case Types.INTEGER:
- case Types.SMALLINT:
- case Types.TINYINT:
- case Types.BIGINT:
- return INTEGER_PATH;
-
- case Types.BIT:
- case Types.BOOLEAN:
- return BOOLEAN_PATH;
-
- case Types.DOUBLE:
- case Types.DECIMAL:
- case Types.REAL:
- case Types.FLOAT:
- return DOUBLE_PATH;
-
- case Types.NUMERIC:
- return BIGDECIMAL_PATH;
-
- case Types.DATE:
- case Types.TIME:
- case Types.TIMESTAMP:
- return DATE_PATH;
-
- case Types.BINARY:
- case Types.LONGVARBINARY:
- case Types.VARBINARY:
- case Types.ARRAY:
- case Types.BLOB:
- case Types.OTHER:
- return OBJECT_PATH;
- }
+ return Object.class;
+ }
+
+ @SuppressWarnings("rawtypes")
+ public static Class getClass(String type) {
+ return getClass(getSQLType(type));
+ }
+
+ public static String getClassName(int type) {
+ switch (type) {
+ case Types.VARCHAR:
+ case Types.LONGVARCHAR:
+ case Types.CLOB:
+ return STRING_PATH;
+ case Types.BIGINT:
+ return LONG_PATH;
+ case Types.INTEGER:
+ case Types.SMALLINT:
+ case Types.TINYINT:
+ return INTEGER_PATH;
+ case Types.BIT:
+ case Types.BOOLEAN:
+ return BOOLEAN_PATH;
+ case Types.FLOAT:
+ return FLOAT_PATH;
+ case Types.DOUBLE:
+ case Types.DECIMAL:
+ case Types.REAL:
+ return DOUBLE_PATH;
+ case Types.NUMERIC:
+ return BIGDECIMAL_PATH;
+ case Types.DATE:
+ case Types.TIME:
+ case Types.TIMESTAMP:
+ return DATE_PATH;
+ case Types.BINARY:
+ case Types.LONGVARBINARY:
+ case Types.VARBINARY:
+ case Types.ARRAY:
+ case Types.BLOB:
+ case Types.OTHER:
return OBJECT_PATH;
}
-
- public static String getClassName(String type) {
- return getClassName(getSQLType(type));
- }
-
- public static int getSQLTypeFromClassName(final String className) {
- switch (className) {
- case STRING_PATH:
- return Types.VARCHAR;
-
- case INTEGER_PATH:
- return Types.INTEGER;
-
- case BOOLEAN_PATH:
- return Types.BOOLEAN;
-
- case FLOAT_PATH:
- return Types.FLOAT;
-
- case DOUBLE_PATH:
- return Types.DOUBLE;
-
- case BIGDECIMAL_PATH:
- return Types.NUMERIC;
-
- case DATE_PATH:
- return Types.DATE;
-
- case TIMESTAMP_PATH:
- return Types.TIMESTAMP;
-
- }
- return Types.OTHER;
+ return OBJECT_PATH;
+ }
+
+ public static String getClassName(String type) {
+ return getClassName(getSQLType(type));
+ }
+
+ public static int getSQLTypeFromClassName(final String className) {
+ switch (className) {
+ case STRING_PATH:
+ return Types.VARCHAR;
+ case INTEGER_PATH:
+ return Types.INTEGER;
+ case LONG_PATH:
+ return Types.BIGINT;
+ case BOOLEAN_PATH:
+ return Types.BOOLEAN;
+ case FLOAT_PATH:
+ return Types.FLOAT;
+ case DOUBLE_PATH:
+ return Types.DOUBLE;
+ case BIGDECIMAL_PATH:
+ return Types.NUMERIC;
+ case DATE_PATH:
+ return Types.DATE;
+ case TIMESTAMP_PATH:
+ return Types.TIMESTAMP;
}
-
- public static int getSQLType(String type) {
- int returned = Types.OTHER;
- if (type.equalsIgnoreCase(STRING)) {
- returned = Types.VARCHAR;
- } else if (type.equalsIgnoreCase(BOOLEAN)) {
- returned = Types.BOOLEAN;
- } else if (type.equalsIgnoreCase(BINARY)) {
- returned = Types.BINARY;
- } else if (type.equalsIgnoreCase(DOUBLE)) {
- returned = Types.DOUBLE;
- } else if (type.equalsIgnoreCase(BIGDECIMAL)) {
- returned = Types.NUMERIC;
- }else if (type.equalsIgnoreCase(DATE)) {
- returned = Types.DATE;
- } else if (type.equalsIgnoreCase(INTEGER)) {
- returned = Types.INTEGER;
- }
-
- // Returns java.sql.Types.OTHER
- return returned;
+ return Types.OTHER;
+ }
+
+ public static int getSQLType(String type) {
+ int returned = Types.OTHER;
+ if (type.equalsIgnoreCase(STRING)) {
+ returned = Types.VARCHAR;
+ } else if (type.equalsIgnoreCase(BOOLEAN)) {
+ returned = Types.BOOLEAN;
+ } else if (type.equalsIgnoreCase(BINARY)) {
+ returned = Types.BINARY;
+ } else if (type.equalsIgnoreCase(DOUBLE)) {
+ returned = Types.DOUBLE;
+ } else if (type.equalsIgnoreCase(FLOAT)) {
+ returned = Types.FLOAT;
+ } else if (type.equalsIgnoreCase(LONG)) {
+ returned = Types.BIGINT;
+ } else if (type.equalsIgnoreCase(BIGDECIMAL)) {
+ returned = Types.NUMERIC;
+ } else if (type.equalsIgnoreCase(DATE)) {
+ returned = Types.DATE;
+ } else if (type.equalsIgnoreCase(INTEGER)) {
+ returned = Types.INTEGER;
}
-
- /**
- * Transforms current Map with SQL types as strings in a new Map with SQL types as integers.
- */
- @SuppressWarnings({"rawtypes", "deprecation", "unchecked"})
- public static Map convertStrSQLMap2IntSQLMap(Map m) {
- HashMap newMap = new HashMap(m.size());
-
- Set k = m.keySet();
- Collection v = m.values();
-
- Iterator ik = k.iterator();
- Iterator iv = v.iterator();
-
- while (ik.hasNext() && iv.hasNext()) {
- Object o = ik.next();
- if (!(o instanceof String)) {
- iv.next();
- continue;
- }
- String key = (String) o;
-
- o = iv.next();
- if (!(o instanceof String)) {
- continue;
- }
- String value = (String) o;
-
- newMap.put(key, new Integer(getSQLType(value)));
- }
- return newMap;
+ return returned;
+ }
+
+ /**
+ * Transforms current Map with SQL types as strings in a new Map with SQL types
+ * as integers.
+ */
+ @SuppressWarnings({ "rawtypes", "deprecation", "unchecked" })
+ public static Map convertStrSQLMap2IntSQLMap(Map m) {
+ HashMap newMap = new HashMap(m.size());
+
+ Set k = m.keySet();
+ Collection v = m.values();
+
+ Iterator ik = k.iterator();
+ Iterator iv = v.iterator();
+
+ while (ik.hasNext() && iv.hasNext()) {
+ Object o = ik.next();
+ if (!(o instanceof String)) {
+ iv.next();
+ continue;
+ }
+ String key = (String) o;
+
+ o = iv.next();
+ if (!(o instanceof String)) {
+ continue;
+ }
+ String value = (String) o;
+
+ newMap.put(key, new Integer(getSQLType(value)));
}
+ return newMap;
+ }
}
diff --git a/ontimize-jee-report-jacoco/pom.xml b/ontimize-jee-report-jacoco/pom.xml
index 6241009..b212d4c 100644
--- a/ontimize-jee-report-jacoco/pom.xml
+++ b/ontimize-jee-report-jacoco/pom.xml
@@ -4,7 +4,7 @@
com.ontimize.jee.report
ontimize-jee-report
- 3.5.0
+ 3.6.0
ontimize-jee-report-jacoco
diff --git a/ontimize-jee-report-rest/pom.xml b/ontimize-jee-report-rest/pom.xml
index 387275c..9d72276 100644
--- a/ontimize-jee-report-rest/pom.xml
+++ b/ontimize-jee-report-rest/pom.xml
@@ -5,7 +5,7 @@
com.ontimize.jee.report
ontimize-jee-report
- 3.5.0
+ 3.6.0
ontimize-jee-report-rest
@@ -76,17 +76,6 @@
https://github.com/ontimize/ontimize-jee-report/tree/master
-
-
- ossrh
- https://s01.oss.sonatype.org/content/repositories/snapshots
-
-
- ossrh
- https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/
-
-
-
${project.groupId}
diff --git a/ontimize-jee-report-server/pom.xml b/ontimize-jee-report-server/pom.xml
index 7d37f13..b7d4532 100644
--- a/ontimize-jee-report-server/pom.xml
+++ b/ontimize-jee-report-server/pom.xml
@@ -4,7 +4,7 @@
com.ontimize.jee.report
ontimize-jee-report
- 3.5.0
+ 3.6.0
ontimize-jee-report-server
@@ -75,17 +75,6 @@
https://github.com/ontimize/ontimize-jee-report/tree/master
-
-
- ossrh
- https://s01.oss.sonatype.org/content/repositories/snapshots
-
-
- ossrh
- https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/
-
-
-
${project.groupId}
diff --git a/ontimize-jee-report-server/src/main/java/com/ontimize/jee/report/server/services/util/DynamicJasperHelper.java b/ontimize-jee-report-server/src/main/java/com/ontimize/jee/report/server/services/util/DynamicJasperHelper.java
index a547478..92ce1e5 100644
--- a/ontimize-jee-report-server/src/main/java/com/ontimize/jee/report/server/services/util/DynamicJasperHelper.java
+++ b/ontimize-jee-report-server/src/main/java/com/ontimize/jee/report/server/services/util/DynamicJasperHelper.java
@@ -25,6 +25,7 @@
import java.util.List;
import java.util.Locale;
import java.util.Map;
+import java.util.Map.Entry;
public class DynamicJasperHelper implements ApplicationContextAware {
@@ -36,7 +37,7 @@ public DynamicJasperHelper() {
}
public String getColumnPattern(final ColumnMetadata columnMetadata, final ColumnStyleParamsDto columnStyleParamsDto,
- final Locale locale) {
+ final Locale locale) {
String pattern = null;
if (columnMetadata != null) {
Class> aClass = TypeMappingsUtils.getClass(columnMetadata.getType());
@@ -46,17 +47,18 @@ public String getColumnPattern(final ColumnMetadata columnMetadata, final Column
return pattern;
}
- public Map getColumnMetadata(final String service, final String path, final String entity, final List columns,
- FilterParameter filters, Boolean advQuery) throws DynamicReportException {
+ public Map getColumnMetadata(final String service, final String path, final String entity,
+ final List columns, FilterParameter filters, Boolean advQuery) throws DynamicReportException {
Map columnMetadataMap = new HashMap<>();
List stringColumns = getColumnsFromDto(columns);
- Map defaultSqlColumnTypes = getSQLColumnTypes(service, path, entity, stringColumns, filters, advQuery);
+ Map defaultSqlColumnTypes = getSQLColumnTypes(service, path, entity, stringColumns, filters,
+ advQuery);
for (ColumnDto col : columns) {
String id = col.getId();
int type = defaultSqlColumnTypes.containsKey(id) ? defaultSqlColumnTypes.get(id) : Types.OTHER;
- if(hasRenderForColumn(col)){
+ if (hasRenderForColumn(col)) {
int auxType = retrieveTypeFromRenderer(col);
- if(auxType != -1) {
+ if (auxType != -1) {
type = auxType;
}
}
@@ -68,28 +70,41 @@ public Map getColumnMetadata(final String service, final
return columnMetadataMap;
}
-
public Map getSQLColumnTypes(final String service, final String path, final String entity,
- final List columns, FilterParameter filters, Boolean advQuery) throws DynamicReportException {
- Map sqlTypes = new HashMap<>();
- Object bean = this.getApplicationContextUtils().getServiceBean(service, path);
-
- Map