‎2007 Sep 10 6:49 AM
HI after at selection on value request for p_vbeln
example.
i am giving input selection criterai
entering
material ' c2010110'
batch 'd0032'
plant '1109'.
after at selection on valuie request for p_vbeln
it shows enteires
material value space
batch value space'
plant value sapce
pls let me know wht is the wrong
the input selection entries will shows null values
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_vbeln.
SELECT * FROM lips INTO CORRESPONDING FIELDS OF TABLE p_it_values
where werks = p_werks
AND matnr = p_matnr
AND charg = p_charg
and vbeln = p_vbeln.
thanks
suma
‎2007 Sep 10 6:57 AM
Hi,
Check these code if it is usefull
Hi..
This is the Code to generate F4 help in selection screen.. modify as per ur need.
*
REPORT ZSEL_F4HELP.
*---Report with selection screen and to display the list of
possible entries for field 'B' as per the value in field 'A'.
PARAMETERS: p_vbeln TYPE vbaP-VBELN,
p_posnr TYPE vbap-posnr,
P_MATKL TYPE VBAP-MATKL.
DATA : IT_RTAB TYPE TABLE OF DDSHRETVAL WITH HEADER LINE.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_posnr.
DATA: BEGIN OF help_item OCCURS 0,
posnr TYPE vbap-posnr,
matnr TYPE vbap-matnr,
MATKL TYPE VBAP-MATKL,
END OF help_item.
DATA: dynfields TYPE TABLE OF dynpread WITH HEADER LINE.
dynfields-fieldname = 'P_VBELN'.
APPEND dynfields.
**Read the Values of the SCREEN FIELDs
CALL FUNCTION 'DYNP_VALUES_READ'
EXPORTING
dyname = sy-cprog
dynumb = sy-dynnr
translate_to_upper = 'X'
TABLES
dynpfields = dynfields
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.
**Find out the Value of P_VBELN
READ TABLE dynfields WITH KEY fieldname = 'P_VBELN'.
p_vbeln = dynfields-fieldvalue.
**Convert the Value into internal format
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = p_vbeln
IMPORTING
output = p_vbeln.
**Fetch the correponding itemnos from VBAP
SELECT posnr matnr MATKL INTO TABLE help_item
FROM vbap
WHERE vbeln = p_vbeln.
**Generate the F4 help with internal table values
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
DDIC_STRUCTURE = ' '
retfield = 'POSNR'
dynprofield = 'P_POSNR'
dynpprog = sy-cprog
dynpnr = sy-dynnr
STEPL = 0
WINDOW_TITLE =
VALUE = ' '
VALUE_ORG = 'S'
MULTIPLE_CHOICE = ' '
DISPLAY = ' '
CALLBACK_PROGRAM = ' '
CALLBACK_FORM = ' '
MARK_TAB =
IMPORTING
USER_RESET =
TABLES
VALUE_TAB = HELP_ITEM
FIELD_TAB =
RETURN_TAB = IT_RTAB
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.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'POSNR'
dynprofield = 'P_POSNR'
dynpprog = sy-cprog
dynpnr = sy-dynnr
value_org = 'S'
TABLES
value_tab = help_item.
*********************************************************
READ TABLE IT_RTAB WITH KEY RETFIELD = 'MATKL'.
IF SY-SUBRC = 0.
READ TABLE dynfields WITH KEY fieldname = 'P_MATKL'.
dynfields-fieldvalue = IT_RTAB-FIELDVAL.
MODIFY DYNFIELDS INDEX SY-TABIX
TRANSPORTING FIELDVALUE.
CALL FUNCTION 'DYNP_VALUES_UPDATE'
EXPORTING
DYNAME = SY-CPROG
DYNUMB = SY-DYNNR
TABLES
DYNPFIELDS = DYNFIELDS
EXCEPTIONS
INVALID_ABAPWORKAREA = 1
INVALID_DYNPROFIELD = 2
INVALID_DYNPRONAME = 3
INVALID_DYNPRONUMMER = 4
INVALID_REQUEST = 5
NO_FIELDDESCRIPTION = 6
UNDEFIND_ERROR = 7
OTHERS = 8
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDIF.
Reward if Helpful
‎2007 Sep 10 6:58 AM
I think you are doing validation for VBELN in at selection screen on value request
but value table for VBELN is VBUK so select the values from VBUK and validate VBELN
<b>SELECT-OPTIONS: s_inum FOR gs_vbrk-vbeln . " Invoice Number</b>
then
Validation for Invoice Number
AT SELECTION-SCREEN ON s_inum.
PERFORM sub_validate_invoice_number.
check below code for validation
&----
*& Form sub_validate_invoice_number
&----
Validation for Invoice Number
----
FORM sub_validate_invoice_number .
Validation for Invoice Number
TYPES: BEGIN OF ltt_vbeln,
vbeln TYPE vbuk-vbeln, " Invoice Number
END OF ltt_vbeln.
DATA: ls_svbeln LIKE LINE OF s_inum, " Invoice Number
ls_vbeln TYPE ltt_vbeln, " Invoice Number
ls_vbeln_n TYPE ltt_vbeln, "#EC NEEDED " Invoice Number
lt_vbeln TYPE TABLE OF ltt_vbeln, " Invoice Number
lt_vbeln_n TYPE TABLE OF ltt_vbeln. " Invoice Number
Build internal table with all values in S_INUM
IF NOT s_inum[] IS INITIAL.
LOOP AT s_inum INTO ls_svbeln.
FROM value
IF NOT ls_svbeln-low IS INITIAL.
ls_vbeln = ls_svbeln-low.
APPEND ls_vbeln TO lt_vbeln.
CLEAR ls_vbeln.
ENDIF.
TO Value
IF NOT ls_svbeln-high IS INITIAL.
ls_vbeln = ls_svbeln-high.
APPEND ls_vbeln TO lt_vbeln.
CLEAR ls_vbeln.
ENDIF.
ENDLOOP.
ENDIF.
Get data from table VBUK
IF NOT lt_vbeln[] IS INITIAL.
SORT lt_vbeln BY vbeln.
SELECT vbeln
INTO TABLE lt_vbeln_n
FROM vbuk
FOR ALL ENTRIES IN lt_vbeln
WHERE vbeln = lt_vbeln-vbeln.
IF sy-subrc <> 0.
MESSAGE e013 WITH space.
ENDIF.
SORT lt_vbeln_n BY vbeln.
Validate Invoice Number
LOOP AT lt_vbeln INTO ls_vbeln.
CLEAR ls_vbeln_n.
READ TABLE lt_vbeln_n INTO ls_vbeln_n WITH KEY vbeln = ls_vbeln-vbeln
BINARY SEARCH.
IF sy-subrc <> 0.
MESSAGE e013 WITH ls_vbeln-vbeln.
ENDIF.
ENDLOOP.
ENDIF.
ENDFORM. " sub_validate_invoice_number
Rewards if useful.....................
Minal
‎2007 Sep 10 7:05 AM
Hi suma,
Your logic is not clear with that code.
Please refer the below code, you will get a better idea of how to do it.
SELECT-OPTIONS: s_date FOR mceks-buper NO-EXTENSION.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_date-low.
*Local variable declaration
DATA: li_ret_tab TYPE STANDARD TABLE OF ddshretval,
lwa_ret_tab LIKE LINE OF li_ret_tab.
*Functional Module to provide F4 help
CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST'
EXPORTING
tabname = ' '
fieldname = ' '
searchhelp = text-028
TABLES
return_tab = li_ret_tab
EXCEPTIONS
field_not_found = 1
no_help_for_field = 2
inconsistent_help = 3
no_values_found = 4
OTHERS = 5.
IF sy-subrc IS INITIAL.
READ TABLE li_ret_tab INTO lwa_ret_tab INDEX 1.
IF sy-subrc IS INITIAL.
CONCATENATE lwa_ret_tab-fieldval6(4) lwa_ret_tab-fieldval3(2)
INTO s_date-low.
ENDIF.
ENDIF.
Regards,
Sheron