Condividi tramite


Appendice: Miglioramenti al codice dei parametri discreti

In questa esercitazione sono stati creati un report con un valore di parametro discreto e un metodo di supporto in grado di accettare qualsiasi serie di valori in un formato comune (un ArrayList). Tali valori sono poi stati applicati a un report basato su un nome di campo parametro specifico (la costante PARAMETER_FIELD_NAME).

Se è installato Visual Studio 2005 o versioni successive o Crystal Reports Developer, è possibile accedere all'API avanzata che imposta i parametri discreti nel report Crystal. L’API di Crystal Reports Developer consente di ridurre al minimo la quantità di codice necessaria per impostare i parametri discreti.

Nelle procedure precedenti è stato descritto come creare il metodo di supporto SetCurrentValuesForParameterField().

In questa esercitazione viene descritto come eliminare il metodo di supporto e chiamare invece il metodo SetParameterValue() della classe ReportDocument.

Il metodo SetParameterValue() si presenta nei seguenti metodi di overload:

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

È possibile passare qualsiasi tipo di oggetto in cui il valore soddisfi i valori predefiniti per il campo parametro. L'oggetto può essere un'istanza Array che memorizza un elenco di valori di parametro.

Prerequisiti:

Per utilizzare il metodo SetParameterValue() per i parametri discreti

  1. Aprire il progetto completato per questa esercitazione.

  2. Aprire il Web Form o il Windows Form.

  3. Dal menu Visualizza, scegliere Codice.

  4. All'interno del metodo ConfigureCrystalReports(), sopra la riga che collega il report alla proprietà ReportSource del controllo CrystalReportViewer, chiamare il metodo SetParameterValue() dalla classe CustomerByCity. Passare al metodo il nome del campo parametro e i valori del parametro in un'istanza Array.

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

A questo punto è possibile creare ed eseguire il progetto per la lettura e l'impostazione di parametri discreti.