Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Facing problem in populating a output field only

Former Member
0 Kudos

Hi,

I have created two fields on the screen with names code and description. My requirement is to get F4 help on code field and on selecting value from the popup, the description field as well should filled. I am using FM 'MD_POPUP_SHOW_INTERNAL_TABLE' to get a popup. The popup I am getting is alright as it is showing values for both columns i.e. code and its description. But anyhow when I select a value from the popup list, code field gets filled but the other field remains empty.

I even debugged the program, and there I found that control is assinging values to both fields, but its not showing on screen for description field.

Need help.

Thanks,

Ram

2 REPLIES 2

jayanthi_jayaraman
Active Contributor
0 Kudos

Hi,

Check this function module MD_SHOW_PLANNING_REQUESTS.It is using that function module.

Check this code.May be it can help you.

----


  • Tables Declaration

----


tables : vbap. " Sales Document: Item Data

----


  • Constant Declaration *

----


CONSTANTS:

C_X TYPE C VALUE 'X'. " Translate to Uppercase

----


  • Variable Declaration *

----


  • Variable for Table index

data v_sytabix like sy-tabix.

  • Variable for Program name

data L_NAME LIKE SYST-REPID.

----


  • Ranges Declaration *

----


  • Range for getting values form selection screen

DATA: BEGIN OF range1 OCCURS 0,

SIGN(1),

OPTION(2),

LOW LIKE vbap-vbeln,

high like vbap-vbeln,

END OF range1.

----


  • Structure Declaration *

----


----


  • Internal table Declaration *

----


  • Internal table for Report output

data: begin of i_vbap occurs 0,

vbeln like vbap-vbeln, " Sales Document

posnr like vbap-posnr, " Sales Document item

end of i_vbap.

  • Internal table for output to the F4 help

data: begin of I_DISPLAY occurs 0,

vbeln like vbap-vbeln, " Sales Document

posnr like vbap-posnr, " Sales Document item

end of I_DISPLAY.

  • Internal table for return value form function module

DATA: BEGIN OF I_RETURNVAL OCCURS 0.

INCLUDE STRUCTURE DDSHRETVAL. " Interface Structure Search

DATA: END OF I_RETURNVAL.

  • Internal table for F4 help field heading

DATA: I_FIELDTAB LIKE DFIES OCCURS 0 WITH HEADER LINE.

  • Internal table for getting screen values from selection screen

data L_SCR_FIELDS LIKE DYNPREAD OCCURS 1 WITH HEADER LINE.

----


  • Field-Symbols *

----


----


  • Selection-screen *

----


SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME title text-001.

select-options:

S_VBELN for vbap-vbeln no intervals,

S_POSNR for vbap-posnr no intervals.

SELECTION-SCREEN end OF BLOCK B1.

----


  • AT SELECTION-SCREEN ON VALUE-REQUEST *

----


at selection-screen on value-request for s_posnr-low.

clear: L_SCR_FIELDS, I_FIELDTAB, i_display, I_RETURNVAL.

refresh: L_SCR_FIELDS, I_FIELDTAB, i_display, I_RETURNVAL.

L_NAME = SYST-REPID.

MOVE 'S_VBELN-LOW' TO L_SCR_FIELDS-FIELDNAME.

APPEND L_SCR_FIELDS.

  • Call the Function module DYNP_VALUES_READ to get the values form

  • selection screen

CALL FUNCTION 'DYNP_VALUES_READ'

EXPORTING

DYNAME = L_NAME

DYNUMB = SYST-DYNNR

TRANSLATE_TO_UPPER = C_X " X

TABLES

DYNPFIELDS = L_SCR_FIELDS

EXCEPTIONS

INVALID_ABAPWORKAREA = 1

INVALID_DYNPROFIELD = 2

INVALID_DYNPRONAME = 3

INVALID_DYNPRONUMMER = 4

INVALID_REQUEST = 5

NO_FIELDDESCRIPTION = 6

INVALID_PARAMETER = 7

UNDEFIND_ERROR = 8

DOUBLE_CONVERSION = 9

STEPL_NOT_FOUND = 10

OTHERS = 11

.

IF SY-SUBRC eq 0.

LOOP AT L_SCR_FIELDS.

range1-sign = 'I'.

range1-option = 'EQ'.

range1-low = L_SCR_FIELDS-FIELDVALUE.

range1-high = space.

append range1.

ENDLOOP.

ENDIF.

  • F4 help Field headings

I_FIELDTAB-TABNAME = 'I_DISPLAY'.

I_FIELDTAB-FIELDNAME = 'VBELN'.

I_FIELDTAB-POSITION = '1'.

I_FIELDTAB-OUTPUTLEN = '10'.

I_FIELDTAB-INTTYPE = 'C'.

I_FIELDTAB-INTLEN = '10'.

APPEND I_FIELDTAB.

I_FIELDTAB-FIELDNAME = 'POSNR'.

I_FIELDTAB-POSITION = '2'.

I_FIELDTAB-OFFSET = '10'.

I_FIELDTAB-OUTPUTLEN = '6'.

I_FIELDTAB-INTTYPE = 'N'.

I_FIELDTAB-INTLEN = '6'.

APPEND I_FIELDTAB.

  • Retrieve sales document, Sales document item from table Sales

  • Document: Item Data(VBAP).

  • Primary keys used for selection: VBELN

select vbeln posnr from vbap

into table i_display

where vbeln in range1.

  • Call the function module F4IF_INT_TABLE_VALUE_REQUEST for F4 values

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

RETFIELD = 'POSNR'

WINDOW_TITLE = 'Line Item'

VALUE_ORG = 'S'

MULTIPLE_CHOICE = C_X " (for muliple selection)

TABLES

VALUE_TAB = I_DISPLAY

FIELD_TAB = I_FIELDTAB

RETURN_TAB = I_RETURNVAL

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.

ELSE.

  • Star for For single values

  • READ TABLE I_RETURNVAL INDEX 1.

  • S_POSNR-LOW = I_RETURNVAL-FIELDVAL.

  • End for the single values

  • Start For multiple selection

loop at i_returnval.

s_posnr-sign = 'I'.

s_posnr-option = 'EQ'.

s_posnr-low = I_RETURNVAL-FIELDVAL.

append s_posnr.

endloop.

sort s_posnr.

read table s_posnr index 1.

  • End for multiple selection

ENDIF.

----


  • Start-of-selection *

----


start-of-selection.

  • Retrieve sales document, Sales document item from table Sales

  • Document: Item Data(VBAP).

  • Primary keys used for selection: VBELN

select vbeln posnr from vbap

into table i_vbap

where vbeln in s_vbeln

and posnr in s_posnr.

  • if the above selection is successful continue the process else exit *

  • form the report

if sy-subrc ne 0.

  • message e002 with 'No data to display'.

endif.

----


  • End-of-selection *

----


end-of-selection.

if not i_vbap[] is initial.

loop at i_vbap.

write:/ i_vbap-vbeln, i_vbap-posnr.

endloop.

endif.

Former Member
0 Kudos

Have a look at:

where it explains how to use function DYNP_VALUES_UPDATE to write other values back to the screen in such a situation.