Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

AT SELECTION-SCREEN ON VALUE-REQUEST

Former Member
0 Kudos

anyone help me? about this code?

*tables

TABLES : vbak.

*type-pools

TYPE-POOLS : slis.

*data

DATA : BEGIN OF gt_table OCCURS 0,

vbeln TYPE vbak-vbeln,

erdat TYPE vbak-erdat,

erzet TYPE vbak-erzet,

ernam TYPE vbak-ernam,

auart TYPE vbak-auart,

netwr TYPE vbak-netwr,

vkorg TYPE vbak-vkorg,

vtweg TYPE vbak-vtweg,

spart TYPE vbak-spart,

END OF gt_table.

DATA : gv_repid TYPE sy-repid.

DATA : BEGIN OF gt_ta OCCURS 0,

vkorg TYPE vbak-vkorg,

vtweg TYPE vbak-vtweg,

spart TYPE vbak-spart,

auart TYPE vbak-auart,

END OF gt_ta.

DATA : t_s TYPE ddshretval OCCURS 0 WITH HEADER LINE.

PARAMETERS : p_tvko TYPE v_tvko-vkorg,

p_tvtw TYPE v_tvtw-vtweg,

p_tspa TYPE v_tspa-spart,

p_tvakz TYPE vbak-auart.

DATA: dynfields TYPE TABLE OF dynpread WITH HEADER LINE.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_tvakz.

CLEAR: dynfields, dynfields.

REFRESH: dynfields, dynfields.

PERFORM data.

dynfields-fieldname = 'P_TVAKZ'.

APPEND dynfields.

CALL FUNCTION 'DYNP_VALUES_READ'

EXPORTING

dyname = sy-cprog

dynumb = sy-dynnr

translate_to_upper = 'X'

  • REQUEST = ' '

  • PERFORM_CONVERSION_EXITS = ' '

  • PERFORM_INPUT_CONVERSION = ' '

  • DETERMINE_LOOP_INDEX = ' '

  • START_SEARCH_IN_CURRENT_SCREEN = ' '

  • START_SEARCH_IN_MAIN_SCREEN = ' '

  • START_SEARCH_IN_STACKED_SCREEN = ' '

  • START_SEARCH_ON_SCR_STACKPOS = ' '

  • SEARCH_OWN_SUBSCREENS_FIRST = ' '

  • SEARCHPATH_OF_SUBSCREEN_AREAS = ' '

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

.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

READ TABLE dynfields WITH KEY fieldname = 'P_TVAKZ'.

p_tvakz = dynfields-fieldvalue.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

  • DDIC_STRUCTURE = ' '

retfield = 'AUART'

  • PVALKEY = ' '

dynpprog = sy-repid

dynpnr = sy-dynnr

dynprofield = 'P_TVAKZ'

  • STEPL = 0

  • WINDOW_TITLE =

  • VALUE = ' '

value_org = 'S'

  • MULTIPLE_CHOICE = ' '

  • DISPLAY = ' '

  • CALLBACK_PROGRAM = ' '

  • CALLBACK_FORM = ' '

  • MARK_TAB =

  • IMPORTING

  • USER_RESET =

TABLES

value_tab = gt_ta

  • FIELD_TAB = t_g

  • return_tab = t_s

  • 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.

&----


*& Form data

&----


  • text

----


FORM data.

break zsirin.

SELECT vkorg vtweg spart auart FROM vbak INTO TABLE gt_ta WHERE

vkorg = p_tvko AND vtweg = p_tvtw

AND spart = p_tspa.

SORT gt_ta BY auart.

DELETE ADJACENT DUPLICATES FROM gt_ta COMPARING auart.

ENDFORM. "data

1 ACCEPTED SOLUTION

Former Member
0 Kudos

Hi,

I corrected your code, please check using this code.

with the input

1.P_TVKO = 1000.

2.P_TVTW= 10

3.P_TSPA = 00

&----


*& Report ZE0232_SDN_POV *

*& *

&----


*& *

*& *

&----


REPORT ZE0232_SDN_POV.

*tables

TABLES : vbak.

*type-pools

TYPE-POOLS : slis.

*data

DATA : BEGIN OF gt_table OCCURS 0,

vbeln TYPE vbak-vbeln,

erdat TYPE vbak-erdat,

erzet TYPE vbak-erzet,

ernam TYPE vbak-ernam,

auart TYPE vbak-auart,

netwr TYPE vbak-netwr,

vkorg TYPE vbak-vkorg,

vtweg TYPE vbak-vtweg,

spart TYPE vbak-spart,

END OF gt_table.

