Etiquetas

20120102

Reporte estándar HR PNPCE tipo PNP

Ejemplo similar al reporte estándar PNP pero adaptado a los pequeños cambios que trae la PNPCE, con comportamiento clásico (tipo PNP). Llegar y usar. Una vez que entienda la nueva funcionalidad de la PNPCE en lo que respecta a empleados concurrentes, lo iré agregando.

*&---------------------------------------------------------------------*
*& Report ZBN_CARGA_WS_DENTAL
*&---------------------------------------------------------------------*
* LOG DE MODIFICACION:
*
*    FECHA     PROGRAMADOR      CORRECCION    DESCRIPCION
*-----------------------------------------------------------------------
*   ddmmaaaa   xxxxxxxxxxxxx    xxxxxxxxxx    xxxxxxxxxxxxxxxxxxxxxxxx
*-----------------------------------------------------------------------
REPORT  zbn_carga_ws_dental
  NO STANDARD PAGE HEADING
  LINE-SIZE 255.

*-----------------------------------------------------------------------
*                           DECLARACIONES
*-----------------------------------------------------------------------

*-----------------------------------------------------------------------
* Declaración de Tablas
*-----------------------------------------------------------------------
TABLES: pernr.
NODES: peras.  "group, person.

*-----------------------------------------------------------------------
* Declaración de Infotipos
*-----------------------------------------------------------------------
INFOTYPES: 0001, 0021, 0185.

*----------------------------------------------------------------------*
* Declaración de Constantes                                            *
*----------------------------------------------------------------------*


*-----------------------------------------------------------------------
*                             INCLUDES Y TYPE-POOLS
*-----------------------------------------------------------------------



*----------------------------------------------------------------------*
* TYPES - Declaracion de estructuras de tablas internas                *
*----------------------------------------------------------------------*
TYPES: BEGIN OF zst_alv,
          pernr     TYPE persno,
          icnum     TYPE p0185-icnum,   "rut
          ename     TYPE p0001-ename,   "apellidos

       END OF zst_alv.


*-----------------------------------------------------------------------
* Declaración de Tablas Internas
*-----------------------------------------------------------------------
*Reporte
DATA: st_alv TYPE zst_alv,
      tt_alv TYPE TABLE OF zst_alv.

*----------------------------------------------------------------------*
* Declaración de Variables                                             *
*----------------------------------------------------------------------*


*----------------------------------------------------------------------*
* DATOS PARA MANEJO ALV                                                *
*----------------------------------------------------------------------*
DATA: gr_table TYPE REF TO cl_salv_table.



*-----------------------------------------------------------------------
*            PANTALLAS DE SELECCION Y EVENTOS DE PANTALLA
*-----------------------------------------------------------------------

*----------------------------------------------------------------------*
* Pantalla de Selección                                                *
*----------------------------------------------------------------------*

*----------------------------------------------------------------------*
* Eventos de Pantalla                                                  *
*----------------------------------------------------------------------*


*-----------------------------------------------------------------------
*                           RUTINA PRINCIPAL
*-----------------------------------------------------------------------

*----------------------------------------------------------------------*
* INITIALIZATION                                                       *
*----------------------------------------------------------------------*
INITIALIZATION.
  rp-sel-ein-aus-init. "status ocupacion <> 0
*  rp-init-with-sydatum.

*----------------------------------------------------------------------*
* START-OF-SELECTION                                                   *
*----------------------------------------------------------------------*
START-OF-SELECTION.

* tablas internas
  PERFORM inicializa_tablas.


*----------------------------------------------------------------------*
* GET PERAS                                                            *
*----------------------------------------------------------------------*
GET peras.
  CLEAR: st_alv.
  rp_provide_from_last: p0001 space pn-begda pn-endda,
                        p0185 '01' pn-begda pn-endda.

  "id
  st_alv-pernr = pernr-pernr.
  st_alv-icnum = p0185-icnum.
  st_alv-ename = p0001-ename.




  APPEND st_alv TO tt_alv.



*---------------------------------------------------------------------------*
* END-OF-SELECTION                                                          *
*---------------------------------------------------------------------------*
END-OF-SELECTION.
  IF NOT tt_alv[] IS INITIAL.
    PERFORM muestra_alv USING tt_alv.
  ELSE.
    MESSAGE 'No se encontraron datos' TYPE 'E'.
  ENDIF.


*-----------------------------------------------------------------------
*                                RUTINAS
*-----------------------------------------------------------------------

*&---------------------------------------------------------------------*
*&      Form  inicializa_tablas
*&---------------------------------------------------------------------*
FORM inicializa_tablas.

  FREE: tt_alv[].

ENDFORM.                    " inicializa_tablas



*
*&---------------------------------------------------------------------*
*&      Form  muestra_alv
*&---------------------------------------------------------------------*
FORM muestra_alv USING pt_alv TYPE table.
  cl_salv_table=>factory( IMPORTING r_salv_table = gr_table
                           CHANGING t_table = pt_alv
).

  PERFORM alv_functions USING gr_table.
  PERFORM alv_header IN PROGRAM (sy-repid) IF FOUND USING gr_table.  "TODO: Implementar
  PERFORM alv_display USING gr_table.
  PERFORM alv_columns IN PROGRAM (sy-repid) IF FOUND USING gr_table. "TODO: Implementar
  PERFORM alv_sort IN PROGRAM (sy-repid) IF FOUND  USING gr_table.   "TODO: Implementar
  PERFORM alv_layout USING gr_table.

  gr_table->display( ).


ENDFORM.                    "muestra_alv

*&---------------------------------------------------------------------*
*&      Form  ALV_FUNCTIONS
*&---------------------------------------------------------------------*
FORM alv_functions  USING p_gr_table TYPE REF TO cl_salv_table.
  DATA: gr_functions TYPE REF TO cl_salv_functions.

  gr_functions = p_gr_table->get_functions( ).
  gr_functions->set_all( abap_true ).
ENDFORM.                    " ALV_FUNCTIONS

*&---------------------------------------------------------------------*
*&      Form  ALV_DISPLAY
*&---------------------------------------------------------------------*
FORM alv_display  USING p_gr_table TYPE REF TO cl_salv_table.
  DATA: gr_display TYPE REF TO cl_salv_display_settings.

  gr_display = p_gr_table->get_display_settings( ).
  gr_display->set_striped_pattern( cl_salv_display_settings=>true ).
*  gr_display->set_list_header(  ).

ENDFORM.                    " ALV_DISPLAY

*&---------------------------------------------------------------------*
*&      Form  ALV_LAYOUT
*&---------------------------------------------------------------------*
FORM alv_layout  USING  p_gr_table TYPE REF TO cl_salv_table.

  DATA: gr_layout TYPE REF TO cl_salv_layout.
  DATA: key TYPE salv_s_layout_key.

  gr_layout = p_gr_table->get_layout( ).

  key-report = sy-repid.
  gr_layout->set_key( key ).
  gr_layout->set_save_restriction( cl_salv_layout=>restrict_none ).

ENDFORM.                    " ALV_LAYOUT



No hay comentarios:

Publicar un comentario