Hallo zusammen,
vorab muss ich erst mal sagen, das ich ein absoluter Newbie bin auf dem Gebiet der ABAP-Programmierung. Also bitte nicht böse sein, wenn ich doofe Fragen stelle
Ich muss für das Studium ein Programm in ABAP schreiben.
Nun habe ich schon ein TableControl angelegt, und, oh Wunder, es auch gefüllt bekommen. Jetzt möchte ich gerne mit der Markierspalte und einem button arbeiten.
Also wenn ich in der Tabelle die Zeile XY markiere, und dann auf einen Button drücke, woll er mir die Artikelnummer (Spalte 3 im TableControl) in ein Eingabefeld schreiben welches über der Tabelle ist.
Unten seht ihr den Code vom ABAP-Programm und den Code aus dem Dynpro. Ich hoffe euch reichen die Aussagen um zu verstehen was ich möchte
Würde mich freuen wenn mir jemand ein paar Tipps geben könnte, wie ich die aktuell Markierte Zeile auslesen kann.
*&---------------------------------------------------------------------*
*& Report ZTEST2 *
*& *
*&---------------------------------------------------------------------*
*& *
*& *
*&---------------------------------------------------------------------*
REPORT ztest2.
TABLES: zregal, zartikel, ZREGALARTIKEL.
DATA: zregal_tab2 type table of zregalartikel.
SELECT * FROM zregalartikel into CORRESPONDING FIELDS OF TABLE zregal_tab2.
*----------------------------------------------------------------------*
* CLASS applicatoin DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS application DEFINITION.
PUBLIC SECTION.
METHODS: constructor,
read_data IMPORTING l_regalnr TYPE zregalartikel-zregalnr,
fill_list.
PRIVATE SECTION.
DATA: zregal_tab TYPE TABLE OF ZREGALARTIKEL,
container TYPE REF TO cl_gui_custom_container,
alv_list TYPE REF TO cl_gui_alv_grid.
ENDCLASS. "applicatoin DEFINITION
*----------------------------------------------------------------------*
* CLASS application IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS application IMPLEMENTATION.
* CREATE OBJECT container
* EXPORTING
* PARENT =
* container_name =
* STYLE =
* LIFETIME = lifetime_default
* REPID =
* DYNNR =
* NO_AUTODEF_PROGID_DYNNR =
* EXCEPTIONS
* CNTL_ERROR = 1
* CNTL_SYSTEM_ERROR = 2
* CREATE_ERROR = 3
* LIFETIME_ERROR = 4
* LIFETIME_DYNPRO_DYNPRO_LINK = 5
* others = 6
.
* IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
* ENDIF.
METHOD constructor.
CREATE OBJECT container EXPORTING container_name = 'LIST_AREA'.
CREATE OBJECT alv_list EXPORTING i_parent = container.
CALL METHOD alv_list->set_table_for_first_display
EXPORTING i_structure_name = 'ZREGALArtikel'
CHANGING it_outtab = zregal_tab2.
ENDMETHOD. "constructor
METHOD fill_list.
CALL METHOD alv_list->refresh_table_display.
ENDMETHOD. "fill_list
METHOD read_data.
SELECT *
FROM ZREGALARTIKEL
INTO TABLE zregal_tab2.
* WHERE zregalnr = l_regalnr.
ENDMETHOD. "read_data
ENDCLASS. "application IMPLEMENTATION
DATA object_ref TYPE REF TO application.
*PARAMETERS ZARTIKEL-ARTNR type int1 default '1'.
*PARAMETERS input(16) TYPE c DEFAULT 'hello world'.
START-OF-SELECTION.
CREATE OBJECT object_ref.
CALL SCREEN 101.
MODULE read_table_control INPUT.
* MODIFY zregal_tab2 FROM Zregalartikel INDEX ztabconart.
ENDMODULE.
*Dialog Module PBO
MODULE status_0101 OUTPUT.
SET PF-STATUS 'SCREEN_101'.
CALL METHOD object_ref->fill_list.
ENDMODULE. "status_0101 OUTPUT
*Dialog Module PAI
MODULE user_command_0101 INPUT.
IF sy-ucomm = 'BACK' OR
sy-ucomm = 'EXIT' OR
sy-ucomm = 'CANCEL'.
LEAVE PROGRAM.
ELSE.
If sy-ucomm = 'A001'.
zartikel-artnr = '200'.
LOOP AT zregal_tab2 INTO zregalartikel WHERE mark = 'X'.
zartikel-artnr = zregalartikel-zartnr.
ENDLOOP.
endif.
If sy-ucomm = 'A002'.
zartikel-artnr = '3'.
endif.
CALL METHOD object_ref->read_data
EXPORTING l_regalnr = ZREGALArtikel-ZREGALNR.
ENDIF.
ENDMODULE. "user_command_0101 INPUT
*&spwizard: declaration of tablecontrol 'ZTABCONART' itself
controls: ZTABCONART type tableview using screen 0101.
*&spwizard: output module for tc 'ZTABCONART'. do not change this line!
*&spwizard: update lines for equivalent scrollbar
module ZTABCONART_change_tc_attr output.
describe table zregal_tab2 lines ZTABCONART-lines.
endmodule.
INCLUDE ZTEST2_CANCELI01.
--------------------Dynpro------------------------------
PROCESS BEFORE OUTPUT.
MODULE status_0101.
LOOP AT zregal_tab2 INTO zregalartikel WITH CONTROL ztabconart.
ENDLOOP.
PROCESS AFTER INPUT.
MODULE cancel AT EXIT-COMMAND.
LOOP AT zregal_tab2.
MODULE read_table_control.
ENDLOOP.
MODULE user_command_0101.
DANKE DANKE DANKE