DATA : gv_repid TYPE sy-repid.

DATA : BEGIN OF gt_ta OCCURS 0,

vkorg TYPE vbak-vkorg,

vtweg TYPE vbak-vtweg,

spart TYPE vbak-spart,

auart TYPE vbak-auart,

END OF gt_ta.

DATA : RET_TAB TYPE TABLE OF DDSHRETVAL WITH HEADER LINE.

DATA : t_s TYPE ddshretval OCCURS 0 WITH HEADER LINE.

PARAMETERS : p_tvko TYPE v_tvko-vkorg,

p_tvtw TYPE v_tvtw-vtweg,

p_tspa TYPE v_tspa-spart,

p_tvakz TYPE vbak-auart.

DATA: dynfields TYPE TABLE OF dynpread WITH HEADER LINE.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_tvakz.

CLEAR: dynfields.

DYNFIELDS-FIELDNAME = 'P_TVKO'.

APPEND DYNFIELDS.

DYNFIELDS-FIELDNAME = 'P_TVTW'.

APPEND DYNFIELDS.

DYNFIELDS-FIELDNAME = 'P_TSPA'.

APPEND DYNFIELDS.

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.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

READ TABLE DYNFIELDS WITH KEY FIELDNAME = 'P_TVKO'.

P_TVKO = DYNFIELDS-FIELDVALUE.

READ TABLE DYNFIELDS WITH KEY FIELDNAME = 'P_TVTW'.

P_TVTW = DYNFIELDS-FIELDVALUE.

READ TABLE DYNFIELDS WITH KEY FIELDNAME = 'P_TSPA'.

P_TSPA = DYNFIELDS-FIELDVALUE.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'

EXPORTING

INPUT = P_TVKO

IMPORTING

OUTPUT = P_TVKO.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'

EXPORTING

INPUT = P_TVTW

IMPORTING

OUTPUT = P_TVTW.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'

EXPORTING

INPUT = P_TSPA

IMPORTING

OUTPUT = P_TSPA.

SELECT vkorg vtweg spart auart FROM vbak INTO TABLE gt_ta WHERE

vkorg = p_tvko AND vtweg = p_tvtw

AND spart = p_tspa.

SORT gt_ta BY auart.

DELETE ADJACENT DUPLICATES FROM gt_ta COMPARING auart.

*F4IF_INT_TABLE_VALUE_REQUEST

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

RETFIELD = 'AUART'

DYNPROFIELD = 'P_TVAKZ'

DYNPPROG = 'SY_CPROG'

DYNPNR = SY-DYNNR

VALUE_ORG = 'S'

TABLES

VALUE_TAB = GT_TA

RETURN_TAB = RET_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.

IF USEFULL REWARD

3 REPLIES 3

Former Member
0 Kudos

Hi,

Change your code by seeing the below one.

tables: t001k.

  • For Identification Number

DATA: BEGIN OF it_bwkey OCCURS 0,

bwkey LIKE t001k-bwkey,

END OF it_bwkey.

data: v_bukrs(4).

  • For Run date

DATA: BEGIN OF it_bukrs OCCURS 0,

bukrs LIKE t001k-bukrs,

END OF it_bukrs.

DATA it_ret LIKE ddshretval OCCURS 0 WITH HEADER LINE.

SELECTION-SCREEN: BEGIN OF BLOCK main WITH FRAME TITLE text-001.

SELECTION-SCREEN SKIP.

PARAMETERS: p_bukrs(4) TYPE c.

SELECT-OPTIONS s_bwkey FOR t001k-bwkey NO INTERVALS.

SELECTION-SCREEN END OF BLOCK main.

*----


  • Validation Section

*----


INITIALIZATION.

SELECT DISTINCT bukrs FROM t001k INTO TABLE it_bukrs.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_bukrs.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

retfield = 'BUKRS'

dynpprog = sy-repid

dynpnr = sy-dynnr

dynprofield = 'P_BUKRS'

value_org = 'S'

TABLES

value_tab = it_bukrs

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.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_bwkey-low.

TABLES: t130r.

DATA: BEGIN OF dynpfields OCCURS 0. "Hilfsstruktur zum auslesen des

INCLUDE STRUCTURE dynpread. "Feldwertes vom Dynpro bei >F4<

DATA: END OF dynpfields.

DATA : sy_repid LIKE sy-repid,

sy_dynnr LIKE sy-dynnr.

CLEAR dynpfields.

REFRESH dynpfields.

dynpfields-fieldname = 'P_BUKRS'.

APPEND dynpfields.

    • Lesen des akt. Wertes von Dynpro

