ALV: nur eine einzige Zelle als Checkbox

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

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

ALV: nur eine einzige Zelle als Checkbox

Beitrag von kloie (ForumUser / 1 / 1 / 0 ) »
Hallo zusammen,

wie kann ich im ALV eine einzige Zelle zu einer Checkbox machen, ohne , dass die ganze Spalte oder Zeile als Checkbox ausgegeben wird.

Wäre das irgendwie möglich?

Vielen Dank im voraus ^^

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


Re: ALV: nur eine einzige Zelle als Checkbox

Beitrag von ewx (Top Expert / 4848 / 312 / 642 ) »
Soll die Checkbox editierbar sein?
wenn nicht, dann:

Code: Alles auswählen.

REPORT.

PARAMETERS p_Test.
INCLUDE <cl_alv_control>.

INITIALIZATION.

 data(fcat) = value lvc_t_fcat(
   ( fieldname = 'DEMO'   outputlen = 20 )
   ( fieldname = 'FLAG'   outputlen = 3 ) ).
 types: begin of _struc,
          demo type c length 20,
          flag type c LENGTH 1,
          style type lvc_t_styl,
        END OF _struc,
        _tab type STANDARD TABLE OF _struc with DEFAULT KEY.

 data(outtab) = value _tab(
    ( demo = 'no checkbox'     flag = abap_false style = value #( ( fieldname = 'FLAG' style = alv_style_checkbox_no ) ) )
    ( demo = 'checkbox X'      flag = abap_True  style = value #( ( fieldname = 'FLAG' style = alv_style_checkbox_checked + alv_style_enabled ) ) )
    ( demo = 'checkbox space'  flag = abap_True  style = value #( ( fieldname = 'FLAG' style = alv_style_checkbox_not_checked ) ) ) ).

 data(grid) = new cl_gui_alv_grid( i_parent = new cl_gui_docking_Container( ratio = 80 side = 1 ) ).
 grid->set_table_for_first_display(
   EXPORTING
     is_layout       = value #( stylefname = 'STYLE' )
   CHANGING
     it_outtab           = outtab
     it_fieldcatalog               = fcat
   EXCEPTIONS
     others                        = 4 ).
SNAG-0007.png
Die eine Checkbox sieht zwar aus, als wäre sie editierbar, aber das ist nicht der Fall. Wenn man das noch möchte, dann müsste man noch das entsprechenden Ereignis ausprogrammieren:

Code: Alles auswählen.

REPORT.

PARAMETERS p_test.

CLASS app DEFINITION.
  PUBLIC SECTION.
    METHODS go.
  PRIVATE SECTION.
    INCLUDE <cl_alv_control>.
    TYPES: BEGIN OF _struc,
             demo  TYPE c LENGTH 20,
             flag  TYPE c LENGTH 1,
             style TYPE lvc_t_styl,
           END OF _struc,
           _tab TYPE STANDARD TABLE OF _struc WITH DEFAULT KEY.
    METHODS on_click FOR EVENT hotspot_click OF cl_gui_alv_grid IMPORTING e_column_id e_row_id sender.
    DATA outtab TYPE _tab.
ENDCLASS.

CLASS app IMPLEMENTATION.
  METHOD go.


    DATA(fcat) = VALUE lvc_t_fcat(
      ( fieldname = 'DEMO'   outputlen = 20 )
      ( fieldname = 'FLAG'   outputlen = 3 hotspot = abap_true ) ).

    outtab = VALUE #(
       ( demo = 'no checkbox'     flag = abap_false style = VALUE #( ( fieldname = 'FLAG' style = alv_style_checkbox_no ) ) )
       ( demo = 'checkbox X'      flag = abap_true  style = VALUE #( ( fieldname = 'FLAG' style = alv_style_checkbox_checked  ) ) )
       ( demo = 'checkbox space'  flag = abap_false style = VALUE #( ( fieldname = 'FLAG' style = alv_style_checkbox_not_checked ) ) ) ).

    DATA(grid) = NEW cl_gui_alv_grid( i_parent = NEW cl_gui_docking_container( ratio = 80 side = 1 ) ).
    grid->set_table_for_first_display(
      EXPORTING
        is_layout       = VALUE #( stylefname = 'STYLE' )
      CHANGING
        it_outtab           = outtab
        it_fieldcatalog               = fcat
      EXCEPTIONS
        OTHERS                        = 4 ).
    SET HANDLER on_click FOR grid.

  ENDMETHOD.

  METHOD on_click.

    ASSIGN outtab[ e_row_id ] TO FIELD-SYMBOL(<outline>).
    IF sy-subrc = 0.
      <outline>-flag = SWITCH #( <outline>-flag WHEN abap_true THEN abap_false ELSE abap_true ).
      <outline>-style = VALUE #( (
        fieldname = 'FLAG'
        style     = SWITCH #( <outline>-flag
          WHEN abap_true THEN alv_style_checkbox_checked
          ELSE alv_style_checkbox_not_checked ) ) ).
      sender->refresh_table_display(
          is_stable      = VALUE #( row = abap_true col = abap_true )
          i_soft_refresh = abap_true ).
    ENDIF.

  ENDMETHOD.
ENDCLASS.

INITIALIZATION.
  NEW app( )->go( ).
Dann kann man die Checkbox aber anscheinend nicht mehr auf "nicht eingabebereit" stellen. ALV_STYLE_DISABLED funktioniert dann jedenfalls nicht mehr.

Eine andere Möglichkeit wäre, dass man mit Icons arbeitet und passende Icons verwendet.

Oder ganz anders: https://tricktresor.de/blog/moderne-ui- ... -alv-grid/

Folgende Benutzer bedankten sich beim Autor ewx für den Beitrag (Insgesamt 2):
kloieTron


Seite 1 von 1

Vergleichbare Themen

12
Antw.
10793
Views
eine einzige Suchhilfe für mehrere Dynprofelder
von sapdepp » 19.06.2014 12:26 • Verfasst in Dialogprogrammierung
4
Antw.
2130
Views
ALV Zelle einfärben
von Google » 23.11.2005 13:57 • Verfasst in ABAP® Core
2
Antw.
3737
Views
ALV Zelle ausblenden
von jspranz » 25.10.2010 17:47 • Verfasst in Dialogprogrammierung
15
Antw.
11833
Views
F4 in ALV Grid Zelle
von the-FoX » 12.01.2005 11:24 • Verfasst in ABAP Objects®
2
Antw.
2044
Views
ALV - Button in Zelle
von Google » 13.02.2007 09:34 • Verfasst in ABAP® Core

Über diesen Beitrag


Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

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

Aktuelle Forenbeiträge

Trennen Strasse und Hausnummer
vor einer Stunde von DeathAndPain 14 / 10745
Dialog-Container mit Toolbar/Status
vor einer Stunde von DeathAndPain gelöst 24 / 3891
User Exit EXIT_RQCPRM10_001
vor 20 Stunden von a-dead-trousers 2 / 348
Daten an Tabelle binden
Gestern von Lukas Sanders 2 / 1400

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

Trennen Strasse und Hausnummer
vor einer Stunde von DeathAndPain 14 / 10745
Dialog-Container mit Toolbar/Status
vor einer Stunde von DeathAndPain gelöst 24 / 3891
User Exit EXIT_RQCPRM10_001
vor 20 Stunden von a-dead-trousers 2 / 348
Daten an Tabelle binden
Gestern von Lukas Sanders 2 / 1400

Unbeantwortete Forenbeiträge

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