Hi all
In the code below am debugging at the select statement.I can see both my values of p_gjahr and p_bukrs but the field s_belnr is not showeing any value though i gave a input range in the input screen.I also tried using the START-OF-SELECTION but its not working.Please help.
Vijay
REPORT ZABAP9.
TABLES:BKPF.
TYPES:BEGIN OF t_bkpf ,
usnam type BKPF-USNAM,
belnr TYPE BKPF-belnr,
END OF t_bkpf.
DATA : t_return TYPE STANDARD TABLE OF ddshretval WITH HEADER LINE.
DATA:it_bkpf TYPE STANDARD TABLE OF t_bkpf WITH HEADER LINE.
PARAMETERS : P_BUKRS TYPE BKPF-BUKRS OBLIGATORY.
PARAMETERS : P_GJAHR TYPE BKPF-GJAHR OBLIGATORY.
DATA:belnr TYPE bkpf-belnr.
SELECT-OPTIONS : s_belnr FOR bkpf-belnr.
PARAMETERS : P_USNAM TYPE BKPF-USNAM .
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_USNAM.
PERFORM read_selection_screen.
SELECT * FROM BKPF
INTO CORRESPONDING FIELDS OF TABLE it_bkpf
WHERE bukrs eq p_bukrs AND gjahr eq p_gjahr
and belnr IN s_belnr.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'USNAM'
dynpprog = SY-REPID
dynpnr = '1000'
dynprofield = 'P_USNAM'
value_org = 'S'
TABLES
value_tab = it_bkpf
return_tab = t_return
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
IF NOT it_bkpf[] IS INITIAL.
SORT it_bkpf BY belnr.
DELETE ADJACENT DUPLICATES FROM it_bkpf COMPARING USNAM.
IF sy-subrc = 0.
READ TABLE it_bkpf INDEX 1.
ENDIF.
ENDIF.
FORM read_selection_screen.
DATA: lv_dyname LIKE d020s-prog VALUE 'ZABAP9',
lv_dynumb LIKE d020s-dnum VALUE '1000'.
DATA: BEGIN OF lt_dynpfields OCCURS 3.
INCLUDE STRUCTURE dynpread.
DATA: END OF lt_dynpfields.
lt_dynpfields-fieldname = 'P_BUKRS'.
APPEND lt_dynpfields.
lt_dynpfields-fieldname = 'P_GJAHR'.
APPEND lt_dynpfields.
lt_dynpfields-fieldname = 'S_BELNR-LOW'.
APPEND lt_dynpfields.
lt_dynpfields-fieldname = 'S_BELNR-HIGH'.
APPEND lt_dynpfields.
CALL FUNCTION 'DYNP_VALUES_READ'
EXPORTING
dyname = lv_dyname
dynumb = lv_dynumb
translate_to_upper = 'X'
TABLES
dynpfields = lt_dynpfields
EXCEPTIONS
invalid_abapworkarea = 01
invalid_dynprofield = 02
invalid_dynproname = 03
invalid_dynpronummer = 04
invalid_request = 05
no_fielddescription = 06
invalid_parameter = 07
undefind_error = 08
double_conversion = 09
stepl_not_found = 10
OTHERS = 11.
if sy-subrc eq 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.
CLEAR: lt_dynpfields.
LOOP AT lt_dynpfields.
CASE lt_dynpfields-fieldname.
WHEN 'P_BUKRS'.
p_bukrs = lt_dynpfields-fieldvalue.
WHEN 'P_GJAHR'.
p_gjahr = lt_dynpfields-fieldvalue.
WHEN 'S_BELNR-LOW'.
p_usnam = lt_dynpfields-fieldvalue.
WHEN 'S_BELNR-HIGH'.
p_usnam = lt_dynpfields-fieldvalue.
ENDCASE.
ENDLOOP.
ENDFORM. " read_selection_screen