Personalizzazione durante l'esecuzione dei campi di parametro

In Crystal Reports è possibile supportare l'input degli utenti con dei parametri. Tali parametri possono essere utilizzati per raggiungere una varietà di scopi. Ad esempio:

  • Immettere un parametro in un campo database e consentire all'utente di specificare i valori per tale campo in modo da filtrare i dati di un report.
  • Applicare la formattazione condizionale a un report utilizzando i campi di parametro.
  • Definire l'ordinamento utilizzando i campi di parametro..

Nel seguente esempio viene illustrato come eseguire l'impostazione dei valori dei campi di parametro runtime utilizzando il codice. Fornisce inoltre una spiegazione su come eseguire l'impostazione dei diversi parametri. Il primo è un parametro discreto con valori multipli e il secondo è un parametro con valori compresi tra intervalli.

Per modificare i campi di parametro runtime

[Visual Basic]

' Dichiara le variabili necessarie per passare i parametri 
'  al controllo del visualizzatore.
Dim paramFields As New ParameterFields()
Dim paramField As New ParameterField()
Dim discreteVal As New ParameterDiscreteValue()
Dim rangeVal As New ParameterRangeValue()

' Il primo è un parametro discreto con valori multipli.

' Imposta il nome del campo di parametro. Questo deve corrispondere 
'  a un parametro nel report.
paramField.ParameterFieldName = "Customer Name"

' Imposta il primo valore discreto e lo passa al parametro.
discreteVal.Value = "AIC Childrens"
paramField.CurrentValues.Add(discreteVal)

' Imposta il secondo valore discreto e lo passa al parametro.
' La variabile discreteVal è impostata su new (nuova), quindi le impostazioni precedenti 
' non verranno sovrascritte.
discreteVal = New ParameterDiscreteValue()
discreteVal.Value = "Aruba Sport"
paramField.CurrentValues.Add(discreteVal)

' Aggiunge il parametro alla raccolta dei campi di parametro.
paramFields.Add(paramField)

' Il secondo parametro contiene un valore compreso tra intervalli. La variabile paramField 
' è impostata su new (nuova), quindi le impostazioni precedenti non verranno sovrascritte.
paramField = New ParameterField()

' Imposta il nome del campo di parametro. Questo deve corrispondere 
'  a un parametro nel report.
paramField.ParameterFieldName = "Customer ID"

' Imposta i valori iniziale e finale dell'intervallo e li passa al parametro.
rangeVal.StartValue = 42
rangeVal.EndValue = 72
paramField.CurrentValues.Add(rangeVal)

' Aggiunge il secondo parametro alla raccolta dei campi di parametro.
paramFields.Add(paramField)

' Imposta la raccolta dei campi di parametro all'interno del controllo del visualizzatore.
crystalReportViewer1.ParameterFieldInfo = paramFields

crystalReportViewer1.ReportSource = "c:\reports\my report.rpt"

