| @@ -60,6 +60,30 @@ open class ReportService( | |||
| private val COMPLETION_PROJECT = "templates/report/AR05_Project Completion Report.xlsx" | |||
| // ==============================|| GENERATE REPORT ||============================== // | |||
| fun generalCreateReportIndexed( // just loop through query records one by one, return rowIndex | |||
| sheet: Sheet, | |||
| result: List<Map<String, Any>>, | |||
| startRow: Int, | |||
| startColumn: Int | |||
| ): Int { | |||
| var rowIndex = startRow | |||
| var columnIndex = startColumn | |||
| result.forEachIndexed { index, obj -> | |||
| var tempCell = sheet.getRow(rowIndex).createCell(columnIndex) | |||
| tempCell.setCellValue((index + 1).toDouble()) | |||
| val keys = obj.keys.toList() | |||
| keys.forEachIndexed { keyIndex, key -> | |||
| tempCell = sheet.getRow(rowIndex).getCell(columnIndex + keyIndex + 1) ?: sheet.getRow(rowIndex) | |||
| .createCell(columnIndex + keyIndex + 1) | |||
| when (obj[key]) { | |||
| is Double -> tempCell.setCellValue(obj[key] as Double) | |||
| else -> tempCell.setCellValue(obj[key] as String) | |||
| } | |||
| } | |||
| rowIndex++ | |||
| } | |||
| return rowIndex | |||
| } | |||
| fun genFinancialStatusReport(teamLeadId: Long): ByteArray { | |||
| @@ -1286,19 +1310,8 @@ open class ReportService( | |||
| rowIndex = 5 | |||
| columnIndex = 0 | |||
| result.forEachIndexed { index, obj -> | |||
| tempCell = sheet.getRow(rowIndex).createCell(columnIndex) | |||
| tempCell.setCellValue((index + 1).toDouble()) | |||
| val keys = obj.keys.toList() | |||
| keys.forEachIndexed { keyIndex, key -> | |||
| tempCell = sheet.getRow(rowIndex).getCell(columnIndex + keyIndex + 1) ?: sheet.getRow(rowIndex).createCell(columnIndex + keyIndex + 1) | |||
| when (obj[key]) { | |||
| is Double -> tempCell.setCellValue(obj[key] as Double) | |||
| else -> tempCell.setCellValue(obj[key] as String ) | |||
| } | |||
| } | |||
| rowIndex++ | |||
| } | |||
| generalCreateReportIndexed(sheet, result, rowIndex, columnIndex) | |||
| return workbook | |||
| } | |||
| @@ -1337,20 +1350,9 @@ open class ReportService( | |||
| rowIndex = 6 | |||
| columnIndex = 0 | |||
| result.forEachIndexed { index, obj -> | |||
| tempCell = sheet.getRow(rowIndex).createCell(columnIndex) | |||
| tempCell.setCellValue((index + 1).toDouble()) | |||
| val keys = obj.keys.toList() | |||
| keys.forEachIndexed { keyIndex, key -> | |||
| tempCell = sheet.getRow(rowIndex).getCell(columnIndex + keyIndex + 1) ?: sheet.getRow(rowIndex) | |||
| .createCell(columnIndex + keyIndex + 1) | |||
| when (obj[key]) { | |||
| is Double -> tempCell.setCellValue(obj[key] as Double) | |||
| else -> tempCell.setCellValue(obj[key] as String) | |||
| } | |||
| } | |||
| rowIndex++ | |||
| } | |||
| // val currRow = generalCreateReportIndexed(sheet, result, rowIndex, columnIndex) | |||
| generalCreateReportIndexed(sheet, result, rowIndex, columnIndex) | |||
| val sheetCF = sheet.sheetConditionalFormatting | |||
| val rule1 = sheetCF.createConditionalFormattingRule("AND(J7 >= $lowerLimit, J7 <= 1)") | |||