Hello All,
I have a VALUE_TAB internal table (<b>it_mngrp_mncod</b>) with 3 fileds. After selecting a row in F4 pop up, I need to get all the three column values. In return_tab I am getting only the last field, which is the value of CODE in it_mngrp_mncod. Is there any way to select the entire row in F4 pop up?
Here is the piece of my code:
&----
*& Report ZCK_TEST
*&
REPORT zck_test.
TABLES: viqmel, viqmfe.
CALL SCREEN 101.
*& Module code_pf4_i15 INPUT
*&----
MODULE code_pf4_i15 INPUT.
DATA: BEGIN OF it_mngrp_mncod OCCURS 0,
kurztext TYPE qtxt_code,
codegruppe TYPE qcodegrp,
code TYPE qcode,
END OF it_mngrp_mncod.
DATA: it_returntab LIKE ddshretval OCCURS 0 WITH HEADER LINE.
DATA: it_fieldtab LIKE dfies OCCURS 0 WITH HEADER LINE.
DATA p_field TYPE fieldname.
GET CURSOR FIELD p_field .
PERFORM code_pf4_f40 USING p_field.
ENDMODULE. " code_pf4_i15 INPUT
*&----
*& Form code_pf4_f40
*&----
FORM code_pf4_f40 USING p_field.
PERFORM get_f4_values CHANGING p_field.
ENDFORM. " code_pf4_f40
*& Form GET_F4_VALUES
*&----
FORM get_f4_values CHANGING p_field.
DATA: field1 TYPE fieldname,
field2 TYPE fieldname.
DATA: p_katalogart TYPE qkatart.
SPLIT p_field AT '-' INTO field1 field2.
IF field2 = 'OTGRP' OR field2 = 'OTEIL'.
p_katalogart = 'B'.
ELSEIF field2 = 'FEGRP' OR field2 = 'FECOD'.
p_katalogart = 'C'.
ELSEIF field2 = 'URGRP' OR field2 = 'URCOD'.
p_katalogart = '5'.
ELSEIF field2 = 'MNGRP' OR field2 = 'MNCOD'.
p_katalogart = 'A'.
ELSEIF field2 = 'TASK_CODEGRP' OR field2 = 'TASK_CODE' OR field2 =
'TXT_TASKCD'.
p_katalogart = '2'.
ENDIF.
SELECT codegruppe code INTO CORRESPONDING FIELDS OF TABLE
it_mngrp_mncod FROM qpcd WHERE katalogart = p_katalogart.
LOOP AT it_mngrp_mncod.
SELECT SINGLE kurztext
FROM qpct
INTO it_mngrp_mncod-kurztext
WHERE katalogart = p_katalogart
AND codegruppe = it_mngrp_mncod-codegruppe
AND code = it_mngrp_mncod-code.
MODIFY it_mngrp_mncod FROM it_mngrp_mncod TRANSPORTING kurztext.
ENDLOOP.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
DDIC_STRUCTURE = ' '
retfield = p_field
PVALKEY = ' '
DYNPPROG = ' '
DYNPNR = ' '
DYNPROFIELD = ' '
STEPL = 0
WINDOW_TITLE =
VALUE = ' '
value_org = 'S'
MULTIPLE_CHOICE = ' '
DISPLAY = ' '
CALLBACK_PROGRAM = ' '
CALLBACK_FORM = ' '
MARK_TAB =
IMPORTING
USER_RESET =
TABLES
value_tab = it_mngrp_mncod
field_tab = it_fieldtab
return_tab = it_returntab
DYNPFLD_MAPPING =
EXCEPTIONS
PARAMETER_ERROR = 1
NO_VALUES_FOUND = 2
OTHERS = 3
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
READ TABLE it_returntab INDEX 1.
MOVE it_returntab-fieldval TO p_field.
ENDFORM. " GET_F4_VALUES
&----
*& Module user_command_101 INPUT
&----
text
----
MODULE user_command_101 INPUT.
CASE sy-ucomm.
WHEN 'BACK'.
LEAVE TO SCREEN 0.
ENDCASE.
ENDMODULE. " user_command_101 INPUT
&----
*& Module status_101 OUTPUT
&----
text
----
MODULE status_101 OUTPUT.
SET PF-STATUS '0101'.
ENDMODULE. " status_101 OUTPUT