‎2008 Jun 03 7:56 AM
hi all,
i have 2 fields on my selection screen my requirement is when i press f4 for 1st field and choose the value
my second field should get populated by the corresponding value.
any idea about it will be great!!
‎2008 Jun 03 7:58 AM
hi there....
in the PAI module, use on help request module. then inside the module, write code to populate the fields required.
reward if helpful or get bak with further issues.
‎2008 Jun 03 8:07 AM
HI.
refer this code.
PARAMETERS p_field1 TYPE lips-vbeln.
PARAMETERS p_field2 TYPE likp-lifnr.
Write code to get f4 help for field1.
then
Select lifnr from likp into p_field2 where vbeln = p_field1.
Reward all helpfull answers.
Regards.
Jay
‎2008 Jun 03 8:20 AM
Hi Bhanu,
for this two fields create a elementary search (tick mark the import and export parameters) in SE11.
attach this search help to the Table .
and in ur report program use that table fields in ur selection screen.
and when u chose the value for first field the second field will be populated with the data.
reward if helpful,
Thanks
S.Gangi reddy
‎2008 Jun 03 8:26 AM
Hi bhanu
create a elementary search help for this two fileds (check both the export parameters of this two fields).
assign this search help to the Table .
in your report program selection screen use this table fileds.
u will get ur desired output,
reward if helpful,
Thanks,
S.Gangi reddy.
‎2008 Jun 03 8:27 AM
On value request for the second field you have to read the selection screen using the FM DYNP_VALUES_READ. and perform a select query on the table which contains the values for the second field depending on the first one and display it using value help FM F4IF_INT_TABLE_VALUE_REQUEST.
Reward if helpful
‎2008 Jun 03 8:30 AM
use the below fm after AT SELECTION-SCREEN ON VALUE-REQUEST
F4IF_INT_TABLE_VALUE_REQUEST
Thanks and regards
‎2008 Jun 03 8:34 AM
hi bhanu,
it can be done as said by satti by using elementary search help
or it can be done using the
event at selection on value-request on field.
and the fm F4IF_INT_TABLE_VALUE_REQUEST
eq code for it
this example gets the document type and creating date based on the document number
**********************************************************************************************************************************************
*TO GET THE DOCUMENT TYPE AND CREATION DATE BASED ON THE PURCHASE DOCUMENT NO
********************************************************************************************************************************************
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_DOC.
CHECK NOT SO_DOC IS INITIAL.
SELECT BSART FROM EKKO INTO TABLE I_TYP
WHERE EBELN IN SO_DOC.
SORT I_TYP BY BSART.
DELETE ADJACENT DUPLICATES FROM I_TYP.
CLEAR:VALUE_TAB,FIELD_TAB,RETURN_TAB.
REFRESH:VALUE_TAB,FIELD_TAB,RETURN_TAB.
FIELD_TAB-FIELDNAME = 'BSART'.
FIELD_TAB-TABNAME = 'EKKO'.
APPEND FIELD_TAB.
LOOP AT I_TYP.
VALUE_TAB-BSART = I_TYP-BSART.
APPEND VALUE_TAB.
ENDLOOP.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = FIELD_TAB-FIELDNAME
TABLES
VALUE_TAB = VALUE_TAB
FIELD_TAB = FIELD_TAB
RETURN_TAB = RETURN_TAB
EXCEPTIONS
PARAMETER_ERROR = 1
NO_VALUES_FOUND = 2
OTHERS = 3.
IF SY-SUBRC = 0.
P_DOC = RETURN_TAB-FIELDVAL.
ENDIF.
***********************************************************************************************************************************************
* TO GET THE CREATION DATE BASED ON THE PURCHASE DOCUMENT NO
*********************************************************************************************************************************************
AT SELECTION-SCREEN ON VALUE-REQUEST FOR SO_DATE-LOW.
CHECK NOT SO_DOC IS INITIAL.
SELECT AEDAT FROM EKKO INTO TABLE I_DATE
WHERE EBELN IN SO_DOC.
SORT I_DATE BY AEDAT.
DELETE ADJACENT DUPLICATES FROM I_DATE.
CLEAR:VALUE_TAB1,FIELD_TAB,RETURN_TAB.
REFRESH: VALUE_TAB1,FIELD_TAB,RETURN_TAB.
FIELD_TAB-FIELDNAME = 'AEDAT'.
FIELD_TAB-TABNAME = 'EKKO'.
APPEND FIELD_TAB.
LOOP AT I_DATE.
VALUE_TAB1-AEDAT = I_DATE-AEDAT.
APPEND VALUE_TAB1.
ENDLOOP.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = FIELD_TAB-FIELDNAME
TABLES
VALUE_TAB = VALUE_TAB1
FIELD_TAB = FIELD_TAB
RETURN_TAB = RETURN_TAB
EXCEPTIONS
PARAMETER_ERROR = 1
NO_VALUES_FOUND = 2
OTHERS = 3.
CALL FUNCTION 'CONVERSION_EXIT_PDATE_INPUT'
EXPORTING
INPUT = RETURN_TAB-FIELDVAL
IMPORTING
OUTPUT = RETURN_TAB-FIELDVAL.
IF SY-SUBRC = 0.
SO_DATE-LOW = RETURN_TAB-FIELDVAL.
ENDIF.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR SO_DATE-HIGH.
CHECK NOT SO_DOC IS INITIAL.
SELECT AEDAT FROM EKKO INTO TABLE I_DATE
WHERE EBELN IN SO_DOC.
SORT I_DATE BY AEDAT.
DELETE ADJACENT DUPLICATES FROM I_DATE.
CLEAR:VALUE_TAB1,FIELD_TAB,RETURN_TAB.
REFRESH: VALUE_TAB1,FIELD_TAB,RETURN_TAB.
FIELD_TAB-FIELDNAME = 'AEDAT'.
FIELD_TAB-TABNAME = 'EKKO'.
APPEND FIELD_TAB.
LOOP AT I_DATE.
VALUE_TAB1-AEDAT = I_DATE-AEDAT.
APPEND VALUE_TAB1.
ENDLOOP.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = FIELD_TAB-FIELDNAME
TABLES
VALUE_TAB = VALUE_TAB1
FIELD_TAB = FIELD_TAB
RETURN_TAB = RETURN_TAB
EXCEPTIONS
PARAMETER_ERROR = 1
NO_VALUES_FOUND = 2
OTHERS = 3.
IF SY-SUBRC = 0.
SO_DATE-HIGH = RETURN_TAB-FIELDVAL.
ENDIF.
********************************************************************************************************************************************
* INITIALIZATION OF VALUES
********************************************************************************************************************************************
INITIALIZATION.
SO_DOC-LOW = '3000000004'.
SO_DOC-HIGH = '6000000004'.
SO_DOC-OPTION = 'BT'.
SO_DOC-SIGN = 'I'.
APPEND SO_DOC.PLEASE REWARD POINTS IF HELPFUL