Kamis, 28 Juni 2012

Contoh Parameter Menggunakan List Box

Berikut contoh program sederhana untuk membuat List Box .

*&---------------------------------------------------------------------*
*& Report ZLIST_BOX
*&
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*

REPORT zlist_box.

TYPE-POOLS: vrm.
DATA : t_itab TYPE STANDARD TABLE OF sairport WITH HEADER LINE,
t_data LIKE TABLE OF t_itab WITH HEADER LINE.
DATA : w_value
TYPE vrm_value,
t_values
TYPE vrm_values,
n_value TYPE vrm_id.

PARAMETERS : p_list(10) AS LISTBOX VISIBLE LENGTH 15.

AT SELECTION-SCREEN OUTPUT.
  PERFORM : fm_create_list_box.

START-OF-SELECTION.
  PERFORM : fm_collect_data,
                        fm_display_data.


*&---------------------------------------------------------------------*
*& FORM fm_create_list_box
*&---------------------------------------------------------------------*
*text
*----------------------------------------------------------------------*
*  t_itab menyimpan data yang akan ditampilkan dalam list box
*  yang kemudian akan dimasukkan dalam t_values
*  CALL FUNCTION 'VRM_SET_VALUES' digunakan untuk mengisi data
*  list box.id diisi dg parameter dari list box
*----------------------------------------------------------------------*
FORM fm_create_list_box.
  SELECT *
  FROM sairport
  INTO CORRESPONDING FIELDS OF TABLE t_itab.

  n_value = 'p_list'.
  LOOP AT t_itab.
    CLEAR w_value.
    w_value-key = t_itab-id.
    w_value-text = t_itab-name.
    APPEND w_value TO t_values.
  ENDLOOP.

  CALL FUNCTION 'VRM_SET_VALUES'
    EXPORTING
      id     = n_value
      values = t_values.
  IF sy-subrc <> 0.
    .
  ENDIF.
ENDFORM.                    "FM_CREATE_LIST_BOX

*&---------------------------------------------------------------------*
*& FORM fm_collect_data
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM fm_collect_data .
  SELECT *
  FROM sairport
  INTO CORRESPONDING FIELDS OF TABLE t_data
  WHERE id = p_list.
ENDFORM.                    "FM_COLLECT_DATA
" FM_COLLECT_DATA

*&---------------------------------------------------------------------*
*& Form FM_DISPLAY_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM fm_display_data .
  LOOP AT t_data.
    WRITE :/ t_data-id,
    t_data-name,
    t_data-time_zone.
  ENDLOOP.
ENDFORM.                    "fm_display_data

Tidak ada komentar:

Posting Komentar