Listbox im ALV-Grid

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
12 Beiträge • Seite 1 von 1
12 Beiträge Seite 1 von 1

Listbox im ALV-Grid

Beitrag von chatty (Specialist / 114 / 0 / 0 ) »
Hallo Leute,

und mal wieder eine Frage... gibt es eine Möglichkeit eine Listbox in einer ALV-Spalte auszugeben? Wenn ja wie funktioniert das?

Es sollen alle Zellen einer Spalte in jeder Zeile als Listbox dargestellt werden. Geht das?

Schöne Grüße
Chatty

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


Re: Listbox im ALV-Grid

Beitrag von urmel376 (ForumUser / 36 / 3 / 0 ) »
Hi Chatty,

check doch mal die PGM's BCALV_EDIT_06 oder BCALV_EDIT_07.

Gruß Urmel

Beitrag von chatty (Specialist / 114 / 0 / 0 ) »
DANKE!!!! Das hilft!

Beitrag von chatty (Specialist / 114 / 0 / 0 ) »
sorry zu früh gefreut... ich verwende den FuBa REUSE_ALV_LIST_DISPLAY zur Anzeige des ALVs und ich finde im Feldkatalog kein passendes Feld um aus einer ALV-Zelle eine Listbox zu machen... wenn das ganze mit ABAP-Objects gemacht wird so gibt es das Feld DRDN_HNDL im Feldkatalog und dann wird die Listbox ausgegeben.

Wie kann ich das mit dem Reuse-Baustein realisieren? Hat jemand eine Idee?

Gruss
Chatty

Beitrag von urmel376 (ForumUser / 36 / 3 / 0 ) »
Moin Chatty,
dann wirst Du wohl nicht um den Einsatz von OO-ALV drum herum kommen. Mir ist jedenfalls nicht bekannt, dass mit den REUSE-FuBa's Listboxen möglich sind.
Das ganze ins OO zu bringen ist aber auch nicht so schlimm ;-)

Oder willst Du nur was in der Listbox anzeigen, sprich ohne was zu ändern? Dann sollte es doch an der Definition der Ausgabestruktur hängen.

Gruß Urmel

Beitrag von chatty (Specialist / 114 / 0 / 0 ) »
Hallo Urmel,

ich möchte nur den Code und den dazugehörigen Langtext in der Listbox anzeigen. Also nichts ändern.

Was genau meinst du mit der Definition der Ausgabestruktur? Ich finde kein passendes Feld im Feldkatalog für Ausgabe als Listbox.

OO-ALV möchte ich nicht machen, dafür wäre der Aufwand zu groß.

Gruss
Chatty

Beitrag von urmel376 (ForumUser / 36 / 3 / 0 ) »
Hi Chatty,

Ich denke, wenn in der für dies ALV-Ausgabe genutzen Struktur das Feld mit einer selbstdefinierten Domäne und in deren Wertebereich die einzelnen Festwerte hinterlegt worden sind, sieht man diese in der ALV-Liste auch.

Gruß Urmel

Beitrag von chatty (Specialist / 114 / 0 / 0 ) »
Hi Urmel,

ich möchte aber die Langtexte der Werte nur sehen wenn ich auf die Listbox klicke deswegen brauche ich die Listbox.
Die Domäne und Wertebereich für das Ausgabefeld sind entsprechend angelegt.

Gruss
Chatty

Beitrag von urmel376 (ForumUser / 36 / 3 / 0 ) »
Das bekommst Du dann doch nur mit OO hin.

Gruss Urmel

Beitrag von chatty (Specialist / 114 / 0 / 0 ) »
okay! DANKE für die Infos!!!

Gruss
Chatty

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

so einfach geht's nicht. Mit ein wenig Tricksen geht's mit dem FuBa REUSE_ALV_GRID_DISPLAY_LVC. Dieser nutzt für den Feldkatalog die gleiche Strucktur wie der OO-ALV. Das Feld DRDN_HNDL ist vorhanden. Der FuBa bietet leider keine Möglichkeit die Listboxvaluetabelle zu übergeben (analog zu OO->set_drop_down_table).

Mit einem Trick gehts trotzdem. Man besorgt sich zur rechten Zeit die Referenz auf das ALV-Objekt (auch der Fuba-ALV benutzt die OO-Methoden) und ab da geht's dann Objektorientert weiter.
Ich häng mal ein Demo-Programm an damit du siehst wies geht.

Der hier berschriebene Weg ist bestimmt nicht SAP-Standard, auf Seitenefekte wurde nicht geprüft. Das ganze ist mehr ein Proof-of-Concept.

Gruß Hendrik

Code: Alles auswählen.

REPORT.
************************************************************************
*                     DATEN DEFINITION                                 *
************************************************************************
TYPE-POOLS: slis.

TYPES:
*      Type für Datentabelle
       BEGIN OF t_data,
         matnr   TYPE makt-matnr,
         maktx   TYPE makt-maktx,
         spras   TYPE makt-spras,
       END   OF t_data,
*      Type für ALV-Ausgabetabelle
       BEGIN OF t_alv,
         matnr     TYPE makt-matnr,
         maktx     TYPE makt-maktx,
         spras     TYPE makt-spras,
         dd_handle TYPE int4,
       END   OF t_alv.

DATA:
*     Tabelle/Arbeitsbreich für den Feldkatalog des ALV
      gt_fieldcatalog      TYPE lvc_t_fcat,
      gw_fieldcatalog      TYPE lvc_s_fcat,
*     Tabelle/Arbeitsbereich für DropDownListWerte
      gt_ddval             TYPE lvc_t_drop,
      gw_ddval             TYPE lvc_s_drop,
*     Tabelle/Arbeitsbereich für Events
      gt_events            TYPE slis_t_event,
      gw_events            TYPE slis_alv_event,
*     Tabelle/Arbeitsbereich für Daten
      gt_data              TYPE TABLE OF t_data,
      gw_data              TYPE          t_data,
*     Tabelle/Arbeitsbereich für ALV-Ausgabe-Tabelle
      gt_alv               TYPE TABLE OF t_alv,
      gw_alv               TYPE          t_alv,
*     Programmname
      g_repid              TYPE sy-repid VALUE sy-repid.

************************************************************************
*                     SELECTION SCREEN                                 *
************************************************************************
SELECT-OPTIONS: s_matnr FOR gw_data-matnr DEFAULT '4711'.

************************************************************************
*                     START-OF-SELECTION                               *
************************************************************************
START-OF-SELECTION.

* Daten beschaffen
  SELECT matnr maktx spras
  INTO TABLE gt_data
  FROM makt
  WHERE matnr IN s_matnr
    AND spras EQ 'DE'.

* Daten übernehemen
  LOOP AT gt_data INTO gw_data.
    MOVE-CORRESPONDING gw_data TO gw_alv.
    APPEND gw_alv TO gt_alv.
  ENDLOOP.

* Feldkatalog erstellen
  PERFORM creat_fieldcat.

* Wertetabelle für Dropdownbox füllen.
  PERFORM creat_dropdown_values.

* Tabelle mit Event-Exits erstellen
  PERFORM creat_event_exits.

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
    EXPORTING
      i_callback_program = g_repid
      it_fieldcat_lvc    = gt_fieldcatalog
      it_events          = gt_events
    TABLES
      t_outtab           = gt_alv.

*---------------------------------------------------------------------*
*      Form  creat_fieldcat
*---------------------------------------------------------------------*
FORM creat_fieldcat.
  CLEAR gw_fieldcatalog.
  gw_fieldcatalog-fieldname = 'MATNR'.
  gw_fieldcatalog-ref_field = 'MATNR'.
  gw_fieldcatalog-ref_table = 'MAKT'.
  APPEND gw_fieldcatalog TO gt_fieldcatalog.

  CLEAR gw_fieldcatalog.
  gw_fieldcatalog-fieldname = 'MAKTX'.
  gw_fieldcatalog-ref_field = 'MAKTX'.
  gw_fieldcatalog-ref_table = 'MAKT'.
  APPEND gw_fieldcatalog TO gt_fieldcatalog.

  CLEAR gw_fieldcatalog.
  gw_fieldcatalog-fieldname  = 'SPRAS'.
  gw_fieldcatalog-OUTPUTLEN = '7'.
  gw_fieldcatalog-dd_outlen = '7'.
  gw_fieldcatalog-intlen    = '2'.
  gw_fieldcatalog-inttype   = 'C'.
  gw_fieldcatalog-coltext   = 'Sprache'.
  gw_fieldcatalog-tooltip   = 'Sprache'.
  gw_fieldcatalog-seltext   = 'Sprache'.
  gw_fieldcatalog-drdn_field = 'DD_HANDLE'.
  APPEND gw_fieldcatalog TO gt_fieldcatalog.
