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!!
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 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
| User | Count |
|---|---|
| 6 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |