Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Sie können der CodeBehind-Klasse jetzt Parametercode für den Unterbericht hinzufügen. Erstellen Sie zunächst die private Hilfsmethode SetDateRangeForOrders().
So erstellen und codieren Sie die SetDateRangeForOrders()-Methode
Öffnen Sie das Web Form oder Windows Form.
Klicken Sie im Menü Ansicht auf Code.
Fügen Sie am Anfang der Klasse unterhalb der vorhandenen PARAMETER_FIELD_NAME-Konstanten, die im vorherigen Lernprogramm hinzugefügt wurde, zwei neue Konstanten ein.
Private Const SUBREPORT_PARAMETER_FIELD_NAME As String = "OrderDateRange" Private Const SUBREPORT_NAME As String = "CustomerOrders"private const string SUBREPORT_PARAMETER_FIELD_NAME = "OrderDateRange"; private const string SUBREPORT_NAME = "CustomerOrders";Erstellen Sie am Ende der Klasse eine neue private Methode mit dem Namen SetDateRangeForOrders(), die drei Parameter enthält: ReportDocument, string startDate und string endDate.
Private Sub SetDateRangeForOrders(ByVal myReportDocument As ReportDocument, ByVal startDate As String, ByVal endDate As String) End Subprivate void SetDateRangeForOrders(ReportDocument reportDocument, string startDate, string endDate) { }Deklarieren und instantiieren Sie innerhalb dieser Methode die ParameterRangeValue-Klasse.
``` vb
Dim myParameterRangeValue As ParameterRangeValue = New
ParameterRangeValue()
```
``` csharp
ParameterRangeValue parameterRangeValue = new
ParameterRangeValue();
```
<table>
<colgroup>
<col style="width: 100%" />
</colgroup>
<thead>
<tr class="header">
<th><img src="images\xkh1wxd8.alert_note(de-de,VS.90).gif" alt="Note" class="note" />Anmerkung</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><p>Damit auf die ParameterRangeValue-Klasse zugegriffen werden kann, fügen Sie am Anfang der CodeBehind-Klasse für den CrystalDecisions.Shared-Namespace eine der Anweisungen "Imports" [Visual Basic] oder "using" [C#] hinzu. (Sie haben diese Deklaration in <a href="https://msdn.microsoft.com/de-de/library/vs%7ccrystlmn%7c%7e%5chtml%5ctopic168.htm(v=VS.90)">Projekt-Setup</a> hinzugefügt.)</p></td>
</tr>
</tbody>
</table>
Setzen Sie die StartValue-Eigenschaft der ParameterRangeValue-Instanz auf den startDate-Methodenparameter.
myParameterRangeValue.StartValue = startDateparameterRangeValue.StartValue = startDate;
AnmerkungDie Eigenschaften StartValue und EndValue der ParameterRangeValue-Klasse akzeptieren Werte des Datentyps "Object". Dieser generische Typ ermöglicht es, dass Bereichswerte unterschiedlicher Typen übergeben werden können, z.B.: "text", "number", "date", "currency" oder "time".
Setzen Sie die EndValue-Eigenschaft der ParameterRangeValue-Instanz auf den endDate-Methodenparameter.
myParameterRangeValue.EndValue = endDateparameterRangeValue.EndValue = endDate;Setzen Sie die obere und untere Grenze auf "bound-inclusive".
myParameterRangeValue.LowerBoundType = RangeBoundType.BoundInclusive myParameterRangeValue.UpperBoundType = RangeBoundType.BoundInclusiveparameterRangeValue.LowerBoundType = RangeBoundType.BoundInclusive; parameterRangeValue.UpperBoundType = RangeBoundType.BoundInclusive;
AnmerkungBei BoundInclusive werden die oberen und unteren Bereichswerte in den Bereich eingeschlossen.
Sie können dem Parameter des Unterberichts jetzt die ParameterRangeValue-Instanz zuweisen.
Rufen Sie das ParameterFieldDefinitions-Objekt ab, das aus der DataDefinition-Eigenschaft der ReportDocument-Instanz stammt.
<table>
<colgroup>
<col style="width: 100%" />
</colgroup>
<thead>
<tr class="header">
<th><img src="images\xkh1wxd8.alert_note(de-de,VS.90).gif" alt="Note" class="note" />Anmerkung</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><p>ParameterFieldDefinitions ist eine Indexklasse, die Instanzen der ParameterFieldDefinition-Klasse enthält.</p></td>
</tr>
</tbody>
</table>
``` vb
Dim myParameterFieldDefinitions As ParameterFieldDefinitions = myReportDocument.DataDefinition.ParameterFields
```
``` csharp
ParameterFieldDefinitions parameterFieldDefinitions = reportDocument.DataDefinition.ParameterFields;
```
Rufen Sie die ParameterFieldDefinition-Instanz aus der ParameterFieldDefinitions-Indexklasse ab, die auf zwei Indexwerten basiert: dem Namen des Parameterfeldes des Unterberichts und dem Namen des Unterberichts. Übergeben Sie die beiden am Anfang der Klasse deklarierten konstanten Werte.
Dim myParameterFieldDefinition As ParameterFieldDefinition = myParameterFieldDefinitions(SUBREPORT_PARAMETER_FIELD_NAME, SUBREPORT_NAME)ParameterFieldDefinition parameterFieldDefinition = parameterFieldDefinitions[SUBREPORT_PARAMETER_FIELD_NAME, SUBREPORT_NAME];Rufen Sie die Clear()-Methode der CurrentValues-Eigenschaft der ParameterFieldDefinition-Instanz auf, um vorhandene Werte aus der CurrentValues-Eigenschaft zu entfernen.
myParameterFieldDefinition.CurrentValues.Clear()parameterFieldDefinition.CurrentValues.Clear();Fügen Sie der CurrentValues-Eigenschaft der ParameterFieldDefinition-Instanz die zuvor erstellte ParameterRangeValue-Instanz hinzu.
myParameterFieldDefinition.CurrentValues.Add(myParameterRangeValue)parameterFieldDefinition.CurrentValues.Add(parameterRangeValue);Rufen Sie die ApplyCurrentValues()-Methode auf, und übergeben Sie die CurrentValues-Eigenschaft der ParameterFieldDefinition-Instanz.
myParameterFieldDefinition.ApplyCurrentValues(myParameterFieldDefinition.CurrentValues)parameterFieldDefinition.ApplyCurrentValues(parameterFieldDefinition.CurrentValues);
Durch diese schrittweise Anleitung wurden Start- und Enddatumswerte in einer ParameterRangeValue-Instanz festgelegt und an den OrderDateRange-Parameter des Unterberichts CustomerOrders übergeben.