Funktionalität Icon

Getting started ... Alles für einen gelungenen Start.
8 Beiträge • Seite 1 von 1
8 Beiträge Seite 1 von 1

Funktionalität Icon

Beitrag von phil1982 (ForumUser / 34 / 0 / 0 ) »
Hallo zusammen ich habe eine Listausgabe durch ein ALV Grid dargestellt. Es besteht aus mehreren Zeilen. Am ende jeder Zeile habe ich ein Icon angehängt von welchem aus ich in ein Detailbild verzweigen will.Meine Frage ist, wie bekomme ich durch Doppelklick auf das Ikon die Verzweigung hin?

Danke und Gruß,

phil

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


Beitrag von BlackMail (ForumUser / 79 / 0 / 0 ) »
Hallo phil1982,

es spielt keine Rolle, ob es sich um ein Icon handelt oder um andere Daten in der Zelle.
Du brauchst eine lokale oder globale Klasse als Eventhandler, mit der du dich auf das Event "double_click" der Klasse cl_gui_alv_grid registrierst.
Im Eventhandler bekommst du die Adresse der Zelle mit, auf der der Doppelklick gemacht wurde und Du kannst entsprechend reagieren.

Gruß BlackMail.

Re: Funktionalität Icon

Beitrag von JHM (Top Expert / 1197 / 1 / 197 ) »
phil1982 hat geschrieben:Hallo zusammen ich habe eine Listausgabe durch ein ALV Grid dargestellt.
Welcher ALV (OO, REUSE; LVC; OM)?
phil1982 hat geschrieben: Meine Frage ist, wie bekomme ich durch Doppelklick auf das Ikon die Verzweigung hin?
Wenn REUSE oder LVC muss zum einen der Parameter I_CALLBACK_PROGRAM mit dem Programmnamen belegt werden.
Zum anderen muss in den Parameter I_CALLBACK_USER_COMMAND eine Form-Routine aus dem I_CALLBACK_PROGRAM angegeben werden. Diese Form muss von folgender Signatur sein:
FORM user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.

In der Form kann auf den Doppelklick (r_ucomm = '&IC1') reagiert werden. Auf welche Zeile der Doppelklick gemacht wurde kann in der Struktur rs_selfield nachgelesene werden.

Ansonsten die Doku zu den beiden Parametern lesn, ist recht gut dokumentiert.
Gruß Hendrik

Funktionalität Icon

Beitrag von phil1982 (ForumUser / 34 / 0 / 0 ) »
Hallo zusammen,
bin leider noch Anfänger und habe es noch nicht hinbekommen.
mein alv grid sieht folgendermaßen aus:
form anzeige_alv_grid.

data:
*& work areas
wa_fieldcat type slis_fieldcat_alv,
wa_excluding type slis_extab,
*& Strukturen
it_fieldcat type slis_t_fieldcat_alv,
gs_layout type slis_layout_alv,
it_excluding type standard table of slis_extab.



*&---------------------------------------------------------------------*
*& auszublendende Buttons
*&---------------------------------------------------------------------*

*& SUMME
wa_excluding-fcode = '&UMC'.
append wa_excluding to it_excluding.
**& FILTER
wa_excluding-fcode = '&ILT'.
append wa_excluding to it_excluding.
*& GRAFIK
wa_excluding-fcode = '&GRAPH'.
append wa_excluding to it_excluding.
**& Textverarbeitung
wa_excluding-fcode = '&AQW'.
append wa_excluding to it_excluding.
**& ABC-Analyse
wa_excluding-fcode = '&ABC'.
append wa_excluding to it_excluding.
**


*&---------------------------------------------------------------------*
*& Feldkatalog aufbauen
*&---------------------------------------------------------------------*
*%----------------struktur auslesen---------------------------------*
*& Feldkatalog bauen

wa_fieldcat-col_pos = '1'.
wa_fieldcat-fieldname = 'TARIFTYP'.
wa_fieldcat-seltext_l = 'TARIFTYP'.
* wa_fieldcat-key = 'X'.
append wa_fieldcat to it_fieldcat.
clear wa_fieldcat.


wa_fieldcat-col_pos = '2'.
wa_fieldcat-fieldname = 'TYPBEZ'.
wa_fieldcat-seltext_l = 'TARIFTYPBEZEICHNUNG'.
* wa_fieldcat-key = 'X'.
append wa_fieldcat to it_fieldcat.
clear wa_fieldcat.



