callback_user_command in Methode auswerten

Die Objektorientierung mit ABAP®: Vererbung, Dynamische Programmierung, GUI Controls (u.a. ALV im OO).

callback_user_command in Methode auswerten

Postby Ensar4984 » Tue Aug 02, 2011 9:10 pm

Hallo zusammen,

Mein OO-Programm erzeugt einen Tree, welchen ich mittels des FuBa "RS_TREE_LIST_DISPLAY" ausgebe. Sowohl das Constructen, als auch das Displayen des Trees erfolgt in einer Methode, welche im Class-Builder implementiert sind und vom Report aus aufgerufen werden.
Allerdings gelang es mir bisher nicht den "user_command" in der Methode auszuwerten, dies gelingt mir nur, wenn sich der FuBa-Aufruf im Report befindet, durch den Aufruf einer Form ("NODE_SELECT").

Der folgende Code zeigt den Aufruf der FuBa im Report.

Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1.  
  2. *Report
  3.       CALL FUNCTION 'RS_TREE_LIST_DISPLAY'
  4.         EXPORTING
  5.           callback_program      = sy-repid
  6.           status                = 'STANDARD'
  7.           check_duplicate_name  = '1'
  8.           color_of_node         = '4'
  9.           color_of_mark         = '3'
  10.           color_of_link         = '1'
  11.           color_of_match        = '5'
  12.           node_length           = 30
  13.           text_length           = 75
  14.           use_control           = 'L'
  15.           return_marked_subtree = 'X'
  16.           callback_user_command = 'NODE_SELECT'. " Direkter Methodenaufruf möglich?
  17.  
  18. * dazugehörige Form
  19. FORM node_select TABLES node STRUCTURE seucomm
  20. USING command
  21. CHANGING value(exit)
  22. value(list_refresh).
  23.  
  24. ...
  25.  
  26.  
GeSHi ©


Die Frage, die ich nun hab, muss "callback_user_command" zwingend auf eine Form im Report verweisen, oder gibt es die Möglichkeit den callback_user_command direkt weiter in der Methode zu behandeln, in der ich auch dem FuBa aufrufe?

Praktisch folgendes:
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1.  
  2.  Method Display_Tree.
  3.       CALL FUNCTION 'RS_TREE_LIST_DISPLAY'
  4.         EXPORTING
  5.           callback_program      = sy-repid
  6.           status                = 'STANDARD'
  7.           check_duplicate_name  = '1'
  8.           color_of_node         = '4'
  9.           color_of_mark         = '3'
  10.           color_of_link         = '1'
  11.           color_of_match        = '5'
  12.           node_length           = 30
  13.           text_length           = 75
  14.           use_control           = 'L'
  15.           return_marked_subtree = 'X'
  16.           callback_user_command = NODE_SELECT.
  17.  
  18.  
  19. CASE NODE_SELECT.
  20. ...
  21.  
GeSHi ©



Schon mal vielen Dank im voraus und
viele Grüße
Trublu
Ensar4984
.
.
 
Posts: 4
Joined: Tue Aug 02, 2011 9:10 pm

Re: callback_user_command in Methode auswerten

Postby Jonny2227 » Wed Aug 03, 2011 8:54 am

Sali,

nun der FB benötigt nun mal per Definition für den User Command eine Form entsprechend dem Aufbau - siehe Doku.
Warum wird der Tree nicht mit der ABAP Classe angezeigt - dann könntest du auf die Events reagieren und eine Methode für die Bearbeitung implementieren - in der du natürlich wenn du willst eine Form aufrufen kannst in irgend einem Programm :)

Gruss
Jonny2227
....
....
 
Posts: 605
Joined: Wed Mar 01, 2006 3:16 pm

Re: callback_user_command in Methode auswerten

Postby Ilja583 » Wed Aug 03, 2011 10:37 am

Hallo Trublu,

eigentlich sollte das was du vorhast funktionieren, wenn der Baustein etwa so funktioniert wie der Baustein für den ALV. Du müsstest dann aber bestimmt den Parameter "Callback_program" korrekt (d.h. nicht mit Übergabe von SY-REPID ) füllen.
Ilja583
.....
.....
 
Posts: 1372
Joined: Wed Jan 08, 2003 3:00 pm

Re: callback_user_command in Methode auswerten

Postby Jonny2227 » Wed Aug 03, 2011 11:08 am

Sali Stefan,

wie würde das denn aussehen - wenn du dem Callback_User_Command - eine "Behandlermethode" mitgibst ? In der Docu steht doch explizit das der FB eine Form Routine mit entsprechenden Interface Aufbau haben will ? Geht der Methoden Aufruf / Mitgabe hier an dieser Stelle echt bzw. beim ALV FB ? Danke für einen Tip.

Schönen Tag noch ...

Gruss Jens
Jonny2227
....
....
 
Posts: 605
Joined: Wed Mar 01, 2006 3:16 pm

Re: callback_user_command in Methode auswerten

Postby Ilja583 » Wed Aug 03, 2011 1:44 pm

Hi Jens,

da hast du wohl recht. Ich war da ein wenig betriebsblind - in Klassen kann ich ja nicht irgendwo einfach mal eine FORM-Routine verstecken.
Hatte nur das typische CALLBACK_PROGRAM = sy-repid gesehen
Ilja583
.....
.....
 
Posts: 1372
Joined: Wed Jan 08, 2003 3:00 pm

Re: callback_user_command in Methode auswerten

Postby Jonny2227 » Wed Aug 03, 2011 2:34 pm

Sali Trublu,

also - wie bereits geschrieben - ist es notwendig den Usercommand in besagter Callback Routine zu implementieren und diese hat einen vordefinierten Aufbau und muss eine Form Routine sein :) - was dich aber natürlich nicht davon abhalten kann - in dieserr Routine dann eine Methode zur Behandlung des Commands zu rufen und wenn diese ein Interface hat - welches der Form Schnittstelle identisch ist - dann hast du da alle Infos drin die du brauchst ! Welchen Sinn das dann macht - steht aber auf einem anderen Blatt.
Daher wäre eine Überlegung - wenn es im OO Umfeld sein soll - ob nicht die ABAP Tree Klasse für den TREE Aufbau verwendet werden sollte / kann - anstatt der FUBA (wobei wahrscheinlich in den Tiefen der Klasse letztendlich dann doch vielleicht ein Call Function steht :)

Gruss Jens
Jonny2227
....
....
 
Posts: 605
Joined: Wed Mar 01, 2006 3:16 pm


Return to ABAP Objects®

Who is online

Users browsing this forum: No registered users and 9 guests