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
else if ( DesignChoiceConstants.PARAM_TYPE_TIME.equals( valueType ) )
				parameter.setDataType( IParameterDefn.TYPE_TIME );
			else if ( DesignChoiceConstants.PARAM_TYPE_DECIMAL.equals( valueType ) )
				parameter.setDataType( IParameterDefn.TYPE_DECIMAL );
			else if ( DesignChoiceConstants.PARAM_TYPE_FLOAT.equals( valueType ) )
				parameter.setDataType( IParameterDefn.TYPE_FLOAT );
			else if ( DesignChoiceConstants.PARAM_TYPE_STRING.equals( valueType ) )
				parameter.setDataType( IParameterDefn.TYPE_STRING );
			else if ( DesignChoiceConstants.PARAM_TYPE_INTEGER.equals( valueType ) )
				parameter.setDataType( IParameterDefn.TYPE_INTEGER );
			else
				parameter.setDataType( IParameterDefn.TYPE_ANY );
			
			String paramType = handle.getValueType( );
			if ( DesignChoiceConstants.PARAM_VALUE_TYPE_STATIC.equals( paramType ) )
			{
				parameter
						.setSelectionListType( IParameterDefn.SELECTION_LIST_STATIC );
				ArrayList values = new ArrayList( );
				Iterator selectionIter = handle.choiceIterator( );
				while ( selectionIter.hasNext( ) )
				{
					SelectionChoiceHandle selection = (SelectionChoiceHandle) selectionIter
						.next( );
					ParameterSelectionChoice selectionChoice = new ParameterSelectionChoice(
						this.handle );
					selectionChoice.setLabel( selection.getLabelKey( ), selection
						.getLabel( ) );
					selectionChoice.setValue( selection.getValue( ), parameter
						.getDataType( ) );