Skip to Content
0
Former Member
Sep 17, 2007 at 06:13 AM

AT SELECTION-SCREEN ON VALUE-REQUEST

103 Views

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