Bug 324546 external .js file has no effect in beforeOpen if the data set is used to generate a dynamic parameter selection
Build Identifier: I define a function "replace_query" in an external .js file, and then include it in the report. I then use the function in the beforeOpen script. If the data set is not used to generate a dynamic parameter selection, then it works fine. Otherwise, when viewing the report, it will give this error: Error evaluating Javascript expression. Script engine error: ReferenceError: "replace_query" is not defined. Reproducible: Always Steps to Reproduce: 1. Define a function in an external .js file 2. Include the .js file in the report 3. Call the function in the beforeOpen script of a data set that is also used to generate a dynamic parameter selection
engine/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/api/impl/GetParameterDefinitionTask.java
ParameterHelper[] parameterHelpers, ChoiceListCache cache,
			Object[] parameterValueAhead )
	{
		int parameterIndex = parameterValueAhead.length;
		int parameterCount = parameters.getCount( );
		ScalarParameterHandle parameter = (ScalarParameterHandle) parameters
				.get( parameterIndex );
		Collection choices = getChoicesFromParameterQuery( parameter );
		Iterator iterator = choices.iterator( );
		Collection result = null;
		while ( iterator.hasNext( ) )
		{
			Object[] values = new Object[parameterIndex + 1];
			for ( int i = 0; i < parameterValueAhead.length; i++ )
			{
				values[i] = parameterValueAhead[i];
			}
			IParameterSelectionChoice choice = (IParameterSelectionChoice) iterator
					.next( );
			Object value = choice.getValue( );
			values[parameterIndex] = value;
			Collection children = null;
			if ( parameterIndex == parameterCount - 1 )
			{
				children = Collections.EMPTY_LIST;
			}
			else if ( cache.containsChildren( values, parameterIndex ) )
			{
				children = cache.getChildren( values, parameterIndex );
			}