sy_repid = sy-repid.

sy_dynnr = sy-dynnr.

CALL FUNCTION 'DYNP_VALUES_READ'

EXPORTING

dyname = sy_repid

dynumb = sy_dynnr

TABLES

dynpfields = dynpfields

EXCEPTIONS

OTHERS = 01.

IF sy-subrc = 0.

READ TABLE dynpfields WITH KEY fieldname = 'P_BUKRS'.

IF sy-subrc = 0.

v_bukrs = dynpfields-fieldvalue.

ENDIF.

ENDIF.

SELECT bwkey FROM t001k

INTO TABLE it_bwkey

WHERE bukrs = v_bukrs.

DELETE ADJACENT DUPLICATES FROM it_bwkey.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

retfield = 'BWKEY'

dynpprog = sy-repid

dynpnr = sy-dynnr

dynprofield = 'S_BWKEY'

value_org = 'S'

TABLES

value_tab = it_bwkey

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.

Former Member
0 Kudos

its not work efficiently &#305; press enter to fill f4

Former Member
0 Kudos

Hi,

I corrected your code, please check using this code.

with the input

1.P_TVKO = 1000.

2.P_TVTW= 10

3.P_TSPA = 00

&----


*& Report ZE0232_SDN_POV *

*& *

&----


*& *

*& *

&----


REPORT ZE0232_SDN_POV.

*tables

TABLES : vbak.

*type-pools

TYPE-POOLS : slis.

*data

DATA : BEGIN OF gt_table OCCURS 0,

vbeln TYPE vbak-vbeln,

erdat TYPE vbak-erdat,

erzet TYPE vbak-erzet,

ernam TYPE vbak-ernam,

auart TYPE vbak-auart,

netwr TYPE vbak-netwr,

vkorg TYPE vbak-vkorg,

vtweg TYPE vbak-vtweg,

spart TYPE vbak-spart,

END OF gt_table.

DATA : gv_repid TYPE sy-repid.

DATA : BEGIN OF gt_ta OCCURS 0,

vkorg TYPE vbak-vkorg,

vtweg TYPE vbak-vtweg,

spart TYPE vbak-spart,

auart TYPE vbak-auart,

END OF gt_ta.

DATA : RET_TAB TYPE TABLE OF DDSHRETVAL WITH HEADER LINE.

DATA : t_s TYPE ddshretval OCCURS 0 WITH HEADER LINE.

PARAMETERS : p_tvko TYPE v_tvko-vkorg,

p_tvtw TYPE v_tvtw-vtweg,

p_tspa TYPE v_tspa-spart,

p_tvakz TYPE vbak-auart.

DATA: dynfields TYPE TABLE OF dynpread WITH HEADER LINE.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_tvakz.

CLEAR: dynfields.

DYNFIELDS-FIELDNAME = 'P_TVKO'.

APPEND DYNFIELDS.

DYNFIELDS-FIELDNAME = 'P_TVTW'.

APPEND DYNFIELDS.

DYNFIELDS-FIELDNAME = 'P_TSPA'.

APPEND DYNFIELDS.

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.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

READ TABLE DYNFIELDS WITH KEY FIELDNAME = 'P_TVKO'.

P_TVKO = DYNFIELDS-FIELDVALUE.

READ TABLE DYNFIELDS WITH KEY FIELDNAME = 'P_TVTW'.

P_TVTW = DYNFIELDS-FIELDVALUE.

READ TABLE DYNFIELDS WITH KEY FIELDNAME = 'P_TSPA'.

P_TSPA = DYNFIELDS-FIELDVALUE.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'

EXPORTING

INPUT = P_TVKO

IMPORTING

OUTPUT = P_TVKO.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'

EXPORTING

INPUT = P_TVTW

IMPORTING

OUTPUT = P_TVTW.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'

EXPORTING

INPUT = P_TSPA

IMPORTING

OUTPUT = P_TSPA.

SELECT vkorg vtweg spart auart FROM vbak INTO TABLE gt_ta WHERE

vkorg = p_tvko AND vtweg = p_tvtw

AND spart = p_tspa.

SORT gt_ta BY auart.

DELETE ADJACENT DUPLICATES FROM gt_ta COMPARING auart.

*F4IF_INT_TABLE_VALUE_REQUEST

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

RETFIELD = 'AUART'

DYNPROFIELD = 'P_TVAKZ'

DYNPPROG = 'SY_CPROG'

DYNPNR = SY-DYNNR

VALUE_ORG = 'S'

TABLES

VALUE_TAB = GT_TA

RETURN_TAB = RET_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.

IF USEFULL REWARD