[C#]

// Dichiara le variabili necessarie per passare i parametri 
//  al controllo del visualizzatore.
ParameterFields paramFields = new ParameterFields ();
ParameterField paramField = new ParameterField ();
ParameterDiscreteValue discreteVal = new ParameterDiscreteValue ();
ParameterRangeValue rangeVal = new ParameterRangeValue ();

// Il primo è un parametro discreto con valori multipli.

// Imposta il nome del campo di parametro. Questo deve corrispondere 
//  a un parametro nel report.
paramField.ParameterFieldName = "Customer Name";

// Imposta il primo valore discreto e lo passa al parametro.
discreteVal.Value = "AIC Childrens";
paramField.CurrentValues.Add (discreteVal);

// Imposta il secondo valore discreto e lo passa al parametro.
// La variabile discreteVal è impostata su new (nuova), quindi le impostazioni precedenti 
// non verranno sovrascritte.
discreteVal = new ParameterDiscreteValue ();
discreteVal.Value = "Aruba Sport";
paramField.CurrentValues.Add (discreteVal);

// Aggiunge il parametro alla raccolta dei campi di parametro.
paramFields.Add (paramField);

// Il secondo parametro contiene un valore compreso tra intervalli. La variabile paramField 
// è impostata su new (nuova), quindi le impostazioni precedenti non verranno sovrascritte.
paramField = new ParameterField ();

// Imposta il nome del campo di parametro. Questo deve corrispondere 
//  a un parametro nel report.
paramField.ParameterFieldName = "Customer ID";

// Imposta i valori iniziale e finale dell'intervallo e li passa al 
// parametro.
rangeVal.StartValue = 42;
rangeVal.EndValue = 72;
paramField.CurrentValues.Add (rangeVal);

// Aggiunge il secondo parametro alla raccolta dei campi di parametro.
paramFields.Add (paramField);

// Imposta la raccolta dei campi di parametro all'interno del controllo del visualizzatore.
crystalReportViewer1.ParameterFieldInfo = paramFields;

[C++]

// Dichiara le variabili necessarie per passare i parametri 
//  al controllo del visualizzatore.
ParameterFields* paramFields = new ParameterFields ();
ParameterField* paramField = new ParameterField ();
ParameterDiscreteValue* discreteVal = new ParameterDiscreteValue ();
ParameterRangeValue* rangeVal = new ParameterRangeValue ();

// Il primo è un parametro discreto con valori multipli.
// Imposta il nome del campo di parametro. Questo deve corrispondere 
//  a un parametro nel report.
paramField->ParameterFieldName = "Customer Name";

// Imposta il primo valore discreto e lo passa al parametro.
String* val = "AIC Childrens";
discreteVal->Value = val;
paramField->CurrentValues->Add (discreteVal);

// Imposta il secondo valore discreto e lo passa al parametro.
// La variabile discreteVal è impostata su new (nuova), quindi le impostazioni precedenti 
// non verranno sovrascritte.
discreteVal = new ParameterDiscreteValue ();
val = "Aruba Sport";
discreteVal->Value = val;
paramField->CurrentValues->Add (discreteVal);

// Aggiunge il parametro alla raccolta dei campi di parametro.
paramFields->Add (paramField);

// Il secondo parametro contiene un valore compreso tra intervalli. La variabile paramField 
// è impostata su new (nuova), quindi le impostazioni precedenti non verranno sovrascritte.
paramField = new ParameterField ();

// Imposta il nome del campo di parametro. Questo deve corrispondere 
//  a un parametro nel report.
paramField->ParameterFieldName = "Customer ID";

// Imposta i valori iniziale e finale dell'intervallo e li passa al 
//  parametro.
rangeVal->StartValue = __box(42);
rangeVal->EndValue = __box(72);
paramField->CurrentValues->Add (rangeVal);

// Aggiunge il secondo parametro alla raccolta dei campi di parametro.
paramFields->Add (paramField);

// Imposta la raccolta dei campi di parametro all'interno del controllo del visualizzatore.
crystalReportViewer1->ParameterFieldInfo = paramFields;

crystalReportViewer1->ExportReport();

[VJ#]

// Dichiara le variabili necessarie per passare i parametri 
//  al controllo del visualizzatore.
ParameterFields paramFields = new ParameterFields ();
ParameterField paramField = new ParameterField ();
ParameterDiscreteValue discreteVal = new ParameterDiscreteValue ();
ParameterRangeValue rangeVal = new ParameterRangeValue ();

// Il primo è un parametro discreto con valori multipli.

// Imposta il nome del campo di parametro. Questo deve corrispondere 
//  a un parametro nel report.
paramField.set_ParameterFieldName("Customer Name");

// Imposta il primo valore discreto e lo passa al parametro.
discreteVal.set_Value("AIC Childrens");
paramField.get_CurrentValues.Add (discreteVal);

// Imposta il secondo valore discreto e lo passa al parametro.
// La variabile discreteVal è impostata su new (nuova), quindi le impostazioni precedenti 
// non verranno sovrascritte.
discreteVal = new ParameterDiscreteValue ();
discreteVal.set_Value("Aruba Sport");
paramField.get_CurrentValues().Add (discreteVal);

// Aggiunge il parametro alla raccolta dei campi di parametro.
paramFields.Add (paramField);

// Il secondo parametro contiene un valore compreso tra intervalli. La variabile paramField 
// è impostata su new (nuova), quindi le impostazioni precedenti non verranno sovrascritte.
paramField = new ParameterField ();

// Imposta il nome del campo di parametro. Questo deve corrispondere 
//  a un parametro nel report.
paramField.set_ParameterFieldName("Customer ID");

// Imposta i valori iniziale e finale dell'intervallo e li passa al 
//  parametro.
rangeVal.set_StartValue((System.Int32)42);
rangeVal.set_EndValue((System.Int32)72);
paramField.get_CurrentValues().Add (rangeVal);

// Aggiunge il secondo parametro alla raccolta dei campi di parametro.
paramFields.Add (paramField);

// Imposta la raccolta dei campi di parametro all'interno del controllo del visualizzatore.
crystalReportViewer1.set_ParameterFieldInfo(paramFields);

Vedere anche

Impostazione dei parametri | Opzioni di collegamento per Windows Forms Viewers | Opzioni di collegamento per Web Forms Viewers