if ( this.USE_DATE_IN_SUBQUERY ) abc += subRi.getValue( "sub4" );
	private void displayPreResult( IQueryResults qr, boolean printGroupInfo,			boolean useSkipTo ) throws BirtException	{		assertTrue( qr.getResultMetaData( ) != null );				IResultIterator ri = qr.getResultIterator( );		if ( useSkipTo )		{			if ( this.PRE_use_skipto_num == -1 )				ri.moveTo( 0 );			else				ri.moveTo( this.PRE_use_skipto_num );		}		else		{			ri.next( );		}				do		{			String abc = "";			for ( int i = 0; i < rowExprName.length; i++ )				abc += ri.getValue( rowExprName[i] ) + "  ";			for ( int i = 0; i < totalExprName.length; i++ )				abc += ri.getValue(totalExprName[i]) + "  ";			if (this.updateNewBindingName != null && this.updateNewBindingExpr != null)				abc += ri.getValue(this.updateNewBindingName) + " ";			if ( printGroupInfo )				abc += ri.getStartingGroupLevel( ) + " ";			this.testPrintln( abc + ri.getRowId( ) );			if ( this.UPDATE_add_subquery == 1 )			{				IResultIterator subRi = ri.getSecondaryIterator( subQueryName1,						scope );				while ( subRi.next( ) )				{					abc = "      ";					for ( int i = 0; i < subRowExprName1.length; i++ )						abc += subRi.getValue( subRowExprName1[i] ) + "  ";					this.testPrintln( abc );				}			}						if ( this.UPDATE_add_subquery == 2 )			{				IResultIterator subRi = ri.getSecondaryIterator( subQueryName2,						scope );				while ( subRi.next( ) )				{					abc = "      ";					for ( int i = 0; i < subRowExprName2.length; i++ )						abc += subRi.getValue( subRowExprName2[i] ) + "  ";					this.testPrintln( abc );				}			}		} while ( ri.next( ) );		//Test implementation of API IResultIterator.isEmpty().		if ( this.TEST_ISEMPTY )			assertTrue( ri.isEmpty( ) );		else			assertFalse( ri.isEmpty( ) );				this.testPrintln( "" );		ri.close( );		myPreDataEngine.shutdown( );	}