Anwenden eines Filters auf die Berichtdaten

In diesem Abschnitt erfahren Sie, wie Sie einen Filter auf die im Bericht enthaltenen Daten anwenden.

So wenden Sie einen Filter auf Berichtdaten an

  1. Öffnen Sie das Web Form oder Windows Form in der Entwurfsansicht.

  2. Klicken Sie im Menü Ansicht auf Code.

  3. Fügen Sie am Anfang der Klasse drei neue Variablendeklarationen auf Klassenebene hinzu, die die Werte darstellen, auf deren Grundlage Daten gefiltert werden.

    Private salesAmount As String
    Private operatorValue As String
    Private customerName As String
    
    private string salesAmount;
    private string operatorValue;
    private string customerName;
    
  4. Wenn Sie ein Windows-Projekt erstellen, fügen Sie eine zusätzliche Variablendeklaration auf Klassenebene hinzu: einen booleschen Wert mit der Bezeichnung useDefaultValues. Weisen Sie dieser Variablendeklaration dann den Wert "true" zu.

    Private useDefaultValues As Boolean = True
    
    private bool useDefaultValues = true;
    
  5. Erstellen Sie innerhalb der ConfigureCrystalReports()-Methode einen Bedingungsblock.

    • Wenn Sie eine Website entwickeln, erstellen Sie einen Not IsPostBack-Bedingungsblock. Platzieren Sie diesen Block in der Methode über dem vorhandenen Code.

      If Not IsPostBack Then
      End If
      
      if (!IsPostBack)
      {
      }
      
    • Wenn Sie ein Windows-Projekt entwickeln, erstellen Sie einen useDefaultValues-Bedingungsblock. Platzieren Sie diesen Block in der Methode über dem vorhandenen Code.

      If useDefaultValues Then
      End If
      
      if (useDefaultValues)
      {
      }
      
  6. Weisen Sie den drei Variablen auf Klassenebene innerhalb des Bedingungsblocks die Werte "4.000", "<" und "K" zu.

Diese Werte werden deshalb innerhalb eines Bedingungsblocks zugewiesen, da sie später mit einem Click-Ereignis für ein Button-Steuerelement außer Kraft gesetzt werden.

``` vb
salesAmount = "4000"
operatorValue = "<"
customerName = "K"
```

``` csharp
salesAmount = "4000";
operatorValue = "<";
customerName = "K";
```
  1. Erstellen Sie direkt außer- und unterhalb des Bedingungsblocks eine selectionFormula-Zeichenfolge, in der Sie Literale mit den zuvor erstellten Variablen auf Klassenebene kombinieren.

    Dim selectionFormula As String = "{Customer.Last Year's Sales} >
    " _
    & salesAmount _
    & " AND Mid({Customer.Customer Name}, 1, 1) " _
    & operatorValue _
    & "'" _
    & customerName _
    & "'"
    
    string selectionFormula = "{Customer.Last Year's Sales} > "
    + salesAmount
    + " AND Mid({Customer.Customer Name}, 1, 1) "
    + operatorValue
    + "'"
    + customerName
    + "'";
    
  2. Erstellen Sie in dem zuvor erstellten Berichtbindungscode einen Zeilenumbruch direkt über der Codezeile, in der customerBySalesName der ReportSource-Eigenschaft des CrystalReportViewer-Steuerelements zugewiesen wurde.

  3. Weisen Sie der ReportDocument-Instanz in diesem Zeilenumbruch die selectionFormula-Zeichenfolgenvariable zu.

    customerBySalesNameReport.DataDefinition.RecordSelectionFormula =
    selectionFormula
    
    customerBySalesNameReport.DataDefinition.RecordSelectionFormula =
    selectionFormula;
    
  4. Kompilieren Sie die Anwendung, und zeigen Sie sie an.

    Die Daten sollten jetzt gefiltert werden.

  5. Kehren Sie zu Visual Studio zurück, und klicken Sie auf Debuggen beenden, um den Debugmodus zu verlassen.

Im nächsten Abschnitt erstellen Sie auf dem Formular Steuerelemente, mit denen Sie die Auswahlformel dynamisch anpassen können.