sexta-feira, 23 de março de 2012

Função - DAY_ATTRIBUTES_GET

*  Irei mostrar hoje a função 'DAY_ATTRIBUTES_GET' que retorna uma tabela
* muito interessante que mostra todos os atributos diários em um certo
* intervalo de tempo, dá pra faze muita coisa com estes dados de retorno
* dá pra faze calendário, rotina de apontamento, agenda, um monte de
* coisa só depende de quanto você gosta de brincar com ABAP

REPORT z_day_attributes_get.

* Declaração
DATA :
  vg_newdate TYPE sy-datum,
  it_day_atr TYPE TABLE OF casdayattr,
  st_day_atr TYPE casdayattr.

* Tela de seleção
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME.
SELECT-OPTIONS:
  so_peri FOR sy-datum.
PARAMETERS:
  p_langu    TYPE scal-fcalid DEFAULT 'BR'.
SELECTION-SCREEN END   OF BLOCK b1.


START-OF-SELECTION.

  PERFORM : f_day_attributes,
            f_show.


*&---------------------------------------------------------------------*
*&      Form  f_day_attributes
*&---------------------------------------------------------------------*
FORM f_day_attributes.

  CALL FUNCTION 'DAY_ATTRIBUTES_GET'
   EXPORTING
     factory_calendar                 p_langu " Dias de trabalho no BR
     holiday_calendar                 p_langu " Dias de feriado  no BR
     date_from                        so_peri-low  " Data Inicial
     date_to                          so_peri-high " Data Final
     language                         sy-langu     " Linhuagem
* IMPORTING
*   YEAR_OF_VALID_FROM               =
*   YEAR_OF_VALID_TO                 =
*   RETURNCODE                       =
    TABLES
      day_attributes                   it_day_atr
   EXCEPTIONS
     factory_calendar_not_found       1
     holiday_calendar_not_found       2
     date_has_invalid_format          3
     date_inconsistency               4
     OTHERS                           5
            .
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE 'I' NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.


  BREAK-POINT.


ENDFORM.                    " f_day_attributes

*&---------------------------------------------------------------------*
*&      Form  f_show
*&---------------------------------------------------------------------*
FORM f_show.

  LOOP AT it_day_atr INTO st_day_atr.
    WRITE st_day_atr.
  ENDLOOP.

ENDFORM.                    " f_show
Comentários
0 Comentários

Nenhum comentário:

Postar um comentário