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/data/dte/ReportQueryBuilder.java
BaseQueryDefinition query = createQuery( (ReportItemDesign) listing );
			if ( query != null )
			{
				query.getSorts( ).addAll( createSorts( listing ) );
				query.getFilters( ).addAll( createFilters( listing ) );
				return query;
			}
			
			if ( getTransform( ) == null )
			{
				return null;
			}
			String name = createUniqueQueryName( );
			SubqueryDefinition subQuery = new SubqueryDefinition( name );
			listing.setQuery( subQuery );
			subQuery.getSorts( ).addAll( createSorts( listing ) );
			subQuery.getFilters( ).addAll( createFilters( listing ) );
			getTransform( ).getSubqueries( ).add( subQuery );
			return subQuery;
		}
		/**
		 * get Localized string by the resouce key and <code>Locale</code>
		 * object in <code>context</code>
		 * 
		 * @param resourceKey
		 *            the resource key
		 * @param text
		 *            the default value
		 * @return the localized string if it is defined in report deign, else