Anexo: Mejoras en el código de parámetros discretos

Ha creado correctamente un informe con un valor de parámetro discreto y un método auxiliar que puede aceptar cualquier conjunto de valores en un formato común (un ArrayList), así mismo ha aplicado estos valores a un informe basado en un nombre de campo de parámetro específico (la constante PARAMETER_FIELD_NAME).

Si ha instalado Visual Studio 2005 o posterior, o Crystal Reports Developer, tiene acceso a la API mejorada que establece los parámetros discretos en el informe Crystal. La API de Crystal Reports Developer ayuda a reducir la cantidad de código necesario para establecer parámetros discretos.

En los procedimientos anteriores, ha aprendido a crear el método auxiliar SetCurrentValuesForParameterField().

En este tutorial, puede eliminar el método auxiliar y, en su lugar, llamar al método SetParameterValue() de la clase ReportDocument.

El método SetParameterValue() se incluye en los siguientes métodos sobrecargados:

  • SetParameterValue(int index, object value)
  • SetParameterValue(string parameterFieldName, object value)
  • SetParameterValue(string parameterFieldName, object value, string subreport)

Puede pasar cualquier tipo de objeto en el que el valor satisfaga los valores predeterminados del campo de parámetro. El objeto puede ser una instancia de Array que almacene una lista de valores de parámetro.

Requisitos previos:

Para utilizar el método SetParameterValue() para parámetros discretos

  1. Abra el proyecto terminado de este tutorial.

  2. Abra el formulario Web Forms o Windows Forms.

  3. En el menú Ver, haga clic en Código.

  4. En el método ConfigureCrystalReports(), sobre la línea que enlaza el informe a la propiedad ReportSource del control CrystalReportViewer, llame al método SetParameterValue() de la claseCustomerByCity. Pase el nombre de campo de parámetro y los valores del parámetro en una instancia de Array al método al método.

    customersByCityReport.SetParameterValue(PARAMETER_FIELD_NAME, arrayList.ToArray())
    
    customersByCityReport.SetParameterValue(PARAMETER_FIELD_NAME, arrayList.ToArray());
    

Ahora ya está preparado para generar y ejecutar el proyecto con el fin de leer y configurar parámetros discretos.