ALV: subtotals manipulieren

Die Objektorientierung mit ABAP®: Vererbung, Dynamische Programmierung, GUI Controls (u.a. ALV im OO).
14 Beiträge • Seite 1 von 1
14 Beiträge Seite 1 von 1

ALV: subtotals manipulieren

Beitrag von doeme (ForumUser / 18 / 0 / 0 ) »
Hallo!

ich arbeite mit der KLasse cl_gui_alv_grid und möchte mir in dem ALV daten anzeigen lassen. bevor ich meinen table an den ALV schicke, erweitere ich diesen um 3 Felder zum Berechnen von Daten, die ich dann aggregieren möchte (Mittelwert).

d.h. mein Status ist zurzeit so
rechenfeld1 - rechenfeld2 - rechenfeld3
wert1.1 - wert2.1 - wert3.1
wert1.2 - wert2.2 - wert3.2
mittelwert1 - mittelwert2 - mittelwert3

über den feldkatalog kann ich ja mittels DO_SUM = 'C', den mittelwert berechnen - dummerweise handelt es sich bei mittelwert3 um eine neue berechnung, nämlich mittelwert1 * mittelwert2.
kann ich dieses feld manuell übersteuern?
frage so nebenbei: kann ich die ausgabe prozentuell irgendwie darstellen, also statt 0,54 --> 54%

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: ALV: subtotals manipulieren

Beitrag von Unit605 (Expert / 975 / 37 / 93 ) »
Was ist die Frage genau?

Mittlerweile wurde das Eingangsposting geaendert.

Re: ALV: subtotals manipulieren

Beitrag von bliss (ForumUser / 66 / 2 / 6 ) »
Ich stand mal vor einem ähnlichen Problem (Summen statt Mittelwerte) und habe es so gelöst, dass ich erst alles in der internen Tabelle berechnet habe, bevor es an die ALV-Ausgabe ging. (Ich weiß, kein wirklich helfender Tipp)

Wo hast du DO_SUM = 'C' her? Wenn tatsächlich der Mittelwert berechnet wird, ist ja gut, aber warum sehe ich hier keine Dokumentation dazu? SAP-Bibliothek - ALV Grid Control (BC-SRV-ALV)

Zur %-Darstellung fällt mir spontan ein, dass man den Wert ausliest, mit 100 multipliziert und mit einem %-Zeichen in einem char-Feld ausgibt. Es gibt aber sicher eine eingebaute Möglichkeit.

Wenn keine professionelle (bessere) Hilfe kommt, werde ich morgen mal meinen Code hier posten.
Gruß
bliss
.|.. .. ...| . .|.. ||| |. ||. .| |. |.. .||. .|. ||| ... .||. . .|.

Ich bin Anfänger und meine Tipps sind mit Vorsicht zu genießen.

Re: ALV: subtotals manipulieren

Beitrag von a-dead-trousers (Top Expert / 4395 / 223 / 1182 ) »
doeme hat geschrieben:über den feldkatalog kann ich ja mittels DO_SUM = 'C', den mittelwert berechnen - dummerweise handelt es sich bei mittelwert3 um eine neue berechnung, nämlich mittelwert1 * mittelwert2.
kann ich dieses feld manuell übersteuern?
Was soll hier "manuell übersteuert" werden?
doeme hat geschrieben:frage so nebenbei: kann ich die ausgabe prozentuell irgendwie darstellen, also statt 0,54 --> 54%
Schau dir mal die EDIT-Masken im Feldkatalog an. Damit sollte es gehen. Alternativ könntest du wie bliss bereits erwähnt hat, ein CHAR Feld verwenden und selber das % reinschreiben. Dann verlierst du aber die Summen/Mittelwert-Funktionen.
bliss hat geschrieben:Wo hast du DO_SUM = 'C' her?
hmmm... Entweder eine "undokumentierte" Funktion oder ein Schreib-Fehler. Ich hab auf die schnelle den H_FTYPE im Feldkatalog gefunden. Steht aber, dass das für den ALV-Tree wäre.

lg ADT
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: ALV: subtotals manipulieren

Beitrag von doeme (ForumUser / 18 / 0 / 0 ) »
danke mal für die antworten.

