Mittwoch, 29. Oktober 2014
20:14 Uhr
20:14 Uhr
Berichtslayout beim Report Writer - Nullwerte als Platzhalter ausgeben, wenn keine Buchung (Daten) vorhanden sind dank Formulardruck
Ausgangslage:
Innerhalb eines Berichtes in der Kostenstellenrechnung der Bericht unter
Diese Option ist entweder im Bericht über EINSTELLUNGEN-> BERICHTSLAYOUT oder innerhalb der Berichtserstellung unter FORMATIERUNGEN-> BERICHTSLAYOUT im Register ZEILEN zu finden.
Durch die Option des Formulardrucks werden nicht nur die in der Selektion gewählten Sets (im Beispiel sind dieses Kostenstellen- und Kostenartengruppen) nach vorhandenen Daten (also nur Kostenstellen/Kostenarten auf denen auch gebucht wurde) durchsucht sondern für nicht vorhandene Werte innerhalb der einzelnen Gruppen ein interner Datensatz mit Nullwerten angelegt. Hierdurch erhöht sich die Laufzeit des Berichtes entsprechend und es werden für alle selektierte Daten mindestens ein Nullwert ausgegeben.
Hierdurch hat der Bericht auch bei jedem Aufruf das gleiche Layout braucht dafür aber auch etwas mehr Zeit . Hier zeigt es sich wieder einmal "Gut Ding will Weile haben" gilt auch für die Anforderungen ans Berichtswesen im Controlling....
Da die Aktivierung des Formulardrucks erst nach erneuter Generierung des Berichtes funktioniert, ist dieses in den Standardberichten nicht möglich.
Wie im Artikel "Parametertransaktion für Reporwriter" beschrieben kann dann für diesen Bericht eine kundeneigene Transaktion zum Beispiel als. Z_ALR_87013612 angelegt werden. Hierbei könnte die Berichtsgruppe 1SKL als ZSKL angelegt werden und ebenso verwendet werden.
Soll also die Lehreinheit 101 mit den Kostenstellen 101000 bis 101004 ausgewertet werden muss eine entsprechende Kostenstellengruppe 101 angelegt werden. Ferner dürfen in dieser Kostenstellengruppe keine Intervalle sondern lediglich Einzelwerte eingetragen sein, da jede Zeile eines Sets auch entsprechend ausgewertet wird. Alternativ könnte man auch die Kostenstellen 101000 bis 101004 als Einzelwerte in der Selektion übernehmen.
Sofern die Kostenstellengruppe 101 die Kostenstellen 101000, 101001 sowie das Kostenstellenintervall 101002 - 101004 enthält aber nur auf den Kostenstellen 101000 und 101002 und 101004 Buchungen würde die Auswertung wie in den folgenden Tabellen dargestellt werden:
Hier werden tatsächlich auch Kostenstellen (im Beispiel 101001) ausgegeben, obgleich hier keine Buchung erfolgt ist. Intervalle werden nicht aufgelöst
Hier werden nur Kostenstellen ausgegeben auf denen auch tatsächlich gebucht wurde. Intervalle in der Gruppe werden auf ihre Einzelwerte aufgelöst.
Hinweis: Aktuelle Buchempfehlungen besonders SAP Fachbücher sind unter Buchempfehlungen inklusive ausführlicher Rezenssionenzu finden. Mein Weiterbildungsangebot zu SAP Themen finden Sie auf unkelbach.expert.
Innerhalb eines Berichtes in der Kostenstellenrechnung der Bericht unter
- Kostenstellenrechnung
- Infosystem
- Berichte zur Kostenstellenrechnung
- Plan/Ist Vergleich
- Bereich: Kostenstellen (Transaktion S_ALR_87013612)
Nullzeilenbehandlung
Ein Beitrag auf dv-treff-community.de verwies dafür auf die Möglichkeit der Nullzeilenbehandlung, die im Berichtslayout vorhanden ist. Hierzu kann neben der im Artikel "Mehrjahresvergleich im ReportWriter/Painter mit variabler Spaltenanzahl je Jahr dank Variablen" beschriebenen Möglichkeit der Nullzeilen unterdrücken (im verlinkten Artikel für Nullspalten unterdrücken verwendet) auch die Option Formulardruck verwendet werden.Diese Option ist entweder im Bericht über EINSTELLUNGEN-> BERICHTSLAYOUT oder innerhalb der Berichtserstellung unter FORMATIERUNGEN-> BERICHTSLAYOUT im Register ZEILEN zu finden.
Durch die Option des Formulardrucks werden nicht nur die in der Selektion gewählten Sets (im Beispiel sind dieses Kostenstellen- und Kostenartengruppen) nach vorhandenen Daten (also nur Kostenstellen/Kostenarten auf denen auch gebucht wurde) durchsucht sondern für nicht vorhandene Werte innerhalb der einzelnen Gruppen ein interner Datensatz mit Nullwerten angelegt. Hierdurch erhöht sich die Laufzeit des Berichtes entsprechend und es werden für alle selektierte Daten mindestens ein Nullwert ausgegeben.
Hierdurch hat der Bericht auch bei jedem Aufruf das gleiche Layout braucht dafür aber auch etwas mehr Zeit . Hier zeigt es sich wieder einmal "Gut Ding will Weile haben" gilt auch für die Anforderungen ans Berichtswesen im Controlling....
Da die Aktivierung des Formulardrucks erst nach erneuter Generierung des Berichtes funktioniert, ist dieses in den Standardberichten nicht möglich.
Report Writer Bericht über Transaktion ermitteln
Allerdings kann der zugrundeliegende Report Painter Bericht (im Beispiel der Bericht 1SKL-001 in der Bibliothek 1VK) als Vorlage für einen eigenen Bericht über die GRR1 angelegt werden. Nun ist es auch in diesem Bericht möglich den Formulardruck zu aktivieren. Der zugrundeliegende Bericht kann bspw. durch die Transaktion SE93 anhand der ursprünglichen Transaktion ermittelt werden. In der Transaktion wird die zugeordnete Berichtsgruppe aufgerufen. Alternativ können auch die mit einer Zahl beginnende Berichte innerhalb der passenden Berichtsbibliothek über die Transaktion GRR3 betrachtet werden.Wie im Artikel "Parametertransaktion für Reporwriter" beschrieben kann dann für diesen Bericht eine kundeneigene Transaktion zum Beispiel als. Z_ALR_87013612 angelegt werden. Hierbei könnte die Berichtsgruppe 1SKL als ZSKL angelegt werden und ebenso verwendet werden.
Nachteil Formulardruck: Intervalle werden nicht aufgelöst
Der Nachteil der Verwendung des Formulardrucks ist jedoch, dass eine entsprechende Erstellung von internen Nullwerten nur innerhalb eines Sets (Gruppe) funktioniert. Sobald statt eines Sets (zum Beispiel Kostenstellengruppe) ein Intervall übergeben wird erscheint das Intervall als einzelne Zeile stat die einzelnen Kontierungsobjekte untereinnader darzustellen.Soll also die Lehreinheit 101 mit den Kostenstellen 101000 bis 101004 ausgewertet werden muss eine entsprechende Kostenstellengruppe 101 angelegt werden. Ferner dürfen in dieser Kostenstellengruppe keine Intervalle sondern lediglich Einzelwerte eingetragen sein, da jede Zeile eines Sets auch entsprechend ausgewertet wird. Alternativ könnte man auch die Kostenstellen 101000 bis 101004 als Einzelwerte in der Selektion übernehmen.
Sofern die Kostenstellengruppe 101 die Kostenstellen 101000, 101001 sowie das Kostenstellenintervall 101002 - 101004 enthält aber nur auf den Kostenstellen 101000 und 101002 und 101004 Buchungen würde die Auswertung wie in den folgenden Tabellen dargestellt werden:
Kostenstelle | Saldo |
---|---|
101000 | 1.000,00 |
101001 | 0 |
101002 ... 101004 | 2.0000 |
Summe | 3.0000 |
Hier werden tatsächlich auch Kostenstellen (im Beispiel 101001) ausgegeben, obgleich hier keine Buchung erfolgt ist. Intervalle werden nicht aufgelöst
Kostenstelle | Saldo |
---|---|
101000 | 1.000,00 |
101002 | 1.500,00 |
101004 | 500,00 |
Summe | 3.0000 |
Hier werden nur Kostenstellen ausgegeben auf denen auch tatsächlich gebucht wurde. Intervalle in der Gruppe werden auf ihre Einzelwerte aufgelöst.
Fazit:
Zwar ist die Umsetzung der Berichtsanforderung durchaus möglich, allerdings sollte sich die Nachteile (längere Laufzeit, keine Auflösung von Intervallen) im Vorfeld klar gemacht werden, da andernfalls der Bericht mehr Rückfragen als Antworten liefert.Hinweis:
Eine kurze Einführung in das Thema Report Painter und Report Writer habe ich im Artikel "Grundlagen Kurzeinführung und Handbuch Report Painter Report Writer" beschrieben und hoffe Ihnen hier eine Einführung ins Thema bieten zu können.
ein Angebot von Espresso Tutorials
unkelbach.link/et.books/
unkelbach.link/et.reportpainter/
unkelbach.link/et.migrationscockpit/
Diesen Artikel zitieren:
Unkelbach, Andreas: »Berichtslayout beim Report Writer - Nullwerte als Platzhalter ausgeben, wenn keine Buchung (Daten) vorhanden sind dank Formulardruck« in Andreas Unkelbach Blog (ISSN: 2701-6242) vom 29.10.2014, Online-Publikation: https://www.andreas-unkelbach.de/blog/?go=show&id=566 (Abgerufen am 23.11.2024)
Keine Kommentare - Permalink - SAP
Artikel datenschutzfreundlich teilen
🌎 Facebook 🌎 Twitter 🌎 LinkedIn