Skip to content

Commit 170d506

Browse files
committed
remove redundant cells from filter sheet in dashboard excel export
1 parent c667dde commit 170d506

File tree

2 files changed

+11
-129
lines changed

2 files changed

+11
-129
lines changed

knowage-export/src/main/java/it/eng/knowage/engine/api/export/dashboard/DashboardExporter.java

Lines changed: 8 additions & 121 deletions
Original file line numberDiff line numberDiff line change
@@ -1409,72 +1409,6 @@ public void fillDashboardSelectionsSheetWithData(Map<String, Map<String, JSONArr
14091409
}
14101410
}
14111411

1412-
public void transformDatasetDriversForExcelSheet(JSONObject body, JSONArray driversFromBody, JSONArray parameters) {
1413-
try {
1414-
if (body.has("datasetDrivers") && body.getJSONArray("datasetDrivers") != null && body.getJSONArray("datasetDrivers").length() > 0) {
1415-
for (int i = 0; i < body.getJSONArray("datasetDrivers").length(); i++) {
1416-
JSONObject datasetDriver = body.getJSONArray("datasetDrivers").getJSONObject(i);
1417-
getParameterValuesFromDatasetDriver(driversFromBody, datasetDriver);
1418-
}
1419-
1420-
} else if (body.has("configuration") && body.getJSONObject("configuration") != null && body.getJSONObject("configuration").has("datasets") && body.getJSONObject("configuration").getJSONArray("datasets") != null && body.getJSONObject("configuration").getJSONArray("datasets").length() > 0) {
1421-
for (int i = 0; i < body.getJSONObject("configuration").getJSONArray("datasets").length(); i++) {
1422-
JSONObject dataset = body.getJSONObject("configuration").getJSONArray("datasets").getJSONObject(i);
1423-
if (dataset.has("drivers") && dataset.getJSONArray("drivers") != null && dataset.getJSONArray("drivers").length() > 0) {
1424-
for (int j = 0; j < dataset.getJSONArray("drivers").length(); j++) {
1425-
JSONObject datasetDriver = dataset.getJSONArray("drivers").getJSONObject(j);
1426-
getParameterValuesFromDatasetDriver(driversFromBody, datasetDriver);
1427-
}
1428-
}
1429-
}
1430-
}
1431-
1432-
transformParametersForExcelSheet(parameters, driversFromBody);
1433-
} catch (JSONException jsonException) {
1434-
LOGGER.error("Unable to transform driver", jsonException);
1435-
throw new SpagoBIRuntimeException("Unable to transform driver", jsonException);
1436-
}
1437-
}
1438-
1439-
public void transformParametersForExcelSheet(JSONArray parameters, JSONArray driversFromBody) {
1440-
if (parameters != null && parameters.length() > 0) {
1441-
for (int i = 0; i < parameters.length(); i++) {
1442-
try {
1443-
JSONObject parameter = parameters.getJSONObject(i);
1444-
try {
1445-
parameter.put("value", parameter.getString("value"));
1446-
} catch (JSONException e) {
1447-
parameter.put("value", parameter.getJSONArray("value").toString());
1448-
}
1449-
parameter.put("description", "NOT APPLICABLE");
1450-
parameter.put("driverLabel", "NOT APPLICABLE");
1451-
parameter.put("type", "NOT APPLICABLE");
1452-
parameter.put("urlName", "NOT APPLICABLE");
1453-
driversFromBody.put(parameter);
1454-
1455-
} catch (JSONException e) {
1456-
LOGGER.error("Unable to transform parameter", e);
1457-
}
1458-
}
1459-
}
1460-
}
1461-
1462-
private void getParameterValuesFromDatasetDriver(JSONArray driversFromBody, JSONObject datasetDriver) throws JSONException {
1463-
JSONArray parameterValues = datasetDriver.getJSONArray("parameterValue");
1464-
if (parameterValues != null && parameterValues.length() > 0) {
1465-
for (int k = 0; k < parameterValues.length(); k++) {
1466-
JSONObject parameterValue = parameterValues.getJSONObject(k);
1467-
if (!datasetDriver.has("value")) {
1468-
datasetDriver.put("value", parameterValue.getString("value"));
1469-
} else {
1470-
datasetDriver.put("value","," + parameterValue.getString("value"));
1471-
}
1472-
}
1473-
}
1474-
datasetDriver.put("name", datasetDriver.getString("driverLabel"));
1475-
driversFromBody.put(datasetDriver);
1476-
}
1477-
14781412
public void fillDashboardDriversSheetWithData(JSONArray drivers, Sheet sheet) {
14791413

14801414
try {
@@ -1504,59 +1438,28 @@ public void fillDashboardDriversSheetWithData(JSONArray drivers, Sheet sheet) {
15041438
DOCUMENT_NAME,
15051439
sheet.getSheetName());
15061440

1507-
newheader = sheet.createRow((short) headerIndex + 1); // first row
1441+
newheader = sheet.createRow((short) headerIndex + 1);
15081442

15091443
Cell cell = newheader.createCell(0);
15101444
cell.setCellValue("Name");
15111445
CellStyle headerCellStyle = buildCellStyle(sheet, true, HorizontalAlignment.LEFT, VerticalAlignment.CENTER, (short) 11);
15121446
cell.setCellStyle(headerCellStyle);
15131447

15141448
Cell cell2 = newheader.createCell(1);
1515-
cell2.setCellValue("Type");
1449+
cell2.setCellValue("Value");
15161450
cell2.setCellStyle(headerCellStyle);
15171451

1518-
Cell cell3 = newheader.createCell(2);
1519-
cell3.setCellValue("Multivalue");
1520-
cell3.setCellStyle(headerCellStyle);
1521-
1522-
Cell cell4 = newheader.createCell(3);
1523-
cell4.setCellValue("Value");
1524-
cell4.setCellStyle(headerCellStyle);
1525-
1526-
Cell cell5 = newheader.createCell(4);
1527-
cell5.setCellValue("Url Name");
1528-
cell5.setCellStyle(headerCellStyle);
1529-
1530-
Cell cell6 = newheader.createCell(5);
1531-
cell6.setCellValue("Driver label");
1532-
cell6.setCellStyle(headerCellStyle);
1533-
1534-
Cell cell7 = newheader.createCell(6);
1535-
cell7.setCellValue("Driver type");
1536-
cell7.setCellStyle(headerCellStyle);
1537-
15381452
int j = headerIndex + 2;
15391453

15401454
for (int i = 0; i < drivers.length(); i++) {
15411455
JSONObject driver = drivers.getJSONObject(i);
1542-
Row newRow = sheet.createRow(j);
1543-
newRow.createCell(0).setCellValue(driver.getString("name"));
1544-
newRow.createCell(1).setCellValue(driver.getString("type"));
1545-
try {
1546-
newRow.createCell(2).setCellValue(driver.getBoolean("multivalue"));
1547-
} catch (JSONException e) {
1548-
try {
1549-
newRow.createCell(2).setCellValue(driver.getString("multivalue"));
1550-
} catch (JSONException ex) {
1551-
newRow.createCell(2).setCellValue(false);
1552-
}
1456+
String value = driver.getString("value");
1457+
if (value != null && !value.isEmpty()) {
1458+
Row newRow = sheet.createRow(j);
1459+
newRow.createCell(0).setCellValue(driver.getString("name"));
1460+
newRow.createCell(1).setCellValue(driver.getString("value"));
1461+
j++;
15531462
}
1554-
newRow.createCell(3).setCellValue(driver.getString("value"));
1555-
newRow.createCell(4).setCellValue(driver.getString("urlName"));
1556-
newRow.createCell(5).setCellValue(driver.getString("driverLabel"));
1557-
newRow.createCell(6).setCellValue(setDriverType(driver));
1558-
1559-
j++;
15601463
}
15611464

15621465
} catch (Exception e) {
@@ -1566,22 +1469,6 @@ public void fillDashboardDriversSheetWithData(JSONArray drivers, Sheet sheet) {
15661469

15671470
}
15681471

1569-
private String setDriverType(JSONObject driver) {
1570-
if (driver.has("parameterValue")) {
1571-
return "DATASET DRIVER";
1572-
} else {
1573-
try {
1574-
if (driver.getString("description").equals("NOT APPLICABLE")) {
1575-
return "DATASET PARAMETER";
1576-
} else {
1577-
return "DOCUMENT DRIVER";
1578-
}
1579-
} catch (JSONException e) {
1580-
throw new RuntimeException(e);
1581-
}
1582-
}
1583-
}
1584-
15851472

15861473

15871474
}

knowage-export/src/main/java/it/eng/knowage/engine/api/export/dashboard/excel/DashboardExcelExporter.java

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ public byte[] getScheduledBinaryData(String documentLabel) throws IOException, I
107107
// avoid sonar security hotspot issue
108108
String cockpitExportExternalProcessName = SingletonConfig.getInstance()
109109
.getConfigValue("KNOWAGE.DASHBOARD.EXTERNAL_PROCESS_NAME");
110-
LOGGER.info("CONFIG label=\"KNOWAGE.DASHBOARD.EXTERNAL_PROCESS_NAME\": " + cockpitExportExternalProcessName);
110+
LOGGER.info("CONFIG label=\"KNOWAGE.DASHBOARD.EXTERNAL_PROCESS_NAME\": {}", cockpitExportExternalProcessName);
111111

112112
String stringifiedRequestUrl = url.toString();
113113
ProcessBuilder processBuilder = new ProcessBuilder(cockpitExportExternalProcessName, exportScriptFullPath.toString(),
@@ -208,8 +208,6 @@ public byte[] getDashboardBinaryData(JSONObject body, boolean isDashboardSingleW
208208
exportedSheets++;
209209
}
210210

211-
transformDatasetDriversForExcelSheet(body, driversFromBody, parameters);
212-
213211
if (driversFromBody != null && driversFromBody.length() > 0) {
214212
Sheet driversSheet = createUniqueSafeSheetForSelections(wb, "Filters");
215213
fillDashboardDriversSheetWithData(driversFromBody, driversSheet);
@@ -265,8 +263,6 @@ public byte[] getPivotBinaryData(JSONObject body) {
265263
fillDashboardSelectionsSheetWithData(selections, selectionsSheet);
266264
}
267265

268-
transformDatasetDriversForExcelSheet(body, driversFromBody, parameters);
269-
270266
if (driversFromBody != null && driversFromBody.length() > 0) {
271267
Sheet driversSheet = createUniqueSafeSheetForSelections(wb, "Filters");
272268
fillDashboardDriversSheetWithData(driversFromBody, driversSheet);
@@ -598,7 +594,7 @@ void buildFirstPageHeaders(Workbook wb, Sheet sheet, String widgetName, int offs
598594
Row header = createHeader(sheet, startRow, rowHeight, rowspan, startCol, colWidth, colspan, namespan, dataspan, widgetName, groupsAndColumnsMap, columnsOrdered);
599595
for (int i = 0; i < columnsOrdered.length(); i++) {
600596
JSONObject column = columnsOrdered.getJSONObject(i);
601-
String columnName = "";
597+
String columnName;
602598
try {
603599
columnName = column.getString("alias");
604600
} catch (JSONException e) {
@@ -686,9 +682,8 @@ private void buildRowsAndCols(Workbook wb, Sheet sheet, int offset, JSONObject s
686682
String defaultRowBackgroundColor = getDefaultRowBackgroundColor(alternatedRows, rowIsEven);
687683

688684
boolean styleAlreadyAppliedToPreviousCells = false;
689-
String styleKeyToApplyToTheEntireRow = null;
690685
List<Boolean> styleCanBeOverriddenByWholeRowStyle = new ArrayList<>();
691-
cellStyle = buildCols(wb, sheet, settings, rows, columnsOrdered, columnStylesMap, cellStyle, columnsCellStyles, numberOfSummaryRows, summaryRowsLabels, row, rowObject, r, styleCanBeOverriddenByWholeRowStyle, rawCurrentNumberType, styleAlreadyAppliedToPreviousCells, defaultRowBackgroundColor, styleKeyToApplyToTheEntireRow);
686+
cellStyle = buildCols(wb, sheet, settings, rows, columnsOrdered, columnStylesMap, cellStyle, columnsCellStyles, numberOfSummaryRows, summaryRowsLabels, row, rowObject, r, styleCanBeOverriddenByWholeRowStyle, rawCurrentNumberType, styleAlreadyAppliedToPreviousCells, defaultRowBackgroundColor, null);
692687
}
693688
}
694689

0 commit comments

Comments
 (0)