Erstellen des Berichts Sales_Order_Detail_2008R2 (SSRS)

In diesem Lernprogramm erfahren Sie, wie Sie den Bericht Sales_Order_Detail_2008R2 aus den AdventureWorks 2008R2-Beispielberichten erstellen.

Dieser Bericht ist der Detailbericht, der das Ziel der Drillthroughaktion im Bericht Employee_Sales_Summary_2008R2 für das SalesOrderNumber-Feld ist. Im Bericht werden die Verkaufs-Kopfzeile und Verkaufs-Zeilenelementdetails für einen Bereich aufeinander folgender Verkaufsaufträge angezeigt. Detailinformationen enthalten die Bestellnummer, den Geschäftsnamen, Rechnungs- und Lieferadressen, Kontaktinformationen für Vertriebsmitarbeiter und weitere Details aus der Datenbank AdventureWorks2008R2. Weitere Informationen zu den Berichten und ihren Beziehungen finden Sie unter Lernprogramme: Erstellen von AdventureWorks 2008R2-Beispielberichten (SSRS).

Lernziele

In diesem Lernprogramm führen Sie folgende Aufgaben aus:

  • Hinzufügen eines Datasets und einer Abfrage, die Verkaufsauftragsdetaildaten für einen Bereich von Verkaufsaufträgen abruft

  • Konfigurieren der Berichtsparameter für die erste und letzte Verkaufsauftragsnummer im Bereich

  • Hinzufügen der folgenden Informationen zum Seitenkopf:

    • Seitennamen. wenn Sie den Bericht nach Excel exportieren, basiert der Registerkartenname eines Arbeitsblatts auf dem Seitennamen.

    • Seitenzahlen für den ganzen Bericht

    • Seitenzahlen innerhalb jedes Verkaufsauftrags

    • Anweisungen für den Benutzer des Berichts zum Zurückkehren zum Hauptbericht

  • Hinzufügen einer Liste mit einer einzelnen Zeilengruppe auf Grundlage von SalesOrderID. Fügen Sie der Liste Folgendes hinzu:

    • Ein geschachteltes Rechteck als Container zum Steuern des Layouts von Auftragskopfzeile und Detailinformationen

    • Mehrere Textfelder zum Anzeigen von Auftragskopfzeileninformationen

    • Einen Unterbericht zum Anzeigen von Telefonnummern für mehrere Geschäftskontakte

    • Eine Tabelle zum Anzeigen von Details für jedes Zeilenelement in einem Verkaufsauftrag

  • Hinzufügen von benutzerdefiniertem Code, um Seitensummen und laufende Seitensummen für aufeinander folgende Seiten zu berechnen

  • Definieren einer Berichtsvariablen, um den laufenden Gesamtergebnisausdruck zu vereinfachen

  • Definieren eines benutzerdefinierten Gruppenausdrucks in den Detailzeilen, um nach 25 Zeilen eine neue Seite zu beginnen

Ungefähre Dauer dieses Lernprogramms: 30 Minuten

Anforderungen

Informationen zu den Anforderungen finden Sie unter Erforderliche Komponenten für AdventureWorks 2008R2-Beispielberichte (SSRS).

Für dieses Lernprogramm wird vorausgesetzt, dass Sie Erstellen des Berichtsserverprojekts und des Berichts AdventureWorks2008R2_Base (SSRS) abgeschlossen haben.

Tipps

