FuBa F4IF_INT_TABLE_VALUE_REQUEST – Wertauswahl mit F4

  • F4IF_INT_TABLE_VALUE_REQUEST

Diese Programme zeigen, wie ein F4 Wertauswahl für jedes beliebiges Feld individuell erzeugt werden kann.

REPORT ztest46.
" Testprogramm zum Löschen / Kopieren / Setzen von Parametern.
" su05
" bname
" parid
" parva
"
" Vorlage User (Parameter)
" Parameter Von Bis
" Ziel User Von Bis
"
" Löschen
" Kopieren
" Echtlauf
"
" Parameter
" Parameter Wert
" Ziel User
" Setzen
" Löschen
" Echtlauf
TABLES: usr05.
SELECT-OPTIONS: s_bname FOR usr05-bname. " matchcode object
SELECT-OPTIONS: parid FOR usr05-parid MATCHCODE OBJECT h_tpara.


TABLES t001w.
SELECT-OPTIONS: s_werks FOR t001w-werks MODIF ID id1.
DATA: kunnso_itab LIKE TABLE OF t001w.


AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_bname-low.
  PERFORM fill CHANGING s_bname-low.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_bname-high.
  PERFORM fill CHANGING s_bname-high.


FORM fill CHANGING s_bname.

  DATA: return TYPE TABLE OF ddshretval WITH HEADER LINE.

  SELECT bname, name_last, name_first FROM v_usr_name INTO TABLE @DATA(wt_usr)
    "WHERE bname = 'STAJOH'
    ORDER BY name_last.


*  SELECT bname INTO CORRESPONDING FIELDS OF TABLE kunnso_itab FROM
*  t001w.
*
  DELETE ADJACENT DUPLICATES FROM wt_usr.
*
  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
    EXPORTING
      retfield        = 'BNAME'
      dynpprog        = sy-repid
      dynpnr          = sy-dynnr
      dynprofield     = 'S_BNAME'
      value_org       = 'S'
      "multiple_choice = 'X'
    TABLES
      value_tab       = wt_usr
      "return_tab      = return.
  .
  IF sy-subrc = 0.

    SORT return BY fieldval DESCENDING.

    LOOP AT return.

*      s_werks-low = return-fieldval.
*
*      s_werks-option = 'EQ'.
*
*      s_werks-sign = 'I'.
*
*      s_werks-high = space.
*
*      APPEND s_werks.

    ENDLOOP.

    SORT wt_usr BY bname.


  ENDIF.

ENDFORM.

START-OF-SELECTION.
report zF4IF_INT_TABLE_VALUE_REQUEST.
TABLES t001w.
SELECT-OPTIONS: s_werks FOR t001w-werks MODIF ID id1.
DATA: kunnso_itab LIKE TABLE OF t001w.

DATA: return TYPE TABLE OF ddshretval WITH HEADER LINE.

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

  SELECT werks name1 INTO CORRESPONDING FIELDS OF TABLE kunnso_itab FROM
  t001w.

  DELETE ADJACENT DUPLICATES FROM kunnso_itab.

  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

  EXPORTING

  retfield = 'WERKS'

  dynpprog = sy-repid

  dynpnr = sy-dynnr

  dynprofield = 'S_WERKS'

  value_org = 'S'

  multiple_choice = 'X'

  TABLES

  value_tab = kunnso_itab

  return_tab = return.

  IF sy-subrc = 0.

    SORT return BY fieldval DESCENDING.

    LOOP AT return.

      s_werks-low = return-fieldval.

      s_werks-option = 'EQ'.

      s_werks-sign = 'I'.

      s_werks-high = space.

      APPEND s_werks.

    ENDLOOP.

    SORT s_werks BY low.


  ENDIF.

*AT SELECTION-SCREEN OUTPUT.
*  LOOP AT SCREEN.
*    IF screen-group1 = 'ID1'.
*
*      MODIFY SCREEN.
*    ENDIF.
*  ENDLOOP.

Hinterlasse einen Kommentar

Diese Seite verwendet Akismet, um Spam zu reduzieren. Erfahre, wie deine Kommentardaten verarbeitet werden..