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:
È necessario creare un progetto in base alle istruzioni riportate in Esercitazione: Lettura e impostazione di parametri discreti.
In Impostazione manuale di parametri nel codice è invece necessario creare solo la costante PARAMETER_FIELD_NAME. Non è necessario creare il metodo di supporto SetCurrentValuesForParameterField().
Se si dispone già di un progetto create in base alle istruzioni riportate in Esercitazione: Lettura e impostazione di parametri discreti, eliminare il metodo di supporto SetCurrentValuesForParameterField() e la chiamata all'interno del metodo ConfigureCrystalReports().
Per utilizzare il metodo SetParameterValue() per i parametri discreti
Aprire il progetto completato per questa esercitazione.
Aprire il Web Form o il Windows Form.
Dal menu Visualizza, scegliere Codice.
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.