Der Verkaufsauftragsdetailbericht ist ein Freiformbericht, in dem Datenbereiche, Rechtecke sowie geschachtelte Datenbereiche und Textfelder zum Anordnen der Daten verwendet werden. Die Kapselungshierarchie dieser Elemente ist wichtig. Lesen Sie die Tipps in Berichtsentwurfstipps (Report Builder 3.0 und SSRS), und erstellen Sie diesen Bericht mithilfe der folgenden Tipps:

  • Es wird empfohlen, dass Sie den Beispielbericht Sales_Order_Detail_2008R2 öffnen und mit diesem Lernprogramm zusammen anzeigen. Nachdem Sie Sales_Order_Detail_2008R2 geöffnet haben, zeigen Sie die Berichtselementhierachie im Bereich Dokumentgliederung an. Wenn Sie den Bericht erstellen, überprüfen Sie die Kapselungsbeziehungen zwischen Tablix-Berichtselementen und Rechtecken.

    HinweisHinweis

    Zum Öffnen des Dokumentgliederungsbereichs klicken Sie im Menü Ansicht auf Weitere Fenster und dann auf Dokumentgliederung.

  • Eine Liste ist ein Freiform-Tablix-Layout. Standardmäßig enthält eine Liste eine einzelne Tablix-Zelle, die ein Rechteck enthält. In diesem Bericht fügen Sie Folgendes hinzu:

    • Ein zusätzliches geschachteltes Rechteck für das Logo, die Verkaufsauftragsnummer und Auftragskopfzeileninformationen

    • Eine Tabelle zum Anzeigen der Auftragsdetails für jede Zeile

  • Sie finden es vielleicht einfacher, Datenbereiche oder Rechteckcontainer zwischen dem ursprünglichen Bericht und der Kopie zu kopieren und einzufügen, statt die Berichtselemente und das Layout neu zu erstellen. Sie können Berichtselemente zwischen Ansichten geöffneter Berichte im Registerformat kopieren und einfügen. Nachdem Sie Elemente aus einem Bericht kopiert haben, klicken auf die Registerkarte des Berichts, in den Sie kopieren möchten, und dann auf die Position, an der die Elemente eingefügt werden sollen. Die Einfügeaktion ist kontextbezogen. Sie können z. B. keinen Datenbereich in einen Seitenkopf einfügen.

So öffnen Sie das Projekt und erstellen eine Kopie des Berichts

  1. Öffnen Sie in Business Intelligence Development Studio das AdventureWorks 2008R2-Berichtsserverprojekt.

  2. Führen Sie im Projektmappen-Explorer die folgenden Aktionen aus:

    1. Klicken Sie mit der rechten Maustaste auf den Bericht "AdventureWorks2008R2_Base.rdl", und klicken Sie dann auf Kopieren.

    2. Klicken Sie mit der rechten Maustaste auf den Projektknoten, und klicken Sie dann auf Einfügen.

    3. Benennen Sie den kopierten Bericht in "Sales_Order_Detail_2008R2.rdl" um.

