martedì 21 luglio 2015

Mostrare il contenuto di una variante

*----------------------------------------------------------------------*
* FORM JLOG_USER_COMMAND                                               *
*----------------------------------------------------------------------*
FORM jlog_user_command USING pv_ucomm    LIKE SY-UCOMM
                             ps_selfield TYPE SLIS_SELFIELD.

  FIELD-SYMBOLS <lf_jlg> LIKE LINE OF total_jlg_tbl.
  READ TABLE total_jlg_tbl ASSIGNING <lf_jlg> INDEX ps_selfield-tabindex.

  CHECK <lf_jlg>-status <> '@0W@'.

  CASE pv_ucomm.
    WHEN '&IC1'.
      SUBMIT RS_DISPLAY_VARIANT WITH P_REPO = <lf_jlg>-report
                                WITH P_VARI = <lf_jlg>-parameter
                                 AND RETURN.
  ENDCASE.

ENDFORM.                    " jlog_user_command

*----------------------------------------------------------------------*
* FORM VARIANT_LIST                                                    *
*----------------------------------------------------------------------*
FORM variant_list USING pv_report
                        pv_parameter.

  DATA: lv_report  LIKE RSVAR-REPORT,
        lv_variant LIKE RSVAR-VARIANT,
        lt_valutab LIKE RSPARAMS OCCURS 40 WITH HEADER LINE,
        lt_objects LIKE VANZ OCCURS 20 WITH HEADER LINE.

  lv_report = pv_report.
  lv_variant = pv_parameter.
  CALL FUNCTION 'RS_VARIANT_CONTENTS'
       EXPORTING
            REPORT               = lv_report
            VARIANT              = lv_variant
       TABLES
            VALUTAB              = lt_valutab
            OBJECTS              = lt_objects
       EXCEPTIONS
            VARIANT_NON_EXISTENT = 1
            VARIANT_OBSOLETE     = 2
            REPORT_NOT_EXISTENT  = 3
            OTHERS               = 4.
  IF SY-SUBRC <> 0.
*    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ELSE.
    LOOP AT lt_valutab.
      READ TABLE lt_objects WITH KEY name = lt_valutab-selname.
      WRITE: lt_objects-text,
             lt_valutab-low,
             lt_valutab-high.
    ENDLOOP.
  ENDIF.

ENDFORM.                    " variant_list

Nessun commento: