Fragensteller
Zus. Zeile mit einer Row aus der Group

Frage
-
Hallo,
ich möchte bei einem Bericht pro Seite die TagesUmsätze von Artikeln einer WarenGruppe darstellen und unterhalb der Tagessumme auch noch den aktuellen Tag des Monats. D.h ich habe eine Seite für jeden Artikel innerhalb der WarenGruppe und auf dieser Seite immer eine Zeile für jeden Tag des aktuellen Monats und dann noch eine Summenzeile für den Artikel innerhalb des laufenden Monats.
Soweit kein Problem: DataSet -> GruppeTageJeArtikel (für die MonatsSumme je Artikel) -> GruppeArtikel (Seitenwechsel nach jedem Artikel und ggf. noch eine Summe über alle Artikel). Das Ganze in einem Tablix. Sogar mit RunningValue für den kumulierten Umsatz vom Monatsanfang bis zum entsprechenden Tag. Supereinfach!Das eigentliche Problem ist, wie bekomme ich die Zeile für den aktuellen Tag nochmal als eigene Zeile unterhalb der Monatssumme eines Artikels auf jeder Seite? - Es mag sinnlos erscheinen, dieselbe Zeile auf einer Seite zwei Mal darzustellen, ein paar Details habe ich auch ausgespart, aber im Endeffekt ist das die Problemstellung.
Mir will da nicht so recht was dazu einfallen.
Kann ich einfach eine Zeile aus dem Scope "GruppeTageJeArtikel" eine beliebige Zeile anhand der RowNumber rausgreifen oder sowas in der Art?Wäre super, wenn da jemand einen Tipp für mich hätte!
Danke,
Alex- Bearbeitet webjagger Mittwoch, 20. Juni 2012 14:58
Alle Antworten
-
Hallo Alex,
ich hab's gerade nicht auf dem Screen, verwendest Du SSRS2008R2 + RB 3 oder SSRS2008 + RB 2?
Bei RB 3 ist es auch einfach, da kannst Du die Lookup Funktion verwenden. Als ersten Parameter gibst Du den Suchwert an, also das aktuelle Datum. Direkt Now() kannst Du nicht verwenden, da ist auch die aktuelle Uhrzeit enthalten und dann würde kein Wert gefunden werden. Also über DateSerial in einen blanken Datumswert ohne Uhrzeit wandel. Dann kommt das Feld, über das gesucht wird (das Datumsfeld), dann das Feld, dessen Wert Du haben möchtest; zum Schluß noch der Name des DataSets und fertig:
=Lookup(DateSerial(Year(Now()), Month(Now()), Day(Now())), Fields!Datum.Value, Fields!Wert.Value, "DataSet1")
Was in beiden Versionen geht ist folgendes: Du kopierst die Tabelle, entfernst Header + Gruppierung und platzierst sie direkt unter der eigentlichen Tabelle. Dann ruf die Eigenschaft des Tablix auf => Tab "Filterung" und dort fügst Du einen Filter auf die Datumsspalte hinzu. Als "Wert" für den Filter gibst Du eine Expression fürs aktuelle Datum an mit:
=DateSerial(Year(Now()), Month(Now()), Day(Now()))
So hast Du am Ende eine weitere Tabelle mit nur einem Wert, den für den aktuellen Tag.
Olaf Helper
* cogito ergo sum * errare humanum est * quote erat demonstrandum *
Wenn ich denke, ist das ein Fehler und das beweise ich täglich
Blog Xing- Als Antwort vorgeschlagen Christoph MuthmannEditor Montag, 25. Juni 2012 06:16
- Bearbeitet Olaf HelperMVP Montag, 25. Juni 2012 07:02 Html Tags entfernt
-
Hallo Olaf,
Danke mal wieder für deine Antwort.
Ich denke, es ist RB3.
Die Lookup Funktion habe ich mir auch schon angeschaut. Damit habe ich aber das Problem, dass ich mir nicht die Werte (fortlaufende Kumulation pro Tag) ermitteln kann, für die ich die RunningValue Funktion benötige, da man m.W. diese beiden Funktionen nicht kombinieren kann.
Vielleicht wird es anhand der folgenden Abbildung klarer, wie so eine Reportseite aussehen soll (wenn das angenommene TagesDatum der 25.05.2012 wäre):Spalte B enthält den TagesUmsatz, also einen Wert direkt aus dem DataSet, und Spalte C kumuliert die Werte aus Spalte B über die RunningValue Funktion.
Innerhalb des DataSet gibt es die Gruppen GrpFiliale und GrpWarenGruppe.
Filter auf das DataSet und Ergebnis in zweiter Tabelle anzeigen geht also auch nicht, da ich im DataSet ja nicht nur eine Filiale mit einer WarenGruppe habe.
Bei der 2-Tabellen-Variante kämen ja zunächst für jede WarenGruppe innerhalb einer Filiale die Zeilen 1-34 und dann am Ende des Reports für alle WarenGruppen innerhalb einer Filiale die Zeilen 36-37. Ich brauch jedoch die Zeilen 1-37 für eine WarenGruppe einer Filiale auf einer Seite und dann dasselbe für die nächste WarenGruppe auf der nächsten Seite usw..
Ich dachte, ich kann das nur mit einer Tabelle realisieren und einfach pro WarenGruppe zus. Summenzeilen einbauen, in denen ich dann die entsprechenden Werte reinfummel. Bei der Lookup kann der Scope wohl nur auf das DataSet gesetzt werden, die Gruppen kann ich dort nicht als Scope verwenden - was bei der RunningValue allerdings geht. Die Lookup zu verwenden, um grundsätzlich ein FilterKriterium zu haben, ist aber vielleicht kein schlechter Ansatz, z.B. um die Zeile innerhalb der Gruppe zu ermitteln, vielleicht den Tag als Zeilennummer oder so etwas in der Art.
Aber ich weiß nicht, wie ich damit weitermachen kann. Kann ich anhand des TagesDatums vielleicht sagen, dass ich die 25. "Zeile" im aktuellen Scope "GrpAbteilung" haben möchte?