So erstellen Sie das Dataset für die einzelnen Verkäufe

  • Fügen Sie im Bereich Berichtsdaten ein eingebettetes Dataset mit dem Namen SalesOrder hinzu. Verwenden Sie die freigegebene Datenquelle AdventureWorks2008R2 und die folgende Abfrage:

    SELECT SOH.SalesOrderNumber, S.BusinessEntityID, S.Name, 
      SOH.SalesOrderID, SOH.SalesPersonID, SOH.TotalDue,
      SOH.OrderDate, SOH.PurchaseOrderNumber,
      SOH.BillToAddressID, SOH.ShipToAddressID, SOH.ShipMethodID,
      SM.Name AS ShipMethod, BA.AddressLine1 AS BillAddress1, BA.City AS BillCity, 
      BA.PostalCode AS BillPostalCode, BSP.Name AS BillStateProvince, 
      BCR.Name AS BillCountryRegion, 
      SA.AddressLine1 AS ShipAddress1,SA.City AS ShipCity, SA.PostalCode AS ShipPostalCode, 
      SSP.Name AS ShipStateProvince, SCR.Name AS ShipCountryRegion,
      e.JobTitle, per.[FirstName] + N' ' + per.[LastName] AS [SalesPerson], 
      ph.PhoneNumber,
      SD.SalesOrderDetailID, SD.OrderQty, SD.UnitPrice, 
      CASE WHEN SD.UnitPriceDiscount IS NULL THEN 0 ELSE SD.UnitPriceDiscount END 
         AS UnitPriceDiscount, 
      SD.LineTotal, SD.CarrierTrackingNumber, P.Name as ProductName, P.ProductNumber
      FROM [Sales].[SalesOrderHeader] SOH 
        INNER JOIN Sales.Customer C ON SOH.CustomerID = C.CustomerID
        INNER JOIN Sales.Store S ON C.StoreID = S.BusinessEntityID
        INNER JOIN Person.Address SA ON SA.AddressID = SOH.ShipToAddressID -- Shipping address
        INNER JOIN Person.StateProvince SSP ON SA.StateProvinceID = SSP.StateProvinceID 
        INNER JOIN Person.CountryRegion SCR ON SSP.CountryRegionCode = SCR.CountryRegionCode 
        INNER JOIN Person.Address BA ON SOH.BillToAddressID = BA.AddressID -- Billing Address
        INNER JOIN Person.StateProvince BSP ON BA.StateProvinceID = BSP.StateProvinceID 
        INNER JOIN Person.CountryRegion BCR ON BSP.CountryRegionCode = BCR.CountryRegionCode 
        INNER JOIN Purchasing.ShipMethod SM ON SOH.ShipMethodID = SM.ShipMethodID 
        INNER JOIN [Sales].[SalesPerson] sp ON sp.[BusinessEntityID] = SOH.[SalesPersonID]  
        INNER JOIN [HumanResources].[Employee] e ON SOH.[SalesPersonID] = e.[BusinessEntityID] 
        INNER JOIN [Person].[Person] per ON per.[BusinessEntityID] = sp.[BusinessEntityID]
        INNER JOIN Person.PersonPhone ph ON per.[BusinessEntityID] = ph.[BusinessEntityID]
        INNER JOIN Sales.SalesOrderDetail SD ON SD.SalesOrderID = SOH.SalesOrderID
        INNER JOIN Production.Product P ON SD.ProductID = P.ProductID 
    WHERE (SOH.SalesOrderID BETWEEN (@SalesOrderIDStart) AND (@SalesOrderIDEnd))
    

Die Datasetabfrage gibt Daten für mehrere Aufträge in einem Bereich zurück.

So konfigurieren Sie den Berichtsparameter @SalesOrderIDStart

  1. Öffnen Sie Parametereigenschaften für @SalesOrderIDStart.

  2. Ändern Sie die Eingabeaufforderung in First Order ID?

  3. Ändern Sie Datentyp in Integer.

  4. Fügen Sie in Standardwerte einen Wert hinzu, und legen Sie ihn auf 57030 fest.

So konfigurieren Sie den Berichtsparameter @SalesOrderIDEnd

  1. Öffnen Sie Parametereigenschaften für @SalesOrderIDEnd.

  2. Ändern Sie die Eingabeaufforderung in Last Order ID?

  3. Ändern Sie Datentyp in Integer.

  4. Fügen Sie in Standardwerte einen Wert hinzu, und legen Sie ihn auf 57032 fest.

Hinzufügen von Namen und Zahlen zum Seitenkopf

So fügen Sie Seitennamen hinzu

  1. Fügen Sie im Seitenkopf dem Textfeld, das [&ReportName] enthält, auf einer neuen Zeile den folgenden Text hinzu: Seitenname:.

  2. Erweitern Sie Integrierte Felder im Bereich "Berichtsdaten", und ziehen Sie PageName neben den hinzugefügten Text.

  3. Klicken Sie auf den Berichtshintergrund, um im Eigenschaftenbereich Berichtseigenschaften anzuzeigen.

  4. Geben Sie in InitialPageName SalesOrder ein.

  5. Klicken Sie im Gruppierungsbereich auf die Gruppe SalesOrderID. Überprüfen Sie, ob die Eigenschaften für das Tablix-Element im Eigenschaftenbereich angezeigt werden.

  6. Erweitern Sie Gruppe, suchen Sie PageName, und geben Sie =Fields!SalesOrderNumber.Value ein.

