Application Development and Automation 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: 
Read only

F4IF_INT_TABLE_VALUE_REQUEST

Former Member
0 Likes
1,190

Hi,

I want to do as follows.

I have 2 parameters on selection screen P1 and P2.

If i hit F4 on P1 it brings value list with 2 columns. I want to fill parameter P1 with C1 value and P2 with C2 value when i select any row in the list. I am just wondering to know how it can be done using the following FM.

F4IF_INT_TABLE_VALUE_REQUEST. I appreciate your response.

Thanks

Raj

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,139

Hi,

I think you know everything........Better try at your end and come with the Problem.

Follow this

http://help.sap.com/saphelp_nw2004s/helpdata/EN/9f/dbaac935c111d1829f0000e829fbfe/content.htm

You would be writing your all code in the PAI

7 REPLIES 7
Read only

Former Member
0 Likes
1,140

Hi,

I think you know everything........Better try at your end and come with the Problem.

Follow this

http://help.sap.com/saphelp_nw2004s/helpdata/EN/9f/dbaac935c111d1829f0000e829fbfe/content.htm

You would be writing your all code in the PAI

Read only

0 Likes
1,139

Hi,

Problem is i could able to pass only one value. ex C1 to P1 but not C2 to P2.

Thx for your response.

Raj

Read only

0 Likes
1,139

Hi

on selection of F4 help for P1, the value C1 and C2 will be stored in memory separated by space as shown below import from memory split record_tab at space into C1 and C2 , remove leading zeros from C2 and call FM-DYNP_VALUES_UPDATE preparing DYNPFIELDS as .....

fill fieldname as P2, field value as C2.

record_tab is a internal table.

IMPORT record_tab FROM MEMORY ID 'mcx_record_tab'.

Edited by: Lavanya K on May 6, 2009 7:27 AM

Read only

0 Likes
1,139

Hi,

Check this code...

PARAMETES : p_werks type ...
PARAMETES : p_plnnr type ....
PARAMETES : p_plnal type....
 
 
AT SELECTION-SCREEN ON P_PLNNR.
 


  data:
    lg_condition    type string.

  data:
     lwa_ddshretval type ddshretval,
     lwa_dselc      type dselc,
     lwa_dynpread   type dynpread.
  data:
     li_f4_insp     type standard table of t_f4_insp,
     li_ddshretval  type standard table of ddshretval,
     li_dselc       type standard table of dselc,
     li_dynpread    type standard table of dynpread.


  lwa_dynpread-fieldname = 'P_WERKS'.
  append lwa_dynpread to li_dynpread.
  clear lwa_dynpread.
* Read Screen Field Values.
  call function 'DYNP_VALUES_READ'
    exporting
      dyname     = sy-repid
      dynumb     = sy-dynnr
    tables
      dynpfields = li_dynpread.

* Read the first record as only one record will be present
  read table li_dynpread into lwa_dynpread index 1.
  p_werks = lwa_dynpread-fieldvalue.

  if p_werks is initial.
    move 'PLNTY EQ ''Q''' to lg_condition.
  else.
    move 'WERKS EQ P_WERKS AND PLNTY EQ ''Q''' to lg_condition.
  endif.

* Fetch Data
  select werks
         plnnr
         plnal
         plnty
         ktext
    into table li_f4_insp
    from plko
    where (lg_condition).

  lwa_dselc-fldname = 'F0002'.
  lwa_dselc-dyfldname = 'PLNNR'.
  append lwa_dselc to li_dselc.
  clear lwa_dselc.
  lwa_dselc-fldname = 'F0003'.
  lwa_dselc-dyfldname = 'PLNAL'.
  append lwa_dselc to li_dselc.
  clear lwa_dselc.
* FM For F4 Help
  call function 'F4IF_INT_TABLE_VALUE_REQUEST'
    exporting
      retfield        = 'PLNNR'
      dynpprog        = sy-cprog
      dynpnr          = sy-dynnr
      dynprofield     = 'PLNNR'
      value_org       = 'S'
    tables
      value_tab       = li_f4_insp
      return_tab      = li_ddshretval
      dynpfld_mapping = li_dselc
    exceptions
      parameter_error = 1
      no_values_found = 2
      others          = 3.

  if sy-subrc eq 0.
    refresh li_dynpread.
    read table li_ddshretval into lwa_ddshretval index 1.
    if sy-subrc eq 0.
      move lwa_ddshretval-fieldval to p_plnnr.
      lwa_dynpread-fieldname = 'P_PLNNR'.
      lwa_dynpread-fieldvalue = lwa_ddshretval-fieldval.
      append lwa_dynpread to li_dynpread.
      clear lwa_dynpread.
    endif.                             " IF sy-subrc EQ 0.
    read table li_ddshretval into lwa_ddshretval index 2.
    if sy-subrc eq 0.
      move lwa_ddshretval-fieldval to p_plnal.
      lwa_dynpread-fieldname = 'P_PLNAL'.
      lwa_dynpread-fieldvalue = lwa_ddshretval-fieldval.
      append lwa_dynpread to li_dynpread.
      clear lwa_dynpread.
    endif.                             " IF sy-subrc EQ 0.
  endif.                               " IF sy-subrc EQ 0.

* Set Screen Field Values.
  call function 'DYNP_VALUES_UPDATE'
    exporting
      dyname               = sy-repid
      dynumb               = sy-dynnr
    tables
      dynpfields           = li_dynpread
    exceptions
      invalid_abapworkarea = 1
      invalid_dynprofield  = 2
      invalid_dynproname   = 3
      invalid_dynpronummer = 4
      invalid_request      = 5
      no_fielddescription  = 6
      undefind_error       = 7
      others               = 8.

Read only

Former Member
0 Likes
1,139

Hi,

Use the following code as per ur requirement. Give the select query according to ur requirement.

DATA: BEGIN OF INTTAB OCCURS 10,

CODE LIKE QPCT-CODE,

KURZTEXT LIKE QPCT-KURZTEXT,

END OF INTTAB.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR CODE-LOW.

SELECT CODE KURZTEXT FROM QPCT INTO TABLE INTTAB WHERE CODEGRUPPE = 'QCREMARK'.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

RETFIELD = 'CODE'

DYNPPROG = SY-CPROG

DYNPNR = SY-DYNNR

DYNPROFIELD = 'CODE-LOW'

WINDOW_TITLE = 'Select Quality Remark Code'

VALUE_ORG = 'S'

TABLES

VALUE_TAB = inttab

EXCEPTIONS

PARAMETER_ERROR = 1

NO_VALUES_FOUND = 2

OTHERS = 3.

Read only

Former Member
0 Likes
1,139

at selection-screen on value-request for p1.

perform f4_p1.

form f4_p1.

refresh it_p1.

select c1 from table

into corresponding fields of table it_p1.

call function 'F4IF_INT_TABLE_VALUE_REQUEST'

exporting

retfield = 'Ref field of P1 parameter'

dynpprog = sy-repid

dynpnr = '1000'

dynprofield = 'P1'

value_org = 'S'

tables

value_tab = it_p1.

endform.

Hope this helps.

Vidhi

Read only

0 Likes
1,139

Thanks for responses. It is working.