it-swarm.com.de

Reporting Services-Export nach Excel mit mehreren Arbeitsblättern

Ich baue gerade einen MS Reporting Services-Bericht, der in Excel gerendert wird. Ich versuche herauszufinden, wie der Bericht so eingerichtet wird, dass er mehrere Arbeitsblätter (Tabs) der Daten im Bericht erstellt. Ich verstehe, dass Sie durch die Eingabe eines Seitenumbruchs in den Bericht ein neues Arbeitsblatt erhalten. Es gibt jedoch eine Möglichkeit, jeden Tab zu benennen, statt dessen standardmäßig (Arbeitsblatt 1, Arbeitsblatt 2) usw.

Weiß jemand wie das gemacht wird?

Danke im Voraus!

48
DotNetJayHawk

Wie @huttelihut darauf hingewiesen hat, ist dies nun ab SQL Server 2008 R2 möglich. - Weitere Informationen hier

Vor 2008 R2 scheint es nicht möglich, aber für MSDN Social gibt es einige empfohlene Problemumgehungen. 

11
cgreeno

Für den ursprünglichen Fragesteller der Frage zu spät, aber mit SQL Server 2008 R2 ist dies jetzt möglich:

Legen Sie die Eigenschaft "Seitenwechsel" auf dem Tablix oder der Tabelle oder einem anderen Element fest, um eine neue Registerkarte zu erzwingen, und legen Sie dann die Eigenschaft "Seitenname" sowohl für das Element vor dem Seitenwechsel als auch für das Element nach dem Seitenwechsel fest. Diese Namen werden auf den Registerkarten angezeigt, wenn der Bericht nach Excel exportiert wird.

Lesen Sie dazu hier: http://technet.Microsoft.com/en-us/library/dd255278.aspx

54
T.J.Kjaer

Hier finden Sie Screenshots für SQL Server 2008 R2 mit SSRS Report Designer in Visual Studio 2010. 

Ich habe Screenshots gemacht, da einige der Dialoge nicht leicht zu finden sind.

1: Gruppe hinzufügen

SsrsAddGroup

2: Geben Sie das Feld an, das Sie gruppieren möchten.

SsrsAddGroupDialog

3: Klicke jetzt auf die Gruppe im Selector 'Row Groups', direkt unter dem Report Designer  

SsrsRowGroupsSelector

4: F4 zur Auswahl des Eigenschaftsbereichs; Erweitern Sie 'Group' und legen Sie Group> PageBreak> BreakLocation = 'Between' fest. Geben Sie dann den gewünschten Ausdruck für Group> PageName ein.

SsrsGroupProperty

5: Hier ist ein Beispielausdruck

SsrsGroupPropertyDialog

Hier ist das Ergebnis des Berichts, der nach Excel exportiert wurde, wobei die Registerkarten entsprechend dem Seitennamenausdruck benannt wurden

SsrsExcelTabs

38
Edward

Die Lösung von Edward arbeitete für mich.

Wenn Sie den gesamten Tablix auf einem Blatt mit einem konstanten Namen haben möchten, geben Sie den Seitennamen in den Eigenschaften des Tablix an. Wenn Sie den Seitennamen in den Eigenschaften des Tablix festlegen, können Sie keine Daten aus dem Tablix-Dataset in Ihrem Ausdruck verwenden.

Wenn Sie möchten, dass Zeilen aus dem Tablix in Arbeitsblättern gruppiert werden (oder Sie möchten ein Arbeitsblatt mit einem Namen, der auf den Daten basiert), geben Sie den Seitennamen im Gruppenkopf an.

5
AverageJon

Ich habe 2005 einen einfachen Weg gefunden, um das zu umgehen. Hier sind meine Schritte:

  1. Erstellen Sie einen String-Parameter mit den Werten "Y" und "N", genannt "PageBreaks".
  2. Fügen Sie eine Gruppenebene über der Gruppe (Wert) hinzu, mit der die Daten in Excel auf mehrere Arbeitsblätter aufgeteilt wurden.
  3. In das erste Textfeld dieser Gruppe wird der Ausdruck für die "Seitenumbrüche" als solcher eingefügt. =IIF(Parameters!PageBreaks.Value="Y",Fields!DISP_PROJECT.Value,"") Hinweis: Wenn der Parameter "Y" ist, erhalten Sie die mehreren Blätter für jeden unterschiedlichen Wert. Andernfalls ist das Feld für jeden Gruppendatensatz NULL (was am Ende nur einen Seitenumbruch verursacht).
  4. Ändern Sie den verborgenen Sichtbarkeitswert der neuen Gruppierungszeile in "Wahr".
  5. HINWEIS: Wenn Sie dies tun, wird auch bestimmt, ob Sie einen Seitenumbruch in der Ansicht haben oder nicht, aber meine Benutzer lieben es, da sie das Steuerelement haben.
2
koder

Setzen Sie den Tabellennamen in den Seitenkopf oder die Gruppe TableRow1 in Ihrem Bericht, damit er in jeder Excel-Tabelle an der Position "A1" angezeigt wird. Führen Sie dann diesen Makro in Ihrer Excel-Arbeitsmappe aus.

Sub SelectSheet()
        For i = 1 To ThisWorkbook.Sheets.Count
        mysheet = "Sheet" & i
        On Error GoTo 10
        Sheets(mysheet).Select
        Set Target = Range("A1")
        If Target = "" Then Exit Sub
        On Error GoTo Badname
        ActiveSheet.Name = Left(Target, 31)
        GoTo 10
Badname:
        MsgBox "Please revise the entry in A1." & Chr(13) _
        & "It appears to contain one or more " & Chr(13) _
        & "illegal characters." & Chr(13)
        Range("A1").Activate
10
        Next i
End Sub
1
James Kuchynski

Drücken Sie in der Gruppe die Taste F4 und suchen Sie nach dem Seitennamen. In den Eigenschaften und dem Namen Ihrer Seite sollte dies Ihr Problem lösen

0
Gurru

Gruppieren Sie Ihre Berichtsdaten basierend auf der Kategorie, auf der Ihre Tabellenblätter basieren sollen. Geben Sie an, dass diese Gruppierung für jede neue Kategorie eine neue Seite beginnen soll. Jede Seite wird zu einem neuen Arbeitsblatt in der Excel-Arbeitsmappe.

Hinweis: Ich verwende SQL Server 2003 und Excel 2003.

0
Jean