Page 1 of 1

CL_SALV_TREE

PostPosted: Fri Oct 31, 2014 10:34 am
by Linnea2424
Hallo zusammen,

ich habe eine kleine, wirklich überschaubare Aufgabe und dachte mir, ich probiere mal wieder zur Realisierung meinen persönlichen Nightmare --> einen Tree. Ich würde jetzt fast behaupten, dass ich ABAP mittlerweile etwas beherrsche, aber die Tree-Technik will einfach nicht mit mir und umgekehrt. Und ja ich habe gefühlte hundert Demoprogramme zum Tree gesehen und auch jede Menge davon benutzt :)

Es werden Anfragen erfasst, die nach Status und Arbeitsvorrat summiert bzw. im Durchschnitt berechnet werden sollen.

Genreller Aufbau:
Status
--> AV
----> Anfragenummer

So der echte Aufbau:
Neu
--> 1
----> 1000
----> 10001
--> 2
----> 2000
In Bearbeitung
--> 1
----> 10002
--> 3
----> 30000
----> 30001
Jeweils auf der Zeile (Last Child bis First Node) soll die summierte Anzahl und die durchschnittliche Bearbeitungszeit stehen.

Der Select liefert die Daten in eine Tabelle, die Zeile hat die Struktur Status - AV - Anz - Durch - ERDAT - AEDAT. In Anz steht immer eine 1, in Durch immer die Anzahl Tage AEDAT - ERDAT. Dann wird die Tabelle nach STATUS und AV sortiert.

Jetzt soll der Tree aufgebaut werden. Mit ON CHANGE klappt das gar nicht, lustig das die Hilfe den Befehl als obsolet ausweist, daher mit AT.
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1.   loop at pt_outtab into ls_data
  2.     at new status.
  3.       perform add_status_line using    ls_data
  4.                                        ''
  5.                               changing l_status_key.
  6.     endat.
  7.     at new av.
  8.       perform add_av_line using    ls_data
  9.                                        l_status_key
  10.                               changing l_av_key.
  11.     endat.
  12.     perform add_complete_line using  ls_data
  13.                                              l_av_key
  14.                                     changing l_last_key.
GeSHi ©


In den Forms sind die meisten Felder mit * belegt bzw. die Felder ANZ und DURCH (vorher ja korrekt gefüllt) mit 0.

Die Gruppierung habe ich mit AGGREGATIONS gemacht:
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. lo_aggregations->add_aggregation( columnname  = 'ANZ' ).
GeSHi ©


Iverstehe einfach die grundsätzliche Umsetzung der Gruppenwechselthematik mit AT nicht bzw. denke ich, dass die "Lösung" aber nicht so weit weg ist.

Kann mir da einer weiterhelfen?
Gruß

Re: CL_SALV_TREE

PostPosted: Fri Oct 31, 2014 10:46 am
by Joeline5261
Hallo,

bei einem Loop und NEW sind die Gruppenbegriffe immer mit '*' gefüllt.
Sichere Dir die Tabellenzeile vorher und verwende die Felder dann daraus.
Hoffe das ist verständlich.

Gruß
Wolfgang

Re: CL_SALV_TREE

PostPosted: Fri Oct 31, 2014 10:51 am
by Linnea2424
Wie soll ich sie denn vorher sichern. Der Knoten wird erst in ADD_STATUS_LINE angelegt, da ist aber die PS_DATA bereits leer.

Re: CL_SALV_TREE

PostPosted: Fri Oct 31, 2014 10:52 am
by Joeline5261
Hallo,

hier eine Hilfe dazu:
http://www.tricktresor.de/blog/gruppenwechsel/

Gruß
Wolfgang