📄 foreachtag.java
字号:
shift = processGroupedData(groupedData, beans, body, sheetTransformer); beans.remove(GROUP_DATA_KEY); if (savedGroupData != null) { beans.put(GROUP_DATA_KEY, savedGroupData); } } catch (NoSuchMethodException e) { log.error(e, new Exception("Can't group collection data by " + groupBy, e)); } catch (IllegalAccessException e) { log.error(e, new Exception("Can't group collection data by " + groupBy, e)); } catch (InvocationTargetException e) { log.error(e, new Exception("Can't group collection data by " + groupBy, e)); } } shift.add(new ResultTransformation(shiftNumber, shiftNumber)); shift.setTagProcessResult(true); return shift; } log.warn("Collection " + items + " is empty"); tagContext.getSheetTransformationController().removeBodyRows(body); ResultTransformation shift = new ResultTransformation(0); shift.add(new ResultTransformation(-1, -body.getNumberOfRows())); shift.setLastProcessedRow(-1); shift.setTagProcessResult(true); return shift; } private ResultTransformation processOneRowTag(SheetTransformer sheetTransformer) { Block body = tagContext.getTagBody(); int shiftNumber = 0; if (itemsCollection != null && !itemsCollection.isEmpty()) { tagContext.getSheetTransformationController().removeLeftRightBorders(body); shiftNumber += -2; Map beans = tagContext.getBeans(); ResultTransformation shift = new ResultTransformation(); shift.setLastProcessedRow(-1); if (groupBy == null || groupBy.length() == 0) { shiftNumber += tagContext.getSheetTransformationController().duplicateRight(body, itemsCollection.size() - 1); processCollectionItemsOneRow(beans, body, shift, sheetTransformer); } else { try { Collection groupedData = ReportUtil.groupCollectionData(itemsCollection, groupBy, groupOrder, select, configuration); shiftNumber += tagContext.getSheetTransformationController().duplicateRight(body, groupedData.size() - 1); Object savedGroupData = null; if (beans.containsKey(GROUP_DATA_KEY)) { savedGroupData = beans.get(GROUP_DATA_KEY); } processGroupedDataOneRow(groupedData, beans, body, shift, sheetTransformer); beans.remove(GROUP_DATA_KEY); if (savedGroupData != null) { beans.put(GROUP_DATA_KEY, savedGroupData); } } catch (NoSuchMethodException e) { log.error(e, new Exception("Can't group collection data by " + groupBy, e)); } catch (IllegalAccessException e) { log.error(e, new Exception("Can't group collection data by " + groupBy, e)); } catch (InvocationTargetException e) { log.error(e, new Exception("Can't group collection data by " + groupBy, e)); } } shift.addRightShift((short) shiftNumber); shift.setTagProcessResult(true); return shift; } log.warn("Collection " + items + " is empty"); HSSFRow currentRow = tagContext.getSheet().getHssfSheet().getRow(body.getStartRowNum()); tagContext.getSheetTransformationController().removeRowCells(currentRow, body.getStartCellNum(), body.getEndCellNum()); ResultTransformation shift = new ResultTransformation(0); shift.add( new ResultTransformation((short)-body.getNumberOfColumns(), (short)(-body.getNumberOfColumns() ))); shift.setLastProcessedRow(-1); shift.setTagProcessResult(true); return shift; } private ResultTransformation processGroupedData(Collection groupedData, Map beans, Block body, SheetTransformer sheetTransformer) { ResultTransformation shift; int startRowNum; int endRowNum; ResultTransformation processResult; shift = new ResultTransformation(0); int k = 0; for (Iterator iterator = groupedData.iterator(); iterator.hasNext();) { GroupData groupData = (GroupData) iterator.next(); beans.put(GROUP_DATA_KEY, groupData); try { startRowNum = body.getStartRowNum() + shift.getLastRowShift() + body.getNumberOfRows() * k++; endRowNum = startRowNum + body.getNumberOfRows() - 1; processResult = sheetTransformer.processRows(tagContext.getSheetTransformationController(), tagContext.getSheet(), startRowNum, endRowNum, beans, null); shift.add(processResult); } catch (ParsePropertyException e) { log.error("Can't parse property ", e); } } return shift; } private void processGroupedDataOneRow(Collection groupedData, Map beans, Block body, ResultTransformation shift, SheetTransformer sheetTransformer) { ResultTransformation processResult; short startColNum, endColNum; int k = 0; for (Iterator iterator = groupedData.iterator(); iterator.hasNext();) { GroupData groupData = (GroupData) iterator.next(); beans.put(GROUP_DATA_KEY, groupData); try { startColNum = (short) (body.getStartCellNum() + shift.getLastCellShift() + body.getNumberOfColumns() * k++); endColNum = (short) (startColNum + body.getNumberOfColumns() - 1); processResult = sheetTransformer.processRow(tagContext.getSheetTransformationController(), tagContext.getSheet(), tagContext.getSheet().getHssfSheet().getRow(body.getStartRowNum()), startColNum, endColNum, beans, null); shift.add(processResult); } catch (ParsePropertyException e) { log.error("Can't parse property ", e); } } } private ResultTransformation processCollectionItems(Collection c2, Map beans, Block body, SheetTransformer sheetTransformer) { ResultTransformation shift = new ResultTransformation(0); int startRowNum; int endRowNum; int index = 0; ResultTransformation processResult; int k = 0; LoopStatus status = new LoopStatus(); if( varStatus != null ){ beans.put( varStatus, status ); } for (Iterator iterator = c2.iterator(); iterator.hasNext(); index++) { Object o = iterator.next(); beans.put(var, o); status.setIndex( index );// if (ReportUtil.shouldSelectCollectionData(beans, select, configuration)) { try { startRowNum = body.getStartRowNum() + shift.getLastRowShift() + body.getNumberOfRows() * k++; endRowNum = startRowNum + body.getNumberOfRows() - 1; processResult = sheetTransformer.processRows(tagContext.getSheetTransformationController(), tagContext.getSheet(), startRowNum, endRowNum, beans, null); shift.add(processResult); } catch (ParsePropertyException e) { log.error("Can't parse property ", e); throw new RuntimeException("Can't parse property", e); }// } } if( varStatus != null ){ beans.remove( varStatus ); } return shift; } private void processCollectionItemsOneRow(Map beans, Block body, ResultTransformation shift, SheetTransformer sheetTransformer) { int k = 0; for (Iterator iterator = itemsCollection.iterator(); iterator.hasNext();) { Object o = iterator.next(); beans.put(var, o); try { short startCellNum = (short) (body.getStartCellNum() + shift.getLastCellShift() + body.getNumberOfColumns() * k++); short endCellNum = (short) (startCellNum + body.getNumberOfColumns() - 1); ResultTransformation processResult = sheetTransformer.processRow(tagContext.getSheetTransformationController(), tagContext.getSheet(), tagContext.getSheet().getHssfSheet().getRow(body.getStartRowNum()), startCellNum, endCellNum, beans, null); shift.add(processResult); } catch (Exception e) { log.error("Can't parse property ", e); } } } private Collection selectCollectionDataToProcess(Map beans) { Collection c2 = new ArrayList(); for (Iterator iterator = itemsCollection.iterator(); iterator.hasNext();) { Object o = iterator.next(); beans.put(var, o); if (ReportUtil.shouldSelectCollectionData(beans, select, configuration)) { c2.add(o); } } return c2; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -