cl_gui_alv_grid --> Buttons in einer Spalte

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

cl_gui_alv_grid --> Buttons in einer Spalte

Postby Laurens818 » Wed Jun 27, 2012 4:13 pm

Hallo liebe Leute :-)

es gibt ja im cl_gui_alv_grid die Möglichkeit z. B. einer bestimmten Zeile, Spalte, Zelle, einen Button zuzuordnen.

Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1.  ls_fcat-style = cl_gui_alv_grid=>mc_style_button.
  2.  
GeSHi ©

In meiner Ausgabetabelle erscheint ja, in diesem speziallen Fall, in einer bestimmten Spalte für jede Zeile ein klickbarer Button (bezieht sich ja dann anshließend auf das Event button_click).

Jetzt meine Frage:
Gibt es auch irgendwie die Möglichkeit diesen Button mit einem Icon zu versehen?????
Denn so leer wie er da in meiner Tabelle hängt, ist das bisschen sehr ungünstig.

Ich habe nur irgendwo gesehen, dass es in dem REUSE-Baustein geht!?

Hat da irgendwer einen Tipp für mich?

Dankeschön :-)
Laurens818
..
..
 
Posts: 50
Joined: Sat Oct 22, 2005 9:06 pm

Re: cl_gui_alv_grid --> Buttons in einer Spalte

Postby Josie2243 » Thu Jun 28, 2012 7:11 am

Chrischi hat geschrieben:Hat da irgendwer einen Tipp für mich?


Hast du Werte in den Button-Zellen?
Wenn es Icons sein sollen sollte es mit '@**@' eigentlich gehen (wobei ** natürlich die Icon-ID ist).
Josie2243
....
....
 
Posts: 908
Joined: Wed Feb 15, 2006 4:05 pm

Re: cl_gui_alv_grid --> Buttons in einer Spalte

Postby Laurens818 » Thu Jun 28, 2012 9:04 am

Hallo Hendrik,

vielen vilen Dank :-) Ich bin gestern fast wahnsinnig geworden :-)
Problem war, dass keine Werte drin standen.


Aber vielleicht kannst du mir noch diese kleine Frage beantworten?

Wenn ich in meinem ALV dann eine neue Zeile einfüge (über die Buttons in der Toolbar), wie bekomme ich das dann hin, dass es mir in jeder neuen Zeile sofort die Werte (für das Icon) in die Tabelle setzt?

Oder müsste ich dann im DDIC die Spalte mit dem einen Festwert versehen???
Laurens818
..
..
 
Posts: 50
Joined: Sat Oct 22, 2005 9:06 pm

Re: cl_gui_alv_grid --> Buttons in einer Spalte

Postby Josie2243 » Thu Jun 28, 2012 9:23 am

Chrischi hat geschrieben:Wenn ich in meinem ALV dann eine neue Zeile einfüge (über die Buttons in der Toolbar), wie bekomme ich das dann hin, dass es mir in jeder neuen Zeile sofort die Werte (für das Icon) in die Tabelle setzt?


Hinzufügen der Zeile wird durch den ALV erledigt und nicht über Z-Programmlogik?

Dann Ereignis after_user_command für das Hinzufügen anlegen und das Icon setzten (evtl. muss noch REFRESH_TABLE hinterher) oder Hinzufügenfunktion durch eigenen Button realisieren und Standardbutton ausschlaten. Dann über das Ereignis USER_COMMAND die Zeile inkl. Icon setzten.
Josie2243
....
....
 
Posts: 908
Joined: Wed Feb 15, 2006 4:05 pm

Re: cl_gui_alv_grid --> Buttons in einer Spalte

Postby Laurens818 » Thu Jun 28, 2012 3:04 pm

Hallo Hendrik,

Hinzufügen der Zeile wird durch den ALV erledigt und nicht über Z-Programmlogik?

Genau richtig, in der Toolbar vom ALV wird der Button gedrückt um eine neue Zeile einzufügen, hatte ich vergessen zu schreiben :-)


Das Ereignis after_user_command bezieht sich ja sicherlich auf meinen ALV, oder? (Wenn ich auf den Button drücke um eine neue Zeile einzufügen, soll das Ereignis ausgelöst werden!?)

Das habe ich ja schon eingebunden. Wenn ich aber auf den Button drücke, wird das Ereignis nicht ausgeführt :?
Woran könnte das liegen?
Laurens818
..
..
 
Posts: 50
Joined: Sat Oct 22, 2005 9:06 pm

Re: cl_gui_alv_grid --> Buttons in einer Spalte

Postby Josie2243 » Thu Jun 28, 2012 3:08 pm

Chrischi hat geschrieben:Woran könnte das liegen?


Weil das Buttondrücken nicht an das Backend zurückgegeben wird. Liegt irgendwie am Eventtyp. Am einfachsten eigenen Button anlegen und selber machen.
Josie2243
....
....
 
Posts: 908
Joined: Wed Feb 15, 2006 4:05 pm

Re: cl_gui_alv_grid --> Buttons in einer Spalte

Postby Laurens818 » Thu Jun 28, 2012 3:50 pm

Habe es ja auch schon über andere Eventtypen (before_user_command, user_command etc. ) versucht. Das komische ist, bei manchen Buttons in der ALV-Toolbar funktioniert das Event und bei anderen Buttons (wie bei dem, den ich brauche :evil: ) eben leider nicht ;)

Und auf die geschützten Ereignisse kann ich ja leider nicht zugreifen :?

Ich glaub, das mit eigenen Buttons zu machen, erscheint mir da etwas einfacher :)
Laurens818
..
..
 
Posts: 50
Joined: Sat Oct 22, 2005 9:06 pm

Re: cl_gui_alv_grid --> Buttons in einer Spalte

Postby Eymen5010 » Tue Jul 03, 2012 8:15 am

Hi,

warum nimmst du nicht das "on_data_changed"-Event? Hier ein kleines Beispiel, in dem ich die Spalte "WERKS" mit einem Default-Wert versehe:

Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1.   METHOD on_data_changed.
  2. *   Wenn Zeilen eingefügt wurden...
  3.     IF er_data_changed->mt_inserted_rows[] IS NOT INITIAL.
  4.       me->set_defaults( er_data_changed ).
  5.     ENDIF.
  6. * ....
  7.  
GeSHi ©


Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1.   METHOD set_defaults.
  2.     DATA: ls_trichter         TYPE alv_s_trichter.
  3.     FIELD-SYMBOLS: <ls_ins_row>   TYPE lvc_s_moce.
  4.  
  5.     LOOP AT er_data_changed->mt_inserted_rows ASSIGNING <ls_ins_row>.
  6.       CALL METHOD er_data_changed->modify_cell
  7.         EXPORTING
  8.           i_row_id    = <ls_ins_row>-row_id
  9.           i_fieldname = 'WERKS'
  10.           i_value     = me->l_werks.
  11. *...
  12.  
GeSHi ©


Klappt bei mir...
Eymen5010
...
...
 
Posts: 192
Joined: Thu Mar 27, 2008 11:08 am

Re: cl_gui_alv_grid --> Buttons in einer Spalte

Postby Laurens818 » Tue Jul 31, 2012 8:01 am

Hallo Udo,

Ich hab das mir dann doch mit eigenen Buttons in der Toolbar gemacht.

Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1.   METHOD build_toolbar.
  2. *** Toolbar erweitern
  3.  
  4.     DATA: ls_toolbar  TYPE stb_button.
  5.  
  6. * Button: ZEILE ANHÄNGEN
  7.         CLEAR ls_toolbar.
  8.         MOVE 0 TO ls_toolbar-butn_type.
  9.         MOVE icon_insert_row   TO ls_toolbar-icon.
  10.         MOVE 'APPEND'          TO ls_toolbar-function.
  11.         MOVE 'Zeile anhängen'  TO ls_toolbar-quickinfo.
  12.         APPEND ls_toolbar      TO i_object->mt_toolbar.
  13. * Button: ZEILE LÖSCHEN
  14.         CLEAR ls_toolbar.
  15.         MOVE 0 TO ls_toolbar-butn_type.
  16.         MOVE icon_delete_row   TO ls_toolbar-icon.
  17.         MOVE 'DELETE'          TO ls_toolbar-function.
  18.         MOVE 'Zeile löschen'   TO ls_toolbar-quickinfo.
  19.         APPEND ls_toolbar      TO i_object->mt_toolbar.
  20.  
GeSHi ©


Anschließend noch die Verarbeitung, wenn ich auf einen Button gedrückt habe

Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1.   METHOD on_toolbar_click.
  2.  
  3.     DATA: lv_row TYPE i.
  4.  
  5.     CASE e_ucomm.
  6.       WHEN 'APPEND'.
  7.         CALL METHOD gref_alv->get_current_cell
  8.           IMPORTING
  9.             e_row = lv_row.
  10.         IF lv_row < 1.
  11.           lv_row = 1.
  12.         ENDIF.
  13.         CLEAR gs_ausgab.
  14.         gs_ausgab-feld = '@0N@'.
  15.         INSERT gs_ausgab INTO gt_ausgab INDEX lv_row.
  16. .
  17. .
  18. .
  19.  
GeSHi ©


Ich kann mir gut vorstellen, dass das auch so klappt, aber wie heißt es so schön!?

Viele wege führen nach Rom ;)
Laurens818
..
..
 
Posts: 50
Joined: Sat Oct 22, 2005 9:06 pm

Re: cl_gui_alv_grid --> Buttons in einer Spalte

Postby Giovanni2031 » Thu Sep 06, 2012 8:32 am

Hallo,

ich habe das Problem, dass nach clicken auf meinen selbst definierten Button 'Neuer Prozess' das Ereignis USER_COMMAND nicht ausgeführt wird. Was kann ich da machen ?

Definition Button:
CLEAR ls_toolbar.
MOVE cl_gui_alv_grid=>mc_fc_loc_append_row TO ls_toolbar-function.
MOVE icon_create TO ls_toolbar-icon.
MOVE 'Neue Zeile' TO ls_toolbar-quickinfo.
MOVE ' Neuer Prozess' TO ls_toolbar-text.
MOVE ' ' TO ls_toolbar-disabled.
APPEND ls_toolbar TO e_object->mt_toolbar.

Oder auch Frage zu Deinem Beispiel: Welchem Ereignis ist die Behandlermethode on_toolbar_click denn zugeordnet ?

Danke im Voraus !
Gruß
Giovanni2031
.
.
 
Posts: 2
Joined: Thu Sep 06, 2012 8:32 am


Return to ABAP Objects®

Who is online

Users browsing this forum: No registered users and 2 guests