segunda-feira, 16 de janeiro de 2012

Função - RS_VARIANT_VALUES_TECH_DATA

*&---------------------------------------------------------------------*
"  Assim que é bomm, aeeee teve bastante gente comentando sobre o ultimo
" post sobre, alimentar o programa logo no começo com a ultima variante
" do programa,
"  http://abapjuniores.blogspot.com/2012/01/funcao-rssupportselections.html
" mas teve um seguidor do blog, o Sr. Antônio Rocha que me mostrou uma
" função que mostra os valores que aquela variante tem.
"  Valeu Antônio Rocha.

REPORT  zmj_rs_variant_values_tech_data.

" Estrutura
DATA : st_varid TYPE varid
       .
" Tabela interna
DATA : it_values TYPE TABLE OF rsparams.

" Tela de seleção
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME.
PARAMETERS :
p_report TYPE varid-report.

SELECTION-SCREEN END OF BLOCK  b1.

" Start-of-Selection

START-OF-SELECTION.

  PERFORM : zf_busca_variante.
  PERFORM : zf_busca_dados_variante USING : st_varid-report
                                            st_varid-variant
                                            .

*&---------------------------------------------------------------------*
*&      Form  ZF_BUSCA_ULTIMA_VARIANTE
*&---------------------------------------------------------------------*
FORM zf_busca_variante .

  " Busca na tabela VARID uma única variante do programa informado.
  SELECT SINGLE report variant
    FROM varid
*  Use o 'CORRESPONDING FIELDS OF' pois assim os dois campos desejados
* iram para seus respectivos lugares dentro da estrutura que será alimentada
    INTO CORRESPONDING FIELDS OF st_varid
    WHERE report p_report.


ENDFORM.                    " ZF_BUSCA_ULTIMA_VARIANTE

*&---------------------------------------------------------------------*
*&      Form  ZF_BUSCA_DADOS_VARIANTE
*&---------------------------------------------------------------------*
FORM zf_busca_dados_variante USING report
                                   variant
                                   .

  CALL FUNCTION 'RS_VARIANT_VALUES_TECH_DATA'
    EXPORTING
      report                     report
      variant                    variant
*   SEL_TEXT                   = ' '
*   MOVE_OR_WRITE              = 'W'
*   SORTED                     = ' '
*   EXECUTE_DIRECT             =
* IMPORTING
*   TECHN_DATA                 =
    TABLES
      variant_values             it_values
*   VARIANT_TEXT               =
   EXCEPTIONS
     variant_non_existent       1
     variant_obsolete           2
     OTHERS                     3
            .

  BREAK-POINT .

  IF sy-subrc <> 0.
* Implement suitable error handling here
  ENDIF.

ENDFORM.                    " ZF_BUSCA_DADOS_VARIANTE
Comentários
0 Comentários

Nenhum comentário:

Postar um comentário