Wenn Sie diese Datei nach Excel exportieren, basieren Registerkartennamen auf dem Seitennamen.

So fügen Sie Seitenzahlen hinzu

  1. Fügen Sie im Seitenkopf ein Textfeld mit dem folgenden Text hinzu:

    • Auftragsseite: [&PageNumber] von [&TotalPages]

    • Berichtsseite: [&OverallPageNumber] von [&OverallTotalPages]

  2. Klicken Sie im Gruppierungsbereich auf die Gruppe SalesOrderID.

  3. Überprüfen Sie im Eigenschaftenbereich, ob ein Tablix-Element ausgewählt wurde. Erweitern Sie Group und PageBreak, und legen Sie ResetPageNumber auf true fest.

Während Sie durch den Bericht blättern, werden die Seitenzahl für die Gruppe und die Seitenzahl für den ganzen Bericht angezeigt.

Hinzufügen von Anweisungen für den Benutzer des Berichts

So fügen Sie Anweisungen für den Benutzer des Berichts zum Zurückkehren zum Hauptbericht hinzu

  1. Fügen Sie unter dem Seitenkopf ein Textfeld mit Anweisungen für den Endbenutzer hinzu, wie er zum Masterbericht zurück gelangt. Fügen Sie den folgenden Text hinzu:

    Kehren Sie mithilfe der Browserschaltfläche "Zurück" zum Hauptbericht zurück.

  2. Formatieren Sie die Textfelder nach Bedarf.

Hinzufügen und Konfigurieren einer Liste

So fügen Sie eine Liste mit Gruppenzeile hinzu

  1. Fügen Sie unter den Anweisungen zum Umschalten von Szenariotext eine Liste ein.

    Standardmäßig enthält die Liste eine einzelne Tablix-Zelle in einer Detailzeile. In den Schritt 2 bis 6 fügen Sie eine Gruppenzeile hinzu und entfernen die Detailzeile, damit die Liste eine einzelne Tablix-Zelle in einer Gruppenzeile enthält.

  2. Ziehen Sie [SalesOrderID] aus dem SalesOrder-Dataset zu Zeilengruppen im Gruppierungsbereich und legen Sie ihn über der Detailgruppe ab.

  3. Klicken Sie im Gruppierungsbereich mit der rechten Maustaste auf die Detailgruppe, und klicken Sie dann auf Gruppe löschen.

  4. Klicken Sie im Dialogfeld Gruppe löschen auf Gruppe und verwandte Zeilen und Spalten löschen.

  5. Überprüfen Sie in der ausgewählten Liste, ob das Zeilenhandle eine einzelne Klammer anzeigt, die eine einzelne Zeilengruppe angibt.

  6. Klicken Sie mit der rechten Maustaste auf das Spaltenhandle für die erste Spalte, und klicken Sie dann auf Spalten löschen.

  7. Klicken Sie im Dialogfeld Spalten löschen auf Nur Spalten löschen.

    Die Tablix weist nun eine einzelne Zelle auf, die ein Rechteck enthält, und ist nach [SalesOrderID] gruppiert. Dieses Rechteck ist der Container für Informationen zu einem einzelnen Verkaufsauftrag. In späteren Schritten fügen Sie diesem Container die Auftragskopfzeile und Auftragsdetails hinzu.

  8. Klicken Sie mit der rechten Maustaste auf die Zelle, und klicken Sie dann auf Rechteckeigenschaften.

  9. Ändern Sie den Namen in OrderHeader_Contents.

  10. Klicken Sie im Gruppierungsbereich mit der rechten Maustaste auf die Gruppe SalesOrderID, und öffnen Sie Gruppeneigenschaften.

  11. Wählen Sie unter Seitenumbrüche die Option Zwischen den einzelnen Instanzen einer Gruppe aus.

  12. Programmbedingt beginnt jeder Verkaufsauftrag auf einer neuen Seite.