wa_fieldcat-col_pos = '3'.
wa_fieldcat-fieldname = 'NETTOBTR'.
wa_fieldcat-seltext_l = 'NETTOBETRAG'.
* wa_fieldcat-key = 'X'.
append wa_fieldcat to it_fieldcat.
clear wa_fieldcat.


wa_fieldcat-col_pos = '4'.
wa_fieldcat-fieldname = 'MSATZ'.
wa_fieldcat-seltext_l = 'MEHRWERTSTEUER'.
* wa_fieldcat-key = 'X'.
append wa_fieldcat to it_fieldcat.
clear wa_fieldcat.

wa_fieldcat-col_pos = '5'.
wa_fieldcat-fieldname = 'BRUTTOBTR'.
wa_fieldcat-seltext_l = 'BRUTTOBETRAG'.
* wa_fieldcat-key = 'X'.
append wa_fieldcat to it_fieldcat.
clear wa_fieldcat.


wa_fieldcat-col_pos = '6'.
wa_fieldcat-fieldname = 'ICON'.
wa_fieldcat-seltext_l = 'DETAIL'.
* wa_fieldcat-key = 'X'.
append wa_fieldcat to it_fieldcat.
clear wa_fieldcat.

gs_layout-zebra = 'X'.
gs_layout-colwidth_optimize = 'X'.

call function 'REUSE_ALV_GRID_DISPLAY'
exporting
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER =
* I_BUFFER_ACTIVE = ' '
* I_CALLBACK_PROGRAM = ' '
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = ' '
* I_CALLBACK_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_END_OF_LIST = ' '
* I_STRUCTURE_NAME =
* I_BACKGROUND_ID = ' '
* I_GRID_TITLE =
* I_GRID_SETTINGS =
is_layout = gs_layout
it_fieldcat = it_fieldcat
it_excluding = it_excluding
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
* I_SAVE = ' '
* IS_VARIANT =
* IT_EVENTS =
* IT_EVENT_EXIT =
* IS_PRINT =
* IS_REPREP_ID =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* IT_ALV_GRAPHICS =
* IT_ADD_FIELDCAT =
* IT_HYPERLINK =
* I_HTML_HEIGHT_TOP =
* I_HTML_HEIGHT_END =
* IT_EXCEPT_QINFO =
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
tables
t_outtab = it_erg_alv
exceptions
program_error = 1
others = 2
.
if sy-subrc <> 0.
message id sy-msgid type 'I' number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.
endform. " anzeige_alv_grid

Was muss ich in diesem Coding ändern damit auf dem Icon, welches an Position 6 im Feldkatalog steht, ein Doppelklick möglich ist und anschließen ein Detailbild eingeblendet wird?
Über eure Hilfe wäre ich euch sehr dankbar.

gruß,
phil

Re: Funktionalität Icon

Beitrag von JHM (Top Expert / 1197 / 1 / 197 ) »

Code: Alles auswählen.

form anzeige_alv_grid.

  data:
                  it_excluding      type standard table of slis_extab,
*** neue Variable für den Programmnamen mit dem Programmnamen
                  l_progid TYPE sy-progid VALUS sy-progid.
***

  call function 'REUSE_ALV_GRID_DISPLAY'
   exporting
*** neue Parameter 
     I_CALLBACK_PROGRAM                = grepid
     I_CALLBACK_USER_COMMAND     = 'CALLBACK_USER_COMMAND''
***
     is_layout                         = gs_layout
     it_fieldcat                       = it_fieldcat
     it_excluding                      = it_excluding
    tables
      t_outtab                          = it_erg_alv
   exceptions
     program_error                     = 1
     others                            = 2
            .
  if sy-subrc <> 0.
    message id sy-msgid type 'I' number sy-msgno
            with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  endif.
endform.                    " anzeige_alv_grid

***neue form
FORM CALLBACK_USER_COMMAND USING r_ucomm LIKE sy-ucomm 
rs_selfield TYPE slis_selfield.
IF r_ucomm = '&IC1'. "gab es einen Doppelklick?
  IF rs_selfield-fieldname = 'ICON'. "Wo war der Doppelklick
    MESSEAG 'Doppelklick auf Icon' TYPE 'I'.
* Um an die Daten der Zeile zu kommen
   READ TABLE it_erg_alv INDEX rs_selfield-tabindex.   
  ENDIF.
ENDIF.
ENDFORM.
***
Hoffe geholfen zu haben.
Gruß Hendrik

Funktionalität Icon

