public void endTableBand(ITableBandContent band) throws BirtException {
   if (cellEmitter != null) {
     cellEmitter.endTableBand(band);
   } else {
     if (!isNestTable()) {
       if (LayoutUtil.isRepeatableBand(band)) {
         lastRowId = -1;
       }
       if (band.getBandType() == IBandContent.BAND_GROUP_FOOTER) {
         int groupLevel = getGroupLevel();
         resolveCellsOfDrop(groupLevel, true, isContentFinished(band));
       }
       if (hasDropCell()) {
         layoutEvents.push(new LayoutEvent(LayoutEvent.END_BAND, band));
         return;
       }
       flush();
     }
     emitter.endTableBand(band);
   }
 }