So überprüfen Sie die Konfiguration der Liste

  1. Klicken Sie in der Liste auf die leere Zelle, und legen Sie auf der Symbolleiste die Hintergrundfarbe auf Rauchiges Weiß fest. Beim Arbeiten mit in einem Rechteck geschachtelten Elementen ist es hilfreich, den Container zu sehen.

  2. Gehen Sie zum Überprüfen der Konfiguration der Liste wie folgt vor:

    1. Ziehen Sie aus dem SalesOrder-Dataset die Einträge SalesOrderID und TotalDue in das Rechteck.

    2. Klicken Sie mit der rechten Maustaste auf SalesOrderID, zeigen Sie auf Zusammenfassen nach, und klicken Sie dann auf Erste.

      Da es sich um eine Gruppenzeile handelt, verwenden Sie Aggregatfunktionen für Felder in einem Ausdruck.

    3. Formatieren Sie TotalDue als Währung.

    4. Führen Sie den Bericht aus.

    Für jede Auftragsinstanz wird die Liste auf einer neuen Seite angezeigt und zeigt die Auftragsnummer und den Gesamtumsatz an. Es sollten drei Seiten vorhanden sein, jeweils eine für Auftrag 57030, 57031 und 57032. Während Sie durch den Bericht blättern, ändern sich die Seitenkopfwerte.

    Wenn Sie diesen Bericht verwenden, um Details für einen einzelnen Auftrag bereitzustellen, legen Sie @SalesOrderIDStart und @SalesOrderIDEnd auf dieselbe SalesOrderID fest.

  3. Löschen Sie in der Entwurfsansicht die Textfelder aus der Liste.

Erstellen des Layouts für die Auftragskopfzeile

Sie erstellen das Layout der Auftragskopfzeile in zwei separaten Rechteckcontainern, kombinieren sie, und fügen der Liste dann das äußere Rechteck hinzu.

  1. Ein übergeordneter Rechteckcontainer für das Logo, die Bestellnummer und das OrderHeaderData-Rechteck.

  2. Ein Rechteckcontainer mit dem Namen OrderHeaderData für die Datenfelder in der Auftragskopfzeile. Stellen Sie sich beim Erstellen dieses Layouts die Informationen in den folgenden drei horizontalen Abschnitten vor:

    1. Rechnungs- und Versandinformationen

    2. Geschäftskontaktinformationen

    3. Verbleibende Informationen: Datum, Vertriebsmitarbeiter, Bestellnummer und Lieferungsmethode

So erstellen Sie die Auftragskopfzeile in einem Rechteckcontainer

  1. Fügen Sie außerhalb der Liste ein Rechteck ein.

  2. Verschieben Sie das Logo vom Seitenkopf in das Rechteck.

  3. Fügen Sie ein Textfeld mit dem folgenden Text hinzu:

    1. Auftrag

    2. Auftragsnr.: [SalesOrderNumber]

  4. Ziehen Sie das Logo auf die linke Seite des Containers und das Textfeld auf die rechte Seite. Formatieren Sie nach Bedarf.

So fügen Sie ein Rechteck für die Datenfelder in der Auftragskopfzeile hinzu

  1. Fügen Sie außerhalb der Liste ein Rechteck ein, und ändern Sie den Namen in OrderHeaderData.

  2. Erweitern Sie das Rechteck über die Seite, um Platz für die ganzen Auftragskopfzeileninformationen zu schaffen.

Fügen Sie diesem Rechteck jeden in den nächsten Schritten beschriebenen horizontalen Informationsabschnitt hinzu.

So erstellen Sie den Abschnitt für Rechnungs- und Versandinformationen

  1. Fügen Sie ein Textfeld hinzu. Geben Sie im Bearbeitungsmodus Bill to: ein.

  2. Fügen Sie ein Textfeld hinzu, das die folgenden Textzeilen enthält:

    1. [Name]

    2. [BillAddress1]

    3. [BillCity], [BillStateProvince] [BillPostalCode]

    4. [BillCountryRegion]

  3. Fügen Sie ein Textfeld hinzu. Geben Sie im Bearbeitungsmodus Ship to: ein.

  4. Fügen Sie ein Textfeld hinzu, das die folgenden Textzeilen enthält:

    1. [Name]

    2. [ShipAddress1]

    3. [ShipCity], [ShipStateProvince] [ShipPostalCode]

    4. [ShipCountryRegion]

  5. Richten Sie den oberen Bereich dieser Textfelder aus.

