context.execute( table.getOnRow( ) ); this.accessGroup( 0 );
closeResultSet( rs ); logger.log( Level.FINE, "end table item" ); context.popContentObject( );
	public void execute( ReportItemDesign item, IReportEmitter emitter )	{		super.execute( item, emitter );		ITableEmitter tableEmitter = emitter.getTableEmitter( );		if ( tableEmitter == null )		{			return;		}		this.emitter = emitter;		table = (TableItemDesign) item;		logger.log( Level.FINE,"start table item" ); //$NON-NLS-1$		//execute the on start script		context.execute( table.getOnStart( ) );		TableContent tableObj = (TableContent)ContentFactory.createTableContent( table, context.getContentObject( ) );		context.pushContentObject( tableObj );				tableObj.setCaption( getLocalizedString( table.getCaptionKey( ), table				.getCaption( ) ) );		setStyles( tableObj, item );		setVisibility( item, tableObj );		String bookmarkStr = evalBookmark( item );		if ( bookmarkStr != null )			tableObj.setBookmarkValue( bookmarkStr );		logger.log( Level.FINE, "start get table data" ); //$NON-NLS-1$		rs = openResultSet( table );		logger.log( Level.FINE, "end get table data" ); //$NON-NLS-1$		boolean isRowAvailable = false;		if ( rs != null )		{			isRowAvailable = rs.next( );		}		tableEmitter.start( tableObj );		accessColumns( tableEmitter, table );		//access table header		accessHeader( );		//data driving report		tableEmitter.startBody( );		setUpDropProperties( table );		if ( isRowAvailable )		{			context.execute( table.getOnRow( ) );			this.accessGroup( 0 );		}		//access table footer		accessSummary( );		tableEmitter.endBody( );		tableEmitter.end( );		closeResultSet( rs );		logger.log( Level.FINE, "end table item" ); //$NON-NLS-1$		//execute the on finish script		context.execute( table.getOnFinish( ) );		context.popContentObject( );	}