ENDFORM.                    " creat_fieldcat

*---------------------------------------------------------------------*
*      Form  creat_dropdown_values
*---------------------------------------------------------------------*
FORM creat_dropdown_values.
  DATA: l_spras TYPE makt-spras,
        l_count TYPE i.
* Es werden nur die Sprachen angeboten, für die das Material einen
* gepflegten Kurztext hat.
  LOOP AT gt_alv INTO gw_alv.
    ADD 1 TO l_count.
*   alle Sprachen hohlen
    SELECT spras
    INTO l_spras
    FROM makt
    WHERE matnr = gw_alv-matnr.
*   Daten in DropDownListe übernhemen.
      CLEAR gw_ddval.
      gw_ddval-handle = l_count.
      gw_ddval-value  = l_spras.
      APPEND gw_ddval TO gt_ddval.
    ENDSELECT.

*   Leere Zeile in Drop-Down-Liste
    CLEAR gw_ddval.
    gw_ddval-handle = l_count.
    gw_ddval-value  = '                 '.
    APPEND gw_ddval TO gt_ddval.

*   Den Handel der Ausgabetablle mitgeben
    gw_alv-dd_handle = l_count.
    MODIFY gt_alv FROM gw_alv.
  ENDLOOP.
ENDFORM.                    " creat_dropdown_values
*---------------------------------------------------------------------*
*      Form  creat_event_exits
*---------------------------------------------------------------------*
FORM creat_event_exits .
  gw_events-name = 'CALLER_EXIT'.
  gw_events-form = 'CALLER_EXIT'.
  APPEND gw_events TO gt_events.
ENDFORM.                    " creat_event_exits


*---------------------------------------------------------------------*
*      Form  PF_STATUS_SET
*---------------------------------------------------------------------*
FORM caller_exit USING ls_data TYPE slis_data_caller_exit.
* Referenz auf ALV-Objekt
  DATA: l_ref_alv TYPE REF TO cl_gui_alv_grid.

* Referenz auf ALV hohlen
  CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
    IMPORTING
      e_grid = l_ref_alv.

* Die Dropdown-Values dem Grid übergeben
  CALL METHOD l_ref_alv->set_drop_down_table
    EXPORTING
      it_drop_down = gt_ddval.
ENDFORM.                    "CALLER_EXIT

Beitrag von chatty (Specialist / 114 / 0 / 0 ) »
Hallo JHM,

danke für deine Mühe, ich werde es ausprobieren.

Gruss
Chatty

Seite 1 von 1

Vergleichbare Themen

0
Antw.
1460
Views
Auf Listbox reagieren
von Steffi221185 » 21.09.2006 11:25 • Verfasst in Dialogprogrammierung
1
Antw.
3717
Views
Dropdown Listbox
von Malaqi » 08.02.2009 03:07 • Verfasst in ABAP® für Anfänger
6
Antw.
9732
Views
Listbox füllen
von chatty » 02.09.2005 14:42 • Verfasst in ABAP® Core
3
Antw.
3728
Views
Listbox auslesen
von jse91 » 24.06.2013 15:09 • Verfasst in Web-Dynpro, BSP + BHTML
4
Antw.
1334
Views
Selektionsfelder per Listbox
von patlau » 23.04.2013 14:58 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


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

Aktuelle Forenbeiträge

Dialog-Container mit Toolbar/Status
vor 7 Stunden von DeathAndPain gelöst 22 / 2907
Daten an Tabelle binden
vor 12 Stunden von Lukas Sanders 2 / 926
Zeilenumbrüche ersetzen
vor 2 Tagen von ralf.wenzel 6 / 494

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

Dialog-Container mit Toolbar/Status
vor 7 Stunden von DeathAndPain gelöst 22 / 2907
Daten an Tabelle binden
vor 12 Stunden von Lukas Sanders 2 / 926
Zeilenumbrüche ersetzen
vor 2 Tagen von ralf.wenzel 6 / 494

Unbeantwortete Forenbeiträge

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