So erstellen Sie den Abschnitt für Geschäftskontaktinformationen

  1. Fügen Sie ein Textfeld hinzu. Geben Sie im Bearbeitungsmodus Contact: ein.

  2. Fügen Sie einen Unterbericht ein, und gehen Sie wie folgt vor:

    1. Wählen Sie auf der Seite Allgemein den Unterbericht Store_Contacts_2008R2 aus.

    2. Fügen Sie auf der Seite Parameter einen Parameter hinzu.

    3. Legen Sie Name auf StoreID und Value auf [BusinessEntityID] fest.

  3. Richten Sie den oberen Bereich des Textfelds und des Unterberichts aus.

So erstellen Sie den Abschnitt für die verbleibenden Informationen

  1. Fügen Sie ein Textfeld hinzu, das die folgenden Textzeilen enthält:

    1. Date

    2. Platzhaltertext. Legen Sie die Bezeichnung auf ProcessedDate und den Wert auf [&ExecutionTime] fest.

  2. Fügen Sie ein Textfeld hinzu, das die folgenden Textzeilen enthält:

    1. Auftragsdatum

    2. [OrderDate]

  3. Fügen Sie ein Textfeld hinzu, das die folgenden Textzeilen enthält:

    1. Sales Person

    2. [SalesPerson], [JobTitle]

    3. [PhoneNumber]

  4. Fügen Sie ein Textfeld hinzu, das die folgenden Textzeilen enthält:

    1. Purchase Order

    2. [PurchaseOrderNumber]

  5. Fügen Sie ein Textfeld hinzu, das die folgenden Textzeilen enthält:

    1. Shipment Method

    2. [ShipMethod]

  6. Richten Sie den oberen Bereich dieser Textfelder aus, und stellen Sie die Breite nach Bedarf ein.

So kombinieren Sie Auftragskopfzeileninformationen und verschieben sie in die Liste

  1. Ziehen Sie das OrderHeaderData-Rechteck unter das Logo.

  2. Ziehen Sie das Rechteck mit der Auftragskopfzeile in die Liste.

  3. Das Rechteck mit dem Logo wird erweitert und schließt nun das Auftragsdaten ein.

    Die Listenzelle wird erweitert und schließt nun die Auftragskopfzeileninformationen ein.

Erstellen des Layouts für Auftragsdetails

Zeigen Sie die Zeilenelemente, einschließlich einer Zeilenelementnummer, für jeden Verkaufsauftrag an.

So fügen Sie eine Tabelle hinzu, um die Zeilenelemente anzuzeigen

  1. Ziehen Sie das Zeilenhandle in der Liste, und erweitern Sie die Zeilenhöhe.

  2. Fügen Sie unter der Auftragskopfzeile in dem erstellten Raum eine Tabelle ein.

  3. Ziehen Sie in der Tabelle die folgenden Daten aus dem SalesOrder-Dataset in die Detailzeile:

    1. [OrderQty]

    2. [ProductNumber]

    3. [ProductName]

    4. [CarrierTrackingNumber]

    5. [UnitPrice]

    6. Fügen Sie Platzhaltertext hinzu. Legen Sie die Bezeichnung auf [Subtotal] fest, und geben Sie für den Wert den folgenden Ausdruck ein: =Fields!OrderQty.Value * Fields!UnitPrice.Value

    7. Fügen Sie Platzhaltertext hinzu. Legen Sie die Bezeichnung auf [Discount] fest, und geben Sie für den Wert den folgenden Ausdruck ein: =0 - Fields!UnitPrice.Value * Fields!OrderQty.Value * Fields!UnitPriceDiscount.Value

    8. [LineTotal]

      HinweisHinweis

      Beachten Sie, dass dieses Textfeld den Namen ItemTotal erhält. Sie verwenden diesen Textfeldnamen später beim Erstellen eines Ausdrucks zum Berechnen des Gesamtbetrags für alle Elemente auf der Seite.

  4. Fügen Sie am Anfang der Tabelle eine Spalte ein.

  5. Geben Sie in der Spaltenüberschrift Line ein.

  6. Geben Sie im Textfeld der Zeile =RowNum("OrderDetail") ein.

  7. Formatieren Sie nach Bedarf.

