Code: Alles auswählen.
TYPES: begin of ty_material_bmo_lager,
checkbox type c LENGTh 1, "field for checkbox
include TYPE zle_bmo_material,
end of ty_material_bmo_lager.
***************************************
CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
EXPORTING
i_structure_name = 'ZLE_BMO_MATERIAL'
CHANGING
ct_fieldcat = gt_fieldcat.
gt_fieldcat = VALUE #( BASE gt_fieldcat ( fieldname = 'CHECKBOX' checkbox = 'X' edit = 'X' coltext = 'TEXT1' tooltip = 'Tooltip' seltext = 'SELTEXT' ) ).
gt_sort = VALUE #( ( fieldname = 'IDNRK' spos = 1 up = 'X') ).
gs_layout-no_toolbar = ''.
gs_layout-cwidth_opt = 'X'. "Optimized Col Width
" Display itab in ALV-Grid
go_alv->set_table_for_first_display(
EXPORTING
i_structure_name = 'ZLE_BMO_MATERIAL' " if active the FieldCatalogue is generated automatically
is_layout = gs_layout "Layout-Settings, above defined
* is_variant = gs_variant
* i_save = 'U' "Only User-sepcific , A would be Default too
CHANGING
it_fieldcatalog = gt_fieldcat
it_outtab = go_bom_stock_comp->mt_material_bmo_lager "Output table
it_sort = gt_sort
EXCEPTIONS
OTHERS = 1
).
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
Hi, also alle Versuche mit dem Feldkatalog sind gescheitert, weder Löschen aller Keys, noch Hinzufügen der Checkbox als Key noch verschieben der Checkbox hinter die Schlüssel haben zum Erfolg geführt.a-dead-trousers hat geschrieben: ↑06.05.2022 07:52Alternativ gibt es in der Sortierung auch die Möglichkeit mit GROUP eigene Gruppenstufen zu definieren. Das sieht dann aber etwas anders aus.
Hier ein Beispiel (Screenshot) dazu: https://sgstocks.tripod.com/alvgrid_control.htm
Alles klar, danke dir für die Hilfe, das ist zwar per Definiton nicht die Lösung, aber zumindest die richtige Antwort auf meine Frage 😊a-dead-trousers hat geschrieben: ↑06.05.2022 13:04Wenn man das ALV auf "Editierbar" schaltet und dafür reicht, glaube ich, nur eine Spalte, war es das mit der Gruppierung.
Code: Alles auswählen.
"go_alv type ref to cl_gui_alv_grid
"Otherwise no filled Checkboxes are visible
IF NOT go_alv IS INITIAL.
CALL METHOD go_alv->check_changed_data .
ENDIF.
Du könntest die Gruppierung quasi selbst programmieren, wenn du die OK-Codes, die die Ausgabe beeinflussen abfängst . Da fallen mir z.B. die beiden Sortierbuttons und die Filter direkt ein.der_neuling hat geschrieben: ↑05.05.2022 16:56Nun allerdings verschwindet diese Gruppierung bei den Materialnummern:
Hat da jemand eine Idee wie ich beides unter einen Hut bekomme?
Nein der Aufwand wäre vermutlich tatsächlich zu hoch.black_adept hat geschrieben: ↑09.05.2022 12:51Aber ob das den Aufwand wert ist wage ich zu bezweifeln.
Code: Alles auswählen.
Code: Alles auswählen.
REPORT zknobel_xstring.
INCLUDE <cl_alv_control>.
CLASS lcl DEFINITION FINAL.
PUBLIC SECTION.
TYPES: BEGIN OF mts_data,
box TYPE char1,
line TYPE text10,
t_style TYPE lvc_t_styl,
END OF mts_data.
METHODS:
main,
get_fcat RETURNING VALUE(rt_fcat) TYPE lvc_t_fcat,
handle_hotspot_click FOR EVENT hotspot_click OF cl_gui_alv_grid IMPORTING es_row_no sender.
DATA: mt_data TYPE STANDARD TABLE OF mts_data WITH NON-UNIQUE DEFAULT KEY.
ENDCLASS.
END-OF-SELECTION.
NEW lcl( )->main( ).
CLASS lcl IMPLEMENTATION.
METHOD main.
DO 10 TIMES.
APPEND VALUE #( line = sy-index DIV 3 ) TO me->mt_data ASSIGNING FIELD-SYMBOL(<ls_data>).
APPEND VALUE #( fieldname = 'BOX'
style = alv_style_checkbox_not_checked
) TO <ls_data>-t_style.
ENDDO.
DATA(lt_fcat) = me->get_fcat( ).
DATA(lo_grid) = NEW cl_gui_alv_grid( i_parent = cl_gui_container=>screen0 ).
SET HANDLER me->handle_hotspot_click FOR lo_grid.
lo_grid->set_table_for_first_display(
EXPORTING
is_layout = VALUE #( stylefname = 'T_STYLE'
)
CHANGING
it_outtab = me->mt_data
it_fieldcatalog = lt_fcat " Field Catalog
EXCEPTIONS
invalid_parameter_combination = 1 " Wrong Parameter
program_error = 2 " Program Errors
too_many_lines = 3 " Too many Rows in Ready for Input Grid
OTHERS = 4
).
ASSERT sy-subrc = 0.
WRITE '.'.
ENDMETHOD.
METHOD get_fcat.
APPEND VALUE #( fieldname = 'BOX'
hotspot = 'X'
) TO rt_fcat.
APPEND VALUE #( fieldname = 'LINE'
) TO rt_fcat.
ENDMETHOD.
METHOD handle_hotspot_click.
READ TABLE me->mt_data ASSIGNING FIELD-SYMBOL(<ls_data>) INDEX es_row_no-row_id.
CHECK sy-subrc = 0.
CLEAR <ls_data>-t_style.
IF <ls_data>-box = 'X'.
<ls_data>-box = space.
APPEND VALUE #( fieldname = 'BOX'
style = alv_style_checkbox_not_checked
) TO <ls_data>-t_style.
ELSE.
<ls_data>-box = 'X'.
APPEND VALUE #( fieldname = 'BOX'
style = alv_style_checkbox_checked
) TO <ls_data>-t_style.
ENDIF.
sender->refresh_table_display( EXPORTING
is_stable = VALUE #( row = 'X' col = 'X' )
* i_soft_refresh = i_soft_refresh " Without Sort, Filter, etc.
EXCEPTIONS
finished = 1 " Display was Ended (by Export)
OTHERS = 2
).
ENDMETHOD.
ENDCLASS.