Beitrag von phil1982 (ForumUser / 34 / 0 / 0 ) »
Hallo zusammen,
ich glaub der Tip war ganz gut, nur macht mein Programm nichts :-).Syntaxcheck bring keine Fehler, aber der Doppelklick funktioniert nicht.
habe noch mal mein Coding eingefügt, vielleicht kann mir ja einer von euch weiterhelfen.

Danke schon mal,

phil

FORM anzeige_alv_grid.

DATA:
*& work areas
wa_fieldcat TYPE slis_fieldcat_alv,
wa_excluding TYPE slis_extab,
*& Strukturen
it_fieldcat TYPE slis_t_fieldcat_alv,
gs_layout TYPE slis_layout_alv,
it_excluding TYPE STANDARD TABLE OF slis_extab,
l_progid TYPE sy-repid.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER =
* I_BUFFER_ACTIVE = ' '
i_callback_program = l_progid
* I_CALLBACK_PF_STATUS_SET = ' '
i_callback_user_command = 'CALLBACK_USER_COMMAND'
* I_CALLBACK_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_END_OF_LIST = ' '
* I_STRUCTURE_NAME =
* I_BACKGROUND_ID = ' '
* I_GRID_TITLE =
* I_GRID_SETTINGS =
is_layout = gs_layout
it_fieldcat = it_fieldcat
it_excluding = it_excluding
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
* I_SAVE = ' '
* IS_VARIANT =
* IT_EVENTS =
* IT_EVENT_EXIT =
* IS_PRINT =
* IS_REPREP_ID =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* IT_ALV_GRAPHICS =
* IT_ADD_FIELDCAT =
* IT_HYPERLINK =
* I_HTML_HEIGHT_TOP =
* I_HTML_HEIGHT_END =
* IT_EXCEPT_QINFO =
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = it_erg_alv
EXCEPTIONS
program_error = 1
OTHERS = 2
.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE 'I' NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.


ENDFORM. " anzeige_alv_grid

***neue Form
FORM callback_user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
IF r_ucomm = '&IC1'. "Gab es einen Doppelklick?
IF rs_selfield-fieldname = 'ICON'. "Wo war der Doppelklick?
* message 08 'Doppelklick auf ICON' type 'I'.
MESSAGE i108(04) WITH 'Doppelklick auf ICON' .
* & & & &


*Um an die Daten der Zeile zu kommen
READ TABLE it_erg_alv INDEX rs_selfield-tabindex INTO wa_erg_alv.
ENDIF.
ENDIF.
ENDFORM.

Re: Funktionalität Icon

Beitrag von JHM (Top Expert / 1197 / 1 / 197 ) »
phil1982 hat geschrieben:.Syntaxcheck bring keine Fehler, aber der Doppelklick funktioniert nicht.
Bei semantischen Fehlern hilft der Syntaxcheck auch nicht weiter.
Du musst den Programmnamen auch füllen!

Code: Alles auswählen.

***Entweder:
 l_progid          TYPE sy-repid.
l_progid = sy-repid.

*** Oder
 l_progid          TYPE sy-repid VALUE sy-repid.
Gruß Hendrik

Funktionalität Icon

Beitrag von phil1982 (ForumUser / 34 / 0 / 0 ) »
Hallo Hendrik,
danke für die Hilfe.jetzt funktioniert es :-)

gruß,
phil

Seite 1 von 1

Vergleichbare Themen

2
Antw.
3367
Views
Web Dynpro ALV: Icon wird nicht als Icon dargestellt
von Thanatos82 » 13.02.2013 10:49 • Verfasst in ABAP® für Anfänger
1
Antw.
1348
Views
Funktionalität: Beleg simulieren
von christop » 06.04.2005 12:45 • Verfasst in Financials
7
Antw.
2983
Views
Funktionalität des Extension-Index
von Lord_Dunkelziffer » 13.02.2020 09:42 • Verfasst in ABAP® für Anfänger
3
Antw.
1696
Views
REUSE_ALV_GRID_DISPLAY_LVC mit Expand/Collapse-Funktionalität
von sapdepp » 15.05.2020 11:11 • Verfasst in ABAP Objects®
3
Antw.
2001
Views
Einbinden der SE16 Funktionalität in eigenes Programm
von cut1 » 14.05.2007 11:28 • Verfasst in ABAP® Core

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

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.

Unbeantwortete Forenbeiträge

Daten an Tabelle binden
vor 2 Stunden von Bright4.5 1 / 60
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 1711
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8314