So fügen Sie eine Summenzeile hinzu

  1. Klicken Sie mit der rechten Maustaste auf die Zelle mit [Qty] und anschließend auf Gesamtergebnis hinzufügen.

  2. Geben Sie im Textfeld in der letzten Zeile in der vierten Spalte Total Discount: ein.

  3. Fügen Sie im nebenstehenden Textfeld Platzhaltertext hinzu.

  4. Legen Sie die Bezeichnung auf Total Discount und den Wert auf =Sum(Fields!UnitPrice.Value * Fields!OrderQty.Value * Fields!UnitPriceDiscount.Value) fest.

  5. Geben Sie im Textfeld in der letzten Zeile in der achten Spalte Total: ein.

  6. Fügen Sie im nebenstehenden Textfeld Platzhaltertext hinzu.

  7. Legen Sie die Bezeichnung auf Gesamtsumme und den Wert auf [Sum(LineTotal)] fest.

  8. Formatieren Sie nach Bedarf.

  9. Entfernen Sie allen zusätzlichen Leerraum zwischen Textfeldern, Tabellen und Rechtecken.

Definieren eines Seitenumbruchs nach 25 Zeilen in der Sales Order Detail-Tabelle

So legen Sie einen Seitenumbruch nach 25 Zeilen für die Detailgruppe fest

  1. Klicken Sie im Gruppierungsbereich mit der rechten Maustaste auf die Gruppe OrderDetails_Details_Group, zeigen Sie auf Gruppe hinzufügen, und klicken Sie dann auf Übergeordnete Gruppe.

  2. Fügen Sie eine Gruppe hinzu, und verwenden Sie den folgenden Ausdruck: =Ceiling(RowNumber("OrderDetail")/25)

  3. Wählen Sie auf der Seite Seitenumbrüche die Option Zwischen den einzelnen Instanzen einer Gruppe aus.

Definieren einer Berichtsvariablen für RunningTotals

So fügen Sie eine Berichtsvariable hinzu

  1. Klicken Sie mit der rechten Maustaste auf den Berichtshintergrund, und öffnen Sie Berichtseigenschaften.

  2. Fügen Sie auf der Seite Variablen eine Berichtsvariable mit dem Namen RunningTotal hinzu.

  3. Legen Sie den Wert auf =0.0 fest.

Definieren von benutzerdefiniertem Code, um laufende Summen zu berechnen

So fügen Sie benutzerdefinierten Code hinzu

  1. Klicken Sie mit der rechten Maustaste auf den Berichtshintergrund, und öffnen Sie Berichtseigenschaften.

  2. Fügen Sie auf der Seite Code den folgenden Code hinzu:

    Public Function AddToVariable(var As Microsoft.ReportingServices.ReportProcessing.OnDemandReportObjectModel.Variable, ByVal increment As Double) As Double 
       var.Value = var.Value + increment
       return var.Value
    End Function 
    
    Public Function GetOrResetVariable(var As Microsoft.ReportingServices.ReportProcessing.OnDemandReportObjectModel.Variable, ByVal executeReset As Boolean) 
       if executeReset then
           var.Value = 0
       end if 
       return var.Value
    End Function
    

Hinzufügen der Beschreibung

