Bug 133780 Execution sequence of valueExpr(DataItem) and onCreate() is not correct.
In the attached design. There is a DataItem in the table footer that I used to do a sum of the "Amount" column. In the test, I write the onCreate() method as: params["amount"]=Total.sum(row["AMOUNT"]); It passes the aggregation value to a parameter. In the "valueExpr" I write as: "AMOUNT:" + params["amount"] The expression is expected to export the sum. Actual output is: AMOUNT:null Followings are the definitions from Rom Text Spec & Rom Scripting Spec, valueExpr usually should be evalated after the onCreate() method. DataItem.valueExpr: The expression is usually evaluated when the report is rendered, not in the Factory, though it may be evaluated in the Factory also. onCreate: Executed when the element is created in the Factory. Called after the item is created, but before the item is saved to the report document file.
engine/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/executor/TextItemExecutor.java
Map.Entry entry = (Map.Entry) iter.next( );
				Expression expr = (Expression) entry.getValue( );
				Object value = context.evaluate( expr );
				results.put( entry.getKey( ), value );
			}
			content.setRawValue( results );
		}
		content.setRawType( IForeignContent.TEMPLATE_TYPE );
		if ( context.isInFactory( ) )
		{
			TextItemScriptExecutor.handleOnCreate( (ForeignContent) content,
					context );
		}
		startTOCEntry( content );
		if ( emitter != null )
		{
			emitter.startForeign( content );
		}
		finishTOCEntry( );
		closeResultSet( );
		context.popContent( );
	}
	/**
	 * execute the plain text.
	 * 
	 * @param design
	 * @param emitter
	 */
	protected void executePlainText( TextItemDesign design,
			IContentEmitter emitter )