‎2008 Jun 24 6:57 AM
HI ALL,
actually i need to get f4 HELP FOR ZLSCH field.
the probelm is if i am giving only one company code i am getting correct values for zlsch. if iam giving 2 company codes i am getting only zlsch values for first company code.
please help how to get zlsch values fo whatever i give in s_bukrs.
please help me.
the code i have written is
s_bukrs FOR lfb1-bukrs no intervals OBLIGATORY,
s_zlsch FOR t042e-zlsch no intervals.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_zlsch-low.
data : l_dyname type standard table of DYNPREAD with header line.
l_dyname-FIELDNAME = 'S_BUKRS-LOW'.
append l_dyname.
CALL FUNCTION 'DYNP_VALUES_READ'
EXPORTING
dyname = sy-cprog
dynumb = sy-dynnr
tables
dynpfields = l_dyname
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
refresh s_bukrs.
loop at l_dyname.
s_bukrs-low = l_dyname-FIELDVALUE.
s_bukrs-SIGN = 'I'.
s_bukrs-OPTION = 'EQ'.
append s_bukrs.
endloop.
SELECT zbukr
zlsch
FROM t042e
INTO TABLE gt_t042e
WHERE zbukr IN s_bukrs.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield ='ZLSCH'
dynpprog = sy-cprog
dynpnr = '1000' "sy-dynnr
dynprofield = 'S_ZLSCH'
VALUE = '*'
value_org = 'S'
TABLES
value_tab = gt_t042e
RETURN_TAB = return_tab
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.
please help do i need to anything else.
please urgent
‎2008 Jun 24 7:03 AM
Hi ,
you have read the HIGH value also .
l_dyname-FIELDNAME = 'S_BUKRS-LOW'.
append l_dyname.
l_dyname-FIELDNAME = 'S_BUKRS-HIGH'.
append l_dyname.
This is also appicable if you enter two values in low .
below also fill high when you get the high .
loop at l_dyname.
s_bukrs-low = l_dyname-FIELDVALUE.
s_bukrs-SIGN = 'I'.
s_bukrs-OPTION = 'EQ'.
append s_bukrs.
endloop.
Please reward if useful.
‎2008 Jun 24 7:05 AM
REPORT yf4 .
TABLES:VBAK.
PARAMETERS:P_VBELN TYPE VBELN_VA,P_VKORG TYPE VKORG.
SELECT-OPTIONS:P_KUNNR FOR VBAK-KUNNR.
*PARAMETERS:P_KUNNR TYPE KUNNR.
TYPES: BEGIN OF ty_VBAK,
VBELN TYPE VBELN_VA,
VKORG TYPE VKORG,
KUNNR TYPE KUNNR,
END OF TY_VBAK.
DATA: T_VBAK TYPE TABLE OF TY_VBAK INITIAL SIZE 0.
DATA: BEGIN OF T_KUNNR OCCURS 0,
KUNNR TYPE KUNNR,
END OF T_KUNNR.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_VBELN.
PERFORM SUB_F4_VBELN.
FORM SUB_F4_VBELN.
select vbeln VKORG KUNNR from vbak into table t_vbak up to 20 rows.
*SELECT KUNNR FROM VBAK INTO TABLE T_KUNNR UP TO 20 ROWS.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
DDIC_STRUCTURE = ' '
retfield = 'VBELN'
PVALKEY = ' '
DYNPPROG = SY-REPID
DYNPNR = SY-DYNNR "'1000'
DYNPROFIELD = 'P_VBELN'
STEPL = 0
WINDOW_TITLE =
VALUE = ' '
VALUE_ORG = 'S'
MULTIPLE_CHOICE = ' '
DISPLAY = ' '
CALLBACK_PROGRAM = ' '
CALLBACK_FORM = ' '
MARK_TAB =
IMPORTING
USER_RESET =
tables
value_tab = T_VBAK
FIELD_TAB =
RETURN_TAB =
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.
ENDFORM.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_VKORG.
PERFORM SUB_F4_VKORG.
FORM SUB_F4_VKORG.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
DDIC_STRUCTURE = ' '
retfield = 'VKORG'
PVALKEY = ' '
DYNPPROG = SY-REPID
DYNPNR = SY-DYNNR "'1000'
DYNPROFIELD = 'P_VKORG'
STEPL = 0
WINDOW_TITLE =
VALUE = ' '
VALUE_ORG = 'S'
MULTIPLE_CHOICE = ' '
DISPLAY = ' '
CALLBACK_PROGRAM = ' '
CALLBACK_FORM = ' '
MARK_TAB =
IMPORTING
USER_RESET =
tables
value_tab = T_VBAK
FIELD_TAB =
RETURN_TAB =
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.
ENDFORM.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_KUNNR-LOW.
PERFORM SUB_F4_KUNNR.
FORM SUB_F4_KUNNR.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
DDIC_STRUCTURE = ' '
retfield = 'KUNNR'
PVALKEY = ' '
DYNPPROG = SY-REPID
DYNPNR = SY-DYNNR "'1000'
DYNPROFIELD = 'P_KUNNR'
STEPL = 0
WINDOW_TITLE =
VALUE = ' '
VALUE_ORG = 'S'
MULTIPLE_CHOICE = ' '
DISPLAY = ' '
CALLBACK_PROGRAM = ' '
CALLBACK_FORM = ' '
MARK_TAB =
IMPORTING
USER_RESET =
tables
value_tab = T_VBAK
FIELD_TAB =
RETURN_TAB =
DYNPFLD_MAPPING =
EXCEPTIONS
PARAMETER_ERROR = 1
NO_VALUES_FOUND = 2
OTHERS = 3
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYP
‎2008 Jun 24 7:07 AM
Hi..
try this ...
l_dyname-fieldname = 'S_BUKRS-LOW'.
APPEND l_dyname.
l_dyname-fieldname = 'S_BUKRS-HIGH'.
APPEND l_dyname.
CALL FUNCTION 'DYNP_VALUES_READ'
EXPORTING
dyname = sy-cprog
dynumb = sy-dynnr
tables
dynpfields = l_dyname
.
IF sy-subrc 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
refresh s_bukrs.
loop at l_dyname.
s_bukrs-low = l_dyname-FIELDVALUE.
s_bukrs-SIGN = 'I'.
s_bukrs-OPTION = 'EQ'.
append s_bukrs.
endloop.
SELECT zbukr
zlsch
FROM t042e
INTO TABLE gt_t042e
WHERE zbukr IN s_bukrs.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield ='ZLSCH'
dynpprog = sy-cprog
dynpnr = '1000' "sy-dynnr
dynprofield = 'S_ZLSCH'
VALUE = '*'
value_org = 'S'
TABLES
value_tab = gt_t042e
RETURN_TAB = return_tab
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.
‎2008 Jun 24 7:15 AM
I HAVE WRITTEN LIKE THIS l_dyname-FIELDNAME = 'S_BUKRS-LOW'.
append l_dyname.
l_dyname-FIELDNAME = 'S_BUKRS-HIGH'.
append l_dyname.
CALL FUNCTION 'DYNP_VALUES_READ'
EXPORTING
dyname = sy-cprog
dynumb = sy-dynnr
tables
dynpfields = l_dyname
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
refresh s_bukrs.
loop at l_dyname.
s_bukrs-low = l_dyname-FIELDVALUE.
s_bukrs-SIGN = 'I'.
s_bukrs-OPTION = 'EQ'.
append s_bukrs.
s_bukrs-HIGH = l_dyname-FIELDVALUE.
s_bukrs-SIGN = 'I'.
s_bukrs-OPTION = 'EQ'.
append s_bukrs.
endloop.
BUT ITS GOING TO DUMP,
SAYING INVALID DYNPFIELD.
‎2008 Jun 24 7:36 AM
Hi,
Check the defination if i_dyname.
It should be something like this:
DATA: BEGIN OF i_dynameOCCURS 3.
INCLUDE STRUCTURE dynpread.
DATA: END OF i_dyname.
Regards
Raju Chitale