Bug 102511 Enhance Highlighting to support Banding
Using the highlight feature to create a banded report results in a messy report. To recreate, create a simple tabular report. In the designer, select the detail row, go to the Highlights tab on the Property Editor view. Add a new highlight, set its condition to be "row[0] % 2" "Equals" "0". Set the formatting for the highlight to have a gray background color. When the report is previewed, alternating rows have a background color for each cell. The issue is that the backgrounds for the cells are not contiguous, there are spaces between each cell's background, and if a cell has a null value there is no background color. In this situation the highlight should apply to the row, instead it is being applied to each cell. If I manually set the background of a detail row to be gray I get the effect I want.
engine/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/parser/EngineIRVisitor.java
}
		}
		currentElement = paramGroup;
	}
	public void visitScalarParameter( ScalarParameterHandle handle )
	{
		assert ( handle.getName( ) != null );
		
		ScalarParameterDefn scalarParameter = new ScalarParameterDefn( );
		scalarParameter.setHandle( handle );
		scalarParameter.setParameterType( IParameterDefnBase.SCALAR_PARAMETER );
		scalarParameter.setName( handle.getName( ) );
		
		List properties = handle.getUserProperties( );
		for ( int i = 0; i < properties.size( ); i++ )
		{
			UserPropertyDefn p = (UserPropertyDefn) properties.get( i );
			scalarParameter.addUserProperty( p.getName( ), handle
					.getProperty( p.getName( ) ) );
		}
		String align = handle.getAlignment( );
		if ( DesignChoiceConstants.SCALAR_PARAM_ALIGN_CENTER.equals( align ) )
			scalarParameter.setAlignment( IScalarParameterDefn.CENTER );
		else if ( DesignChoiceConstants.SCALAR_PARAM_ALIGN_LEFT.equals( align ) )
			scalarParameter.setAlignment( IScalarParameterDefn.LEFT );
		else if ( DesignChoiceConstants.SCALAR_PARAM_ALIGN_RIGHT.equals( align ) )
			scalarParameter.setAlignment( IScalarParameterDefn.RIGHT );
		else
			scalarParameter.setAlignment( IScalarParameterDefn.AUTO );
		scalarParameter.setAllowBlank( handle.allowBlank( ) );