- DO_SUM = 'C': ja, das steht komischerweise in keiner doku, das habe ich in einem forum gefunden. funktioniert aber ohne probleme, gibt es auch mit Variante 'A' und 'B' anstatt nur 'X'. Der Feldname DO_SUM ist in diesem Fall total irreführend.
- Prozent Darstellung: wie schon gesagt, hatte ich bereits implementiert, da waren meine "rechenfelder" vom typ string und habe dann einfach ein '%' hinzugefügt, aber wie bereits erwähnt, verlor ich dadurch die aggregat funktion.
in den funktionen des feldkatalogs finde ich nichts mit % darstellung.
- "manuelle Übersteuerung": wie im Eingangsposting erwähnt, die Aggregatfunktion Mittelwert geht über die Spalte. Anbei ein Bild wie es sein sollte:

http://imageshack.us/photo/my-images/28/alvbsp.png

Mittelwert von Spalte 1 ist korrekt, von Spalte 2 ebenfalls, aber Mittelwert von Spalte 3 ist nicht korrekt da er sich aus Mittelwert1 * Mittelwert2 errechnet. d.h. ich möchte gerne diese ausgabe manipulieren.
geht das?

Re: ALV: subtotals manipulieren

Beitrag von Alexander D. (Expert / 682 / 30 / 84 ) »
doeme hat geschrieben: - DO_SUM = 'C': ja, das steht komischerweise in keiner doku, das habe ich in einem forum gefunden.
der Trick wurde hier im Forum auch schon mal erwähnt:
http://www.abapforum.com/forum/viewtopic.php?t=14482
schöne Grüße
Alexander

ECC 6.0 EHP 7

Re: ALV: subtotals manipulieren

Beitrag von doeme (ForumUser / 18 / 0 / 0 ) »
korrekt, war ganz genau dieser eintrag :)

Re: ALV: subtotals manipulieren

Beitrag von doeme (ForumUser / 18 / 0 / 0 ) »
ich hätte ja diesen beitrag gefunden, nur funktioniert der funktionsbaustein überhaupt nicht bei mir. nach dem aufruf ist meine referenz auf den alv initial.

http://zevolving.com/2008/09/classical- ... -subtotal/

Re: ALV: subtotals manipulieren

Beitrag von JHM (Top Expert / 1197 / 1 / 197 ) »
doeme hat geschrieben:nur funktioniert der funktionsbaustein überhaupt nicht bei mir. nach dem aufruf ist meine referenz auf den alv initial.
Wann bzw. Wo rufst du den FuBa auf?
Gruß Hendrik

Re: ALV: subtotals manipulieren

Beitrag von bliss (ForumUser / 66 / 2 / 6 ) »
Oh, ich habe da was durcheinander gebracht. In einem Report habe ich cl_gui_alv_grid benutzt, aber do_sum habe ich in einem anderen Report in Zusammenhang mit REUSE_ALV_LIST_DISPLAY im Feldkatalog verwendet.

