Ändern von Methoden, die Session-Persistenz einschließen

Falls Sie das vorangehende Lernprogramm Lernprogramm: Lesen und Einstellen diskreter Parameter erstellt und Session-Persistenz eingeschlossen haben, führen Sie die folgenden Prozeduren aus. Fahren Sie andernfalls mit Ändern von Methoden, die Session-Persistenz ausschließen fort.

So ändern Sie die ConfigureCrystalReports()-Methode, die Session-Persistenz einschließt

  1. Geben Sie in der ConfigureCrystalReports()-Methode nach der Zeile, durch die die ArrayList deklariert und instantiiert wird, einige Zeilenumbrüche in den Code ein.

  2. Deklarieren Sie innerhalb der Zeilen die beiden Zeichenfolgenvariablen startDate und endDate.

    Dim startDate As String
    Dim endDate As String
    
    string startDate;
    string endDate;
    
  3. Geben Sie innerhalb des Not IsPostBack-Bedingungsblocks Standardwerte für die Variablen startDate und endDate ein.

``` vb
startDate = "1.8.1997"
endDate = "31.8.1997"
```

``` csharp
startDate = "1.8.1997";
endDate = "31.8.1997";
```
  1. Weisen Sie Session innerhalb des Not IsPostBack-Bedingungsblocks die Variablen startDate und endDate zu.
``` vb
Session("startDate") = startDate
Session("endDate") = endDate
```

``` csharp
Session["startDate"] = startDate;
Session["endDate"] = endDate;
```
  1. Rufen Sie, nachdem die ArrayList-Instanz aus Session abgerufen wurde, innerhalb des Else-Blocks die Variablen startDate und endDate aus Session ab.
``` vb
startDate = Session("startDate").ToString()
endDate = Session("endDate").ToString()
```

``` csharp
startDate = Session["startDate"].ToString();
endDate = Session["endDate"].ToString();
```

Bei dieser Vorgehensweise erreichen Sie das Blockende mit den jeweils zugewiesenen Datumsvariablen. Bei der Zuweisung der im vorherigen Lernprogramm konfigurierten ArrayList-Variablen wird eine parallele Logik verwendet.
  1. Rufen Sie unterhalb des Codes, durch den SetCurrentValuesForParameterField() aufgerufen wird, die SetDateRangeForOrders()-Methode auf, und übergeben Sie die ParameterFields-Instanz sowie die Variablen startDate und endDate.
``` vb
SetDateRangeForOrders(myParameterFields, startDate, endDate)
```

``` csharp
SetDateRangeForOrders(parameterFields, startDate, endDate);
```
  1. Wählen Sie im Menü Datei die Option Alle speichern.

So ändern Sie die redisplay_Click()-Methode, die Session-Persistenz einschließt

Ändern Sie als Nächstes die redisplay_Click-Ereignismethode.

  1. Geben Sie in der redisplay_Click()-Ereignismethode nach der Zeile, durch die Session die ArrayList-Instanz zugewiesen wird, einige Zeilenumbrüche in den Code ein.

  2. Weisen Sie den Session-Variablen innerhalb der Zeilen die Text-Eigenschaft der TextBox-Steuerelemente orderStartDate und orderEndDate zu.

    Session("startDate") = orderStartDate.Text
    Session("endDate") = orderEndDate.Text
    
    Session["startDate"] = orderStartDate.Text;
    Session["endDate"] = orderEndDate.Text;
    
  3. Wählen Sie im Menü Datei die Option Alle speichern.

Die Session-Werte startDate und endDate werden jetzt abgerufen und bei Aufruf der ConfigureCrystalReports()-Methode angewendet.

Sie können das Projekt jetzt erstellen und ausführen, um zu überprüfen, ob der im Unterbericht enthaltene Bereichsparameter durch die TextBox-Werte neu festgelegt wird.