Bug 128359 The logic is not correctly when a filter is added to the table on the layout
Description: The logic is not correctly when a filter is added to the table on the layout Steps to reproduce: Let me give an example. 1. Creat a report, new a datasource and a dataset 2. We consume that the dataset has 10 records(DataResult_A) . We set a filter(Filter_A) in the dataset, and then the 6 records of the dataset(DataResult_B) are gained. 3. Drag the dataset to the layout, and set another filter(Filter_B) on the table. Actual result: The result of Filter_B is based on DataResult_A. Expect result: The result of Filter_B should be based on DataResult_B.
data/org.eclipse.birt.data/src/org/eclipse/birt/data/engine/executor/transform/FilterUtil.java
* @return
	 */
	private static boolean isMultiPassFilterOperator( int operatorId )
	{
		if ( operatorId == IConditionalExpression.OP_BOTTOM_N
				|| operatorId == IConditionalExpression.OP_BOTTOM_PERCENT
				|| operatorId == IConditionalExpression.OP_TOP_N
				|| operatorId == IConditionalExpression.OP_TOP_PERCENT )
			return true;
		return false;
	}
	/**
	 * Prepares a filter expression for top(n)/bottom(n) evaluation Each
	 * top(n)/bottom(n) expression is tagged with a NEvaluator handle TODO: this
	 * code is temporary
	 * 
	 * @param expr
	 */
	public static void prepareFilterExpression( IBaseExpression expr,
			FilterPassController filterPass ) throws DataException
	{
		
		if ( expr instanceof IConditionalExpression )
		{
			ConditionalExpression ce = (ConditionalExpression) expr;
			int operator = ce.getOperator( );
			if ( operator == IConditionalExpression.OP_TOP_N
					|| operator == IConditionalExpression.OP_TOP_PERCENT
					|| operator == IConditionalExpression.OP_BOTTOM_N
					|| operator == IConditionalExpression.OP_BOTTOM_PERCENT )