Code: Alles auswählen.
* Komponenten instanziieren
DATA lo_cmp_usage TYPE REF TO if_wd_component_usage.
lo_cmp_usage = wd_this->wd_cpuse_usg_alv( ).
IF lo_cmp_usage->has_active_component( ) IS INITIAL.
lo_cmp_usage->create_component( ).
ENDIF.
* Modelle holen
DATA lo_interfacecontroller TYPE REF TO iwci_salv_wd_table .
lo_interfacecontroller = wd_this->wd_cpifc_usg_alv( ).
DATA lo_value TYPE REF TO cl_salv_wd_config_table.
lo_value = lo_interfacecontroller->get_model(
).
DATA: l_table_settings TYPE REF TO if_salv_wd_table_settings .
l_table_settings ?= lo_value.
wd_this->l_table = l_table_settings .
* auf editierbar setzten
l_table_settings->set_read_only( abap_false ).
* Tabellenüberschrift setzen
DATA: l_header TYPE REF TO cl_salv_wd_header.
l_header = l_table_settings->get_header( ).
l_header->set_text( 'Sales Orders' ).
DATA: l_column_settings TYPE REF TO if_salv_wd_column_settings.
l_column_settings ?= lo_value.
DATA: lt_columns TYPE salv_wd_t_column_ref ,
ls_columns TYPE salv_wd_s_column_ref .
DATA: l_column_header TYPE REF TO cl_salv_wd_column_header .
* Spalten holen
lt_columns = l_column_settings->get_columns( ) .
* pro Spalte, Beschriftung setzten.
LOOP AT lt_columns INTO ls_columns .
CASE ls_columns-id .
WHEN 'VBELN' .
l_column_header = ls_columns-r_column->get_header( ) .
l_column_header->set_ddic_binding_field(
if_salv_wd_c_column_settings=>ddic_bind_none ) .
l_column_header->set_text( 'Bestellung' ). " column header
WHEN 'POSNR'.
l_column_header = ls_columns-r_column->get_header( ) .
l_column_header->set_ddic_binding_field(
if_salv_wd_c_column_settings=>ddic_bind_none ) .
l_column_header->set_text( 'Pos. Nr' ) . "column header
WHEN 'ZMENG'.
l_column_header = ls_columns-r_column->get_header( ) .
l_column_header->set_ddic_binding_field(
if_salv_wd_c_column_settings=>ddic_bind_none ) .
l_column_header->set_text( 'Menge' ). "column header
WHEN OTHERS .
ls_columns-r_column->set_visible(
cl_wd_uielement=>e_visible-none ) .
ENDCASE .
ENDLOOP.
Code: Alles auswählen.
DATA: help_object TYPE REF TO cl_gui_alv_grid,
help_object2 TYPE REF TO cl_gui_alv_grid,
help_container TYPE REF TO cl_gui_custom_container,
help_container2 TYPE REF TO cl_gui_custom_container,
t_table TYPE TABLE OF ZGUI_UMSATZ,
t_spfli TYPE TABLE OF SPFLI,
ok_code LIKE sy-ucomm.
Code: Alles auswählen.
START-OF-SELECTION.
select * from ZGUI_UMSATZ into table t_table.
select * from spfli into table t_spfli.
call screen 100.
*&---------------------------------------------------------------------*
*& Module status_0100 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
set PF-STATUS 'SCREEN_100'.
ENDMODULE. " status_0100 OUTPUT
MODULE init_Controls OUTPUT.
if help_container is initial.
create object help_container
exporting container_name = 'CCCONTAINER'.
create object help_object
exporting i_parent = help_container.
CALL METHOD help_object->set_table_for_first_display
exporting i_structure_name = 'ZGUI_UMSATZ'
changing it_outtab = t_table.
endif.
if help_container2 is initial.
create object help_container2
exporting container_name = 'CCCONTAINER2'.
create object help_object2
exporting i_parent = help_container2.
CALL METHOD help_object2->set_table_for_first_display
exporting i_structure_name = 'spfli'
changing it_outtab = t_spfli.
endif.
ENDMODULE. " status_0100 OUTPUT
module handle_input input.
if ok_code = 'EXIT'.
leave program.
endif.
clear ok_code.
endmodule.
1. SAP ist manchmal doch CASE-SENSITIV. Wenn du wie oben etwas als Literal übergibst, muss das Literal in UPPER CASE sein, also 'SPFLI'.Mondhund76 hat geschrieben:Mit dem Ergebnis, dass in der Darstellung die Tabell ZGUI_Umsatz ohne Spaltenüberschrift angezeigt wird und die vorgegebene Tabelle von SAP "spfli" mit Spaltenüberschrift.Code: Alles auswählen.
CALL METHOD help_object2->set_table_for_first_display exporting i_structure_name = 'spfli' changing it_outtab = t_spfli.
Liegt es an der Tabellendefinition?
zu 1. habe ich verstanden und entsprechend angepasst1. SAP ist manchmal doch CASE-SENSITIV. Wenn du wie oben etwas als Literal übergibst, muss das Literal in UPPER CASE sein, also 'SPFLI'.
2. Der ALV-Grid hat einen internen Buffer für den Feldkatalog, dieser führt evtl. zu Fehlern. Versuch mal den Parameter BYPASS_BUFFER mit 'X' vorzubelegen, hilft manchmal.
3. Hast du bei den Datenelemente nur den Kurztext gepflegt oder auch die Feldbezeichner?
4. Starte mal den ALV-Selbsttest: SHIFT + doppelklick Rechtemaustaste auf den grauen Hintergrund des ALV-Grids.