So fügen Sie die Beschreibung hinzu

  1. Fügen Sie ein Rechteck im Seitenfuß ein.

  2. Verschieben Sie das Textfeld für die Beschreibung in das Rechteck.

  3. Ersetzen Sie die Beschreibung durch den folgenden Text:

    Zweck: Detailbericht. Zeigt Details für einen Bereich von Bestellungen an und ist ein Drillthroughbericht für einen einzelnen Auftrag aus Employee_Sales_Summary_2008R2. Umfasst Freiformlayout, als Liste und Tabelle verwendete Tablix, einen Unterbericht, Sitzungsvariablen zum Berechnen von laufenden Seitensummen, benutzerdefinierten Code, ein Bild, ausdrucksbasierte Seitenumbrüche basierend auf der Anzahl der Detailzeilen, Seitennamen, Seitennummerierung für Bericht und innerhalb der Gruppe sowie bedingt ausgeblendeten Text.

  4. Klicken Sie auf den Berichtshintergrund, um im Eigenschaftenbereich Berichtseigenschaften anzuzeigen.

  5. Fügen Sie in Beschreibung den Beschreibungstext ein.

Anzeigen von laufenden Seitensummen im Seitenfuß

So fügen Sie laufende Seitensummen hinzu

  1. Fügen Sie ein Textfeld für den folgenden Text hinzu: Previous Page Total

  2. Fügen Sie ein nebenstehendes Textfeld mit dem folgenden Ausdruck hinzu:

    =Code.GetOrResetVariable(Variables!RunningTotal, Globals!OverallPageNumber = 1)

  3. Fügen Sie ein Textfeld für den folgenden Text hinzu: Current Page Total

  4. Fügen Sie ein nebenstehendes Textfeld mit dem folgenden Ausdruck hinzu:

    =Sum(ReportItems!ItemTotal.Value)

  5. Fügen Sie ein Textfeld mit dem folgenden Text hinzu: Running Page Total

  6. Fügen Sie ein nebenstehendes Textfeld mit dem folgenden Ausdruck hinzu:

  7. =Code.AddToVariable(Variables!RunningTotal, Sum(Reportitems!ItemTotal.Value))

Hinzufügen eines Spacer-Textfelds

Beschreibender Text ist bedingt sichtbar. Bei ausgeblendeter Beschreibung wird der Text der Seitengesamtsumme links auf der Seite gerendert. Um die Position des Texts auf der rechten Seite beizubehalten, müssen Sie ein Textfeld hinzufügen, das nicht bedingt sichtbar ist.

So fügen Sie ein Spacer-Textfeld hinzu

  1. Fügen Sie im Rechteck über der Beschreibung ein zusätzliches Textfeld hinzu.

  2. Legen Sie die Textfeldbreite auf die gleiche Breite wie das Rechteck fest.

Das leere Textfeld behält die laufenden Summen in Position, wenn die Beschreibung nicht sichtbar ist.

Vorschau und Überprüfen

So können Sie den Bericht bereitstellen und überprüfen

  • Zeigen Sie den Bericht in der Vorschau an, und überprüfen Sie Folgendes:

    1. Die Geschäftskopfzeile und Detailbereiche werden wie erwartet gerendert.

    2. Der Unterbericht zeigt Geschäftskontaktinformationen an.

    3. Seitensummen werden für die aktuelle Seite und die vorhergehende Seite berechnet.

    4. Seitengesamtsummen werden unabhängig davon, ob Beschreibungstext sichtbar ist, an derselben Position gerendert.

Nächste Schritte

Sie haben nun die Berichterstellung abgeschlossen. Wenn Sie andere AdventureWorks-Beispielberichte erstellen möchten, finden Sie weitere Informationen unter Lernprogramme: Erstellen von AdventureWorks 2008R2-Beispielberichten (SSRS).

Siehe auch

Andere Ressourcen

Änderungsverlauf

Aktualisierter Inhalt

  • Bericht wurde geändert, um auf AdventureWorks2008R2_Base.rdl zu basieren