Sorry, kann dir doch keinen Code posten :(
Gruß
bliss
.|.. .. ...| . .|.. ||| |. ||. .| |. |.. .||. .|. ||| ... .||. . .|.

Ich bin Anfänger und meine Tipps sind mit Vorsicht zu genießen.

Re: ALV: subtotals manipulieren

Beitrag von doeme (ForumUser / 18 / 0 / 0 ) »
JHM hat geschrieben:
doeme hat geschrieben:nur funktioniert der funktionsbaustein überhaupt nicht bei mir. nach dem aufruf ist meine referenz auf den alv initial.
Wann bzw. Wo rufst du den FuBa auf?
in meinem fall habe ich es direkt nach SET_TABLE_FOR_FIRST_DISPLAY aufgerufen.

Re: ALV: subtotals manipulieren

Beitrag von JHM (Top Expert / 1197 / 1 / 197 ) »
doeme hat geschrieben:in meinem fall habe ich es direkt nach SET_TABLE_FOR_FIRST_DISPLAY aufgerufen.
Stimmt du bist ja mit dem OO-ALV unterwegs, dann brauchst du dir auch nicht den Umweg über den FuBa 'GET_GLOBALS_FROM_SLVC_FULLSCR' nicht, du hast bereits die Referenz auf deinen ALV.

Einfach mit gr_alv->get_subtotals weitermachen (gr_alv ist der selbe wie beim SET_TABLE_FOR..). Einziges Probelm könnte sein, dass der ALV evtl. nach SET_TABLE_FOR.. noch keine Summen gebildet hat, aber das muss man ausprobieren.
Gruß Hendrik

Re: ALV: subtotals manipulieren

Beitrag von doeme (ForumUser / 18 / 0 / 0 ) »
also mit der methode bin ich zwar dem ziel etwas näher gekommen, aber ich bekomme es nicht auf die anzeige.

direkt nach SET_TABLE_FOR_FIRST_DISPLAY rufe ich folgende FORM auf:

Code: Alles auswählen.

form P_CHANGE_SUB .
  DATA: it_01 TYPE REF TO data.
   FIELD-SYMBOLS: <ft_tab> TYPE ANY TABLE,
                 <fs_tab> TYPE ANY,
                 <ff_field> TYPE ANY.
*

  CALL METHOD gr_grid->get_subtotals
    IMPORTING
      ep_collect01 = it_01.

  ASSIGN it_01->* TO <ft_tab>.
*
  LOOP AT <ft_tab> ASSIGNING <fs_tab>.
    ASSIGN COMPONENT 'PROD' OF STRUCTURE <fs_tab> TO <ff_field>.
    <ff_field> = '100'. "overwriting for test
    ASSIGN COMPONENT 'LEIST' OF STRUCTURE <fs_tab> TO <ff_field>.
    <ff_field> = '100'.
    ASSIGN COMPONENT 'AVAIL' OF STRUCTURE <fs_tab> TO <ff_field>.
    <ff_field> = '100'.
  ENDLOOP.

  CALL METHOD gr_grid->refresh_table_display
    EXPORTING
      i_soft_refresh = 'X'
        .


endform.                    " P_CHANGE_SUB
wenn ich mich durchdebugge wird korrekterweise der wert der subtotal auf 100 gesetzt, am Frontend/ALV ändert sich gar nix...ich bin gerade sehr verzweifelt...keinen Plan wie das funktionieren soll.

Re: ALV: subtotals manipulieren

Beitrag von a-dead-trousers (Top Expert / 4395 / 223 / 1182 ) »
doeme hat geschrieben:- Prozent Darstellung: wie schon gesagt, hatte ich bereits implementiert, da waren meine "rechenfelder" vom typ string und habe dann einfach ein '%' hinzugefügt, aber wie bereits erwähnt, verlor ich dadurch die aggregat funktion.
in den funktionen des feldkatalogs finde ich nichts mit % darstellung.
Mit folgende Edit-Mask (LVC_S_FCAT-EDIT_MASK) solte es funktionieren:
'RR___ %' (dreistellige Zahl OHNE Komma)
Schau dir die Hilfe zum WRITE Befehl für die genaue Syntax an.

lg ADT
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Seite 1 von 1

Vergleichbare Themen

7
Antw.
2659
Views
ALV subtotals
von Fluff » 02.07.2007 12:40 • Verfasst in ABAP® für Anfänger
2
Antw.
1785
Views
Manipulieren von SFSY-FORMPAGES
von formulator » 04.05.2007 13:38 • Verfasst in ABAP® Core
5
Antw.
4475
Views
Smartforms Druckvorschau manipulieren
von gaa9786 » 18.01.2013 13:27 • Verfasst in ABAP® Core
2
Antw.
1661
Views
docx einlesen und manipulieren
von Tanega » 25.01.2017 13:28 • Verfasst in ABAP® für Anfänger
3
Antw.
1898
Views
Transaktion aufrufen und Ausgabe manipulieren
von hyyd1e » 18.10.2013 10:18 • Verfasst in ABAP® für Anfänger

Aktuelle Forenbeiträge

Trennen Strasse und Hausnummer
vor einer Stunde von payten 13 / 10258
Dialog-Container mit Toolbar/Status
vor 15 Stunden von DeathAndPain gelöst 22 / 3214
Daten an Tabelle binden
vor 20 Stunden von Lukas Sanders 2 / 1076
Zeilenumbrüche ersetzen
vor 2 Tagen von ralf.wenzel 6 / 653

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Aktuelle Forenbeiträge

Trennen Strasse und Hausnummer
vor einer Stunde von payten 13 / 10258
Dialog-Container mit Toolbar/Status
vor 15 Stunden von DeathAndPain gelöst 22 / 3214
Daten an Tabelle binden
vor 20 Stunden von Lukas Sanders 2 / 1076
Zeilenumbrüche ersetzen
vor 2 Tagen von ralf.wenzel 6 / 653

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2638
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9225