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