Documentos de Académico
Documentos de Profesional
Documentos de Cultura
*& Report ZPRUEBA_VIATICOS
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZPRUEBA_VIATICOS.
INCLUDE ZPRUEBA_VIATICOS_TOP.
INCLUDE ZPRUEBA_VIATICOS_F01.
*&---------------------------------------------------------------------*
*& Include ZPRUEBA_VIATICOS_TOP
*&---------------------------------------------------------------------*
*TABLAS A OCUPAR
TABLES: KNA1,
BKPF.
*VARIABLES PARA EL INDICE (POSICION)
DATA: vl_index TYPE sy-tabix,
vl_indloop TYPE sy-tabix.
*PARAMETROS SELECCIÓN DE ENTRADA
SELECTION-SCREEN: BEGIN OF BLOCK BLK1 WITH FRAME TITLE AAA.
SELECT-OPTIONS: P_NUMEMP FOR KNA1-KUNNR OBLIGATORY,
P_FCHDOC FOR BKPF-BLDAT,
P_FCHCON FOR BKPF-BUDAT,
* P_CLASE FOR BKPF-BLART,
P_PERIO FOR BKPF-MONAT,
P_SOC FOR BKPF-BUKRS,
* P_MONEDA FOR BKPF-WAERS,
P_REF FOR BKPF-XBLNR,
P_TXTCAB FOR BKPF-BKTXT.
SELECTION-SCREEN: END OF BLOCK BLK1.
*Tbl para cambiar los parametros de entrada
DATA: RG_NUMEMP TYPE RANGE OF ABRGRDHZ." LENGTH 6.
DATA: WA_NUMEMP LIKE LINE OF RG_NUMEMP.
*Tabla
TYPES: BEGIN OF ty_entrada,
EN_NUMEMP TYPE c LENGTH 6,
END OF ty_entrada.
DATA: it_entrada TYPE STANDARD TABLE OF ty_entrada,
wa_entrada LIKE LINE OF it_entrada.
*Estructura, tabla interna y wa de tabla de usuarios de viaticos
TYPES: BEGIN OF ty_catusuarios,
id_usuario TYPE c LENGTH 5,
nombre TYPE c LENGTH 45,
usuario TYPE c LENGTH 15,
password TYPE c LENGTH 80,
area TYPE c LENGTH 35,
puesto TYPE c LENGTH 35,
correo TYPE c LENGTH 30,
fecha_reg TYPE c LENGTH 25,
estatus TYPE c LENGTH 15,
tipo_usu TYPE c LENGTH 15,
num_emple TYPE c LENGTH 10,
END OF ty_catusuarios.
TYPES: BEGIN OF ty_catusuarios_2,
id_usuario TYPE c LENGTH 5,
nombre TYPE c LENGTH 45,
num_emple TYPE c LENGTH 6,
END OF ty_catusuarios_2.
DATA: it_catusuarios TYPE STANDARD TABLE OF ty_catusuarios,
wa_catusuarios LIKE LINE OF it_catusuarios.
DATA: it_catusuarios_2 TYPE STANDARD TABLE OF ty_catusuarios_2, "se hace
copia ya con el num de cliente
wa_catusuarios_2 LIKE LINE OF it_catusuarios_2. "se hace
copia ya con el num de cliente
*Estructura, tabla interna y wa de tabla viaticos-cabecera de viaticos
TYPES: BEGIN OF ty_viaticos,
id_folio TYPE c LENGTH 5,
id_usuario TYPE c LENGTH 5,
id_ciclo TYPE c LENGTH 15,
fecha_reg TYPE c LENGTH 25,
END OF ty_viaticos.
TYPES: BEGIN OF ty_viaticos_2,
id_folio TYPE c LENGTH 5,
id_usuario TYPE c LENGTH 5,
END OF ty_viaticos_2.
DATA: it_viaticos TYPE STANDARD TABLE OF ty_viaticos,
wa_viaticos LIKE LINE OF it_viaticos.
DATA: it_viaticos_2 TYPE STANDARD TABLE OF ty_viaticos_2, "se hace copia
ya con el num de cliente
wa_viaticos_2 LIKE LINE OF it_viaticos_2. "se hace copia
ya con el num de cliente
*Estructura, tabla interna y wa de tabla viaticos-detalle de viaticos
TYPES: BEGIN OF ty_viaticosdetalle,
id_foliodet TYPE c LENGTH 15,
id_folio TYPE c LENGTH 5,
id_cuexml TYPE c LENGTH 15,
id_centro TYPE c LENGTH 15,
id_cuenta TYPE c LENGTH 15,
id_monto TYPE p LENGTH 8 DECIMALS 2,
id_tasacuota TYPE p LENGTH 8 DECIMALS 2,
id_subtotal TYPE p LENGTH 8 DECIMALS 2,
id_iva TYPE p LENGTH 8 DECIMALS 2,
id_total TYPE p LENGTH 8 DECIMALS 2,
id_estatus TYPE c LENGTH 15,
END OF ty_viaticosdetalle.
TYPES: BEGIN OF ty_viaticosdetalle_2,
id_foliodet TYPE c LENGTH 15,
id_folio TYPE c LENGTH 5,
id_cuexml TYPE c LENGTH 15,
id_centro TYPE c LENGTH 15,
id_cuenta TYPE c LENGTH 15,
id_monto TYPE p LENGTH 8 DECIMALS 2,
id_tasacuota TYPE p LENGTH 8 DECIMALS 2,
id_subtotal TYPE p LENGTH 8 DECIMALS 2,
id_iva TYPE p LENGTH 8 DECIMALS 2,
id_total TYPE p LENGTH 8 DECIMALS 2,
id_estatus TYPE c LENGTH 15,
END OF ty_viaticosdetalle_2.
DATA: it_viaticosdetalle type STANDARD TABLE OF ty_viaticosdetalle,
wa_viaticosdetalle like line of it_viaticosdetalle.
DATA: it_viaticosdetalle_2 type STANDARD TABLE OF ty_viaticosdetalle_2, "
se hace copia ya con el num de cliente
wa_viaticosdetalle_2 like line of it_viaticosdetalle_2. "
se hace copia ya con el num de cliente
*Estructura, tabla interna y wa de la tabla de los datos que se requieren
F-02
TYPES: BEGIN OF ty_datos,
COL_IDEMP TYPE p LENGTH 3,
COL_IDUSU TYPE c LENGTH 5,
COL_IDFOL TYPE c LENGTH 5,
COL_NUMEMP TYPE c LENGTH 6,
COL_NOMB TYPE c LENGTH 45,
COL_IMPORT TYPE P LENGTH 15 DECIMALS 2,
COL_IMP_BAS TYPE p LENGTH 15 DECIMALS 2,
COL_SUBTOTAL TYPE p LENGTH 15 DECIMALS 2,
COL_TCUOTA TYPE p LENGTH 3 DECIMALS 2,
COL_IVA TYPE p LENGTH 10 DECIMALS 2,
COL_MON TYPE c LENGTH 7,
COL_CME_GAST TYPE c LENGTH 25,
COL_CME_COMP TYPE c LENGTH 25,
COL_CLASE TYPE c LENGTH 5,
COL_VENCE TYPE c LENGTH 25,
COL_INDIMP TYPE c LENGTH 25,
COL_CCOSTE TYPE c LENGTH 15,
COL_ASIG TYPE c LENGTH 25,
COL_TXT TYPE c LENGTH 25,
* COL_MON TYPE BKPF-WAERS,
* COL_REF TYPE BKPF-XBLNR,
* COL_TXTCAB TYPE BKPF-BKTXT,
END OF ty_datos.
DATA: it_datos TYPE STANDARD TABLE OF ty_datos,
wa_datos LIKE LINE OF it_datos.
*******************DATOS PARA ALV*********************
*Type Pool donde vienen definidas todas las estructuras y tablas
TYPE-POOLS: slis.
*Deaclaración para ALV
data: fieldcatalog type slis_t_fieldcat_alv with header line,
gd_tab_group type slis_t_sp_group_alv,
gd_layout type slis_layout_alv,
IT_TOPHEADER TYPE SLIS_T_LISTHEADER,
WA_TOP LIKE LINE OF IT_TOPHEADER,
WA_TOP2 LIKE LINE OF IT_TOPHEADER,
WA_TOP3 LIKE LINE OF IT_TOPHEADER,
WA_TOP4 LIKE LINE OF IT_TOPHEADER,
WA_TOP5 LIKE LINE OF IT_TOPHEADER,
WA_TOP6 LIKE LINE OF IT_TOPHEADER,
WA_TOP7 LIKE LINE OF IT_TOPHEADER,
gd_repid like sy-repid,
* it_sort TYPE slis_t_sortinfo_alv, "Se agrego para totales
y subtotales
* wa_sort TYPE slis_sortinfo_alv. "Se agrego para totales
y subtotales
*******************DATOS PARA ALV*********************
*Nombre del cuadro de los parametros de entrada
INITIALIZATION.
AAA = 'Selección'.
*Condicion para pasar al alv
START-OF-SELECTION.
IF P_NUMEMP[] IS NOT INITIAL.
*Pasar num de empleado a la tabla del tamaño adecuado
LOOP AT P_NUMEMP.
WA_NUMEMP-SIGN = P_NUMEMP-SIGN.
WA_NUMEMP-OPTION = P_NUMEMP-OPTION.
WA_NUMEMP-LOW = P_NUMEMP-LOW+4(6).
WA_NUMEMP-HIGH = P_NUMEMP-HIGH+4(6).
APPEND WA_NUMEMP TO RG_NUMEMP.
ENDLOOP.
PERFORM f1000_consulta.
ENDIF.
*&---------------------------------------------------------------------*
*& Include ZPRUEBA_VIATICOS_F01
*&---------------------------------------------------------------------*
PERFORM alv_grid.
PERFORM build_layout.
PERFORM display_alv_report.
*Cabecera de ALV
FORM top_of_page.
REFRESH it_topheader.
* Título del reporte
MOVE: 'H' TO wa_top-typ,
'Tabla Carga de gastos' TO wa_top-info.
APPEND wa_top TO it_topheader.
MOVE: 'S' TO wa_top-typ,
p_numemp-low TO wa_top-info,
'Cliente:' TO wa_top-key,
'S' TO wa_top2-typ,
p_fchdoc-low TO wa_top2-info,
'Fecha doc:' TO wa_top2-key,
'S' TO wa_top3-typ,
p_fchcon-low TO wa_top3-info,
'Fecha contab:' TO wa_top3-key,
'S' TO wa_top4-typ,
p_perio-low TO wa_top4-info,
'Periodo:' TO wa_top4-key,
'S' TO wa_top5-typ,
p_soc-low TO wa_top5-info,
'Sociedad:' TO wa_top5-key,
'S' TO wa_top6-typ,
p_ref-low TO wa_top6-info,
'Referencia:' TO wa_top6-key,
'S' TO wa_top7-typ,
p_txtcab-low TO wa_top7-info,
'Texto cab:' TO wa_top7-key.
APPEND wa_top TO it_topheader.
APPEND wa_top2 TO it_topheader.
APPEND wa_top3 TO it_topheader.
APPEND wa_top4 TO it_topheader.
APPEND wa_top5 TO it_topheader.
APPEND wa_top6 TO it_topheader.
APPEND wa_top7 TO it_topheader.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = it_topheader
i_logo = 'ZLOGO_LGT256'.
ENDFORM.
FORM f_conexion.
*Conexion BD VIATICOS
*******Traer datos de la base de datos de viaticos****************
*BREAK ajimenez-ext.
EXEC SQL.
CONNECT TO 'SILANES_VIATICOS'
ENDEXEC.
EXEC SQL.
open e for
SELECT *
FROM dbo.Cat_Usuarios
* WHERE NumEmp IN RG_NUMEMP
* WHERE Empleado EQ VAR_EMP
* INTO WA_Viaticos
* WHERE Id_Comprobante = 16
* "CAST( fecha_registro AS DATE) BETWEEN :p_date1 and :p_date2
ENDEXEC.
DO.
EXEC SQL.
FETCH NEXT e INTO :WA_CATUSUARIOS
ENDEXEC.
IF sy-subrc NE 0.
EXIT.
ELSE.
APPEND wa_catusuarios TO it_catusuarios.
ENDIF.
ENDDO.
EXEC SQL.
CLOSE e
ENDEXEC.
EXEC SQL.
DISCONNECT :'SILANES_VIATICOS'
ENDEXEC.
******************************************************************
*BREAK AJIMENEZ-EXT.
************************DELIMITAR USUARIOS SELECCIONADOS*****************
*******
LOOP AT IT_CATUSUARIOS INTO WA_CATUSUARIOS WHERE NUM_EMPLE IN RG_NU
MEMP.
IF SY-SUBRC = 0.
WA_CATUSUARIOS_2-ID_USUARIO = WA_CATUSUARIOS-ID_USUARIO.
WA_CATUSUARIOS_2-NOMBRE = WA_CATUSUARIOS-NOMBRE.
WA_CATUSUARIOS_2-NUM_EMPLE = WA_CATUSUARIOS-NUM_EMPLE.
APPEND WA_CATUSUARIOS_2 TO IT_CATUSUARIOS_2.
ENDIF.
ENDLOOP.
************************DELIMITAR USUARIOS SELECCIONADOS*****************
*******
*BREAK AJIMENEZ-EXT.
******************************************************************
EXEC SQL.
CONNECT TO 'SILANES_VIATICOS'
ENDEXEC.
EXEC SQL.
open c for
SELECT *
FROM dbo.Viaticos
* FOR ALL ENTRIES IT_CATUSUARIOS_2
* WHERE IdUsuario = IT_CATUSUARIOS_2-id_usuario
ENDEXEC.
DO.
EXEC SQL.
FETCH NEXT c INTO :WA_VIATICOS
ENDEXEC.
IF sy-subrc NE 0.
EXIT.
ELSE.
APPEND wa_viaticos TO it_viaticos.
ENDIF.
ENDDO.
EXEC SQL.
CLOSE c
ENDEXEC.
EXEC SQL.
DISCONNECT :'SILANES_VIATICOS'
ENDEXEC.
************************DELIMITAR VIATICOS DE USUARIOS SELECCIONADOS*****
*******************
LOOP AT IT_CATUSUARIOS_2 INTO WA_CATUSUARIOS_2.
READ TABLE IT_VIATICOS INTO WA_VIATICOS
WITH KEY ID_USUARIO = WA_CATUSUARIOS_2-ID_USUARIO
BINARY SEARCH.
* IF SY-SUBRC <> 0.
IF SY-SUBRC = 0.
WA_VIATICOS_2-ID_FOLIO = WA_VIATICOS-ID_FOLIO.
WA_VIATICOS_2-ID_USUARIO = WA_VIATICOS-ID_USUARIO.
APPEND WA_VIATICOS_2 TO IT_VIATICOS_2.
ENDIF.
ENDLOOP.
************************DELIMITAR VIATICOS DE USUARIOS SELECCIONADOS*****
*******************
******************************************************************
EXEC SQL.
CONNECT TO 'SILANES_VIATICOS'
ENDEXEC.
EXEC SQL.
open d for
SELECT *
FROM dbo.ViaticosDetalle
ENDEXEC.
DO.
EXEC SQL.
FETCH NEXT d INTO :WA_VIATICOSDETALLE
ENDEXEC.
IF sy-subrc NE 0.
EXIT.
ELSE.
APPEND wa_viaticosdetalle TO it_viaticosdetalle.
ENDIF.
ENDDO.
EXEC SQL.
CLOSE d
ENDEXEC.
EXEC SQL.
DISCONNECT :'SILANES_VIATICOS'
ENDEXEC.
******************************************************************
*BREAK AJIMENEZ-EXT.
************************DELIMITAR VIATICOSDETALLE DE USUARIOS SELECCIONAD
OS************************
LOOP AT IT_VIATICOSDETALLE INTO WA_VIATICOSDETALLE.
READ TABLE IT_VIATICOS_2 INTO WA_VIATICOS_2
WITH KEY ID_FOLIO = WA_VIATICOSDETALLE-ID_FOLIO
BINARY SEARCH.
* IF SY-SUBRC <> 0.
IF SY-SUBRC = 0.
WA_VIATICOSDETALLE_2-ID_FOLIODET = WA_VIATICOSDETALLE-
ID_FOLIODET.
WA_VIATICOSDETALLE_2-ID_FOLIO = WA_VIATICOSDETALLE-
ID_FOLIO.
WA_VIATICOSDETALLE_2-ID_CUEXML = WA_VIATICOSDETALLE-
ID_CUEXML.
WA_VIATICOSDETALLE_2-ID_CENTRO = WA_VIATICOSDETALLE-
ID_CENTRO.
WA_VIATICOSDETALLE_2-ID_CUENTA = WA_VIATICOSDETALLE-
ID_CUENTA.
WA_VIATICOSDETALLE_2-ID_MONTO = WA_VIATICOSDETALLE-
ID_MONTO.
WA_VIATICOSDETALLE_2-ID_TASACUOTA = WA_VIATICOSDETALLE-
ID_TASACUOTA.
WA_VIATICOSDETALLE_2-ID_SUBTOTAL = WA_VIATICOSDETALLE-
ID_SUBTOTAL.
WA_VIATICOSDETALLE_2-ID_IVA = WA_VIATICOSDETALLE-
ID_IVA.
WA_VIATICOSDETALLE_2-ID_TOTAL = WA_VIATICOSDETALLE-
ID_TOTAL.
WA_VIATICOSDETALLE_2-ID_ESTATUS = WA_VIATICOSDETALLE-
ID_ESTATUS.
APPEND WA_VIATICOSDETALLE_2 TO IT_VIATICOSDETALLE_2.
ENDIF.
ENDLOOP.
************************DELIMITAR VIATICOSDETALLE DE USUARIOS SELECCIONAD
OS************************
*BREAK AJIMENEZ-EXT.
*******Traer datos de la base de datos de viaticos****************
ENDFORM.
FORM f1000_consulta.
PERFORM f_conexion.
*BREAK AJIMENEZ-EXT.
*******PONER 0 A NUM EMPLEADO**********
LOOP AT IT_CATUSUARIOS INTO WA_CATUSUARIOS.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = WA_CATUSUARIOS-NUM_EMPLE
IMPORTING
OUTPUT = WA_CATUSUARIOS-NUM_EMPLE.
MODIFY IT_CATUSUARIOS FROM WA_CATUSUARIOS.
ENDLOOP.
******PONER 0 A NUM EMPLEADO**********
*BREAK AJIMENEZ-EXT.
******************Se trae los clientes seleccionados*****************
LOOP AT IT_CATUSUARIOS INTO WA_CATUSUARIOS
* READ TABLE IT_CATUSUARIOS INTO WA_CATUSUARIOS
WHERE NUM_EMPLE IN P_NUMEMP.
IF SY-SUBRC = 0.
WA_DATOS-COL_NUMEMP = WA_CATUSUARIOS-NUM_EMPLE+4(6).
WA_DATOS-COL_NOMB = WA_CATUSUARIOS-NOMBRE.
WA_DATOS-COL_IDUSU = WA_CATUSUARIOS-ID_USUARIO.
APPEND WA_DATOS TO IT_DATOS.
ENDIF.
ENDLOOP.
******************Se trae los clientes seleccionados*****************
*BREAK AJIMENEZ-EXT.
***************************Ingresar el Id folio a la tbl Datos***********
****************
* LOOP AT IT_VIATICOS_2 INTO WA_VIATICOS_2.
LOOP AT IT_VIATICOS INTO WA_VIATICOS.
READ TABLE IT_DATOS INTO WA_DATOS
* WITH KEY COL_IDUSU = WA_VIATICOS_2-ID_USUARIO
WITH KEY COL_IDUSU = WA_VIATICOS-ID_USUARIO
BINARY SEARCH.
IF SY-SUBRC = 0.
WA_DATOS-COL_IDFOL = WA_VIATICOS-ID_FOLIO.
APPEND WA_DATOS TO IT_DATOS.
ENDIF.
ENDLOOP.
***************************Ingresar el Id folio a la tbl Datos***********
****************
*BREAK AJIMENEZ-EXT.
***************************Ingresar columnas del detalle a la tbl Datos**
*************************
* LOOP AT IT_VIATICOSDETALLE_2 INTO WA_VIATICOSDETALLE_2.
LOOP AT IT_VIATICOSDETALLE INTO WA_VIATICOSDETALLE.
READ TABLE IT_DATOS INTO WA_DATOS
* WITH KEY COL_IDFOL = WA_VIATICOSDETALLE_2-ID_FOLIO
WITH KEY COL_IDFOL = WA_VIATICOSDETALLE-ID_FOLIO
BINARY SEARCH.
* IF SY-SUBRC <> 0.
IF SY-SUBRC = 0.
* WA_DATOS-COL_CCOSTE = WA_VIATICOSDETALLE_2-ID_CENTRO.
* WA_DATOS-COL_TCUOTA = WA_VIATICOSDETALLE_2-ID_TASACUOTA.
* WA_DATOS-COL_IVA = WA_VIATICOSDETALLE_2-ID_IVA.
* WA_DATOS-COL_SUBTOTAL = WA_VIATICOSDETALLE_2-ID_SUBTOTAL.
* WA_DATOS-COL_IMP_BAS = WA_VIATICOSDETALLE_2-ID_TOTAL.
* WA_DATOS-COL_IMPORT = WA_VIATICOSDETALLE_2-ID_MONTO.
WA_DATOS-COL_CCOSTE = WA_VIATICOSDETALLE-ID_CENTRO.
WA_DATOS-COL_TCUOTA = WA_VIATICOSDETALLE-ID_TASACUOTA.
WA_DATOS-COL_IVA = WA_VIATICOSDETALLE-ID_IVA.
WA_DATOS-COL_SUBTOTAL = WA_VIATICOSDETALLE-ID_SUBTOTAL.
WA_DATOS-COL_IMP_BAS = WA_VIATICOSDETALLE-ID_TOTAL.
WA_DATOS-COL_IMPORT = WA_VIATICOSDETALLE-ID_MONTO.
APPEND WA_DATOS TO IT_DATOS.
ENDIF.
ENDLOOP.
***************************Ingresar columnas del detalle a la tbl Datos**
*************************
**********ELIMINAR DATOS QUE NO TRAEN IMPORTE**********
DELETE IT_DATOS WHERE COL_IMPORT = 0.
**********ELIMINAR DATOS QUE NO TRAEN IMPORTE**********
*********Traer datos duros*********
*Contador para la posicion e iniciar en 1
define: increment.
&1 = &1 + 1.
end-of-definition.
vl_index = 1.
LOOP AT IT_DATOS INTO WA_DATOS.
WA_DATOS-COL_IDEMP = vl_index.
increment vl_index.
WA_DATOS-COL_MON = 'MXN'.
WA_DATOS-COL_CLASE = 'SA'.
WA_DATOS-COL_VENCE = SY-DATUM.
IF WA_DATOS-COL_NUMEMP <> '21129311'.
WA_DATOS-COL_CME_GAST = 'D'.
ENDIF.
IF WA_DATOS-COL_TCUOTA = '0'.
WA_DATOS-COL_INDIMP = 'WE'.
ELSEIF WA_DATOS-COL_TCUOTA <> '0'.
WA_DATOS-COL_INDIMP = 'W3'.
ENDIF.
MODIFY IT_DATOS FROM WA_DATOS.
ENDLOOP.
*********Traer datos duros*********
*******QUITAR 0 A NUM EMPLEADO REPORTE FINAL**********
LOOP AT IT_DATOS INTO WA_DATOS.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
input = WA_DATOS-COL_NUMEMP
IMPORTING
OUTPUT = WA_DATOS-COL_NUMEMP.
MODIFY IT_DATOS FROM WA_DATOS.
ENDLOOP.
******QUITAR 0 A NUM EMPLEADO REPORTE FINAL**********
*break ajimenez-ext.
*************************ORDENAR ALV*************************
* SORT IT_DATOS BY COL_IDEMP ASCENDING.
*************************ORDENAR ALV*************************
ENDFORM.
*Catalogo
FORM alv_grid.
fieldcatalog-fieldname = 'COL_IDEMP'.
fieldcatalog-seltext_m = 'Posición'.
fieldcatalog-col_pos = 1.
fieldcatalog-outputlen = '20'.
fieldcatalog-emphasize = 'X'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'COL_NUMEMP'.
fieldcatalog-seltext_m = 'Cuenta'.
* fieldcatalog-tabname = 'it_datos'.
fieldcatalog-col_pos = 2.
fieldcatalog-outputlen = '10'.
fieldcatalog-emphasize = 'X'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'COL_NOMB'.
fieldcatalog-seltext_m = 'Nombre'.
fieldcatalog-col_pos = 3.
fieldcatalog-outputlen = '20'.
fieldcatalog-emphasize = 'X'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'COL_IMPORT'.
fieldcatalog-seltext_m = 'Importe Gastos'.
fieldcatalog-col_pos = 4.
fieldcatalog-outputlen = '20'.
fieldcatalog-emphasize = 'X'.
fieldcatalog-do_sum = 'X'. "SE AGREGA PARA OBTENER E
L TOTAL
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'COL_IMP_BAS'.
fieldcatalog-seltext_m = 'Importe Comprobación'.
fieldcatalog-col_pos = 5.
fieldcatalog-outputlen = '20'.
fieldcatalog-emphasize = 'X'.
fieldcatalog-do_sum = 'X'. "SE AGREGO PARA OBTENER E
L TOTAL
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'COL_IMP_BAS'.
fieldcatalog-seltext_m = 'Importe Base'.
fieldcatalog-col_pos = 6.
fieldcatalog-outputlen = '20'.
fieldcatalog-emphasize = 'X'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'COL_SUBTOTAL'.
fieldcatalog-seltext_m = 'Subtotal'.
fieldcatalog-col_pos = 7.
fieldcatalog-outputlen = '20'.
fieldcatalog-emphasize = 'X'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'COL_IVA'.
fieldcatalog-seltext_m = 'IVA'.
fieldcatalog-col_pos = 8.
fieldcatalog-outputlen = '20'.
fieldcatalog-emphasize = 'X'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'COL_TCUOTA'.
fieldcatalog-seltext_m = 'Porcentaje IVA'.
fieldcatalog-col_pos = 9.
fieldcatalog-outputlen = '20'.
fieldcatalog-emphasize = 'X'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'COL_MON'.
fieldcatalog-seltext_m = 'Moneda'.
fieldcatalog-col_pos = 10.
fieldcatalog-outputlen = '20'.
fieldcatalog-emphasize = 'X'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'COL_CME_GAST'.
fieldcatalog-seltext_m = 'CME Gastos'.
fieldcatalog-col_pos = 11.
fieldcatalog-outputlen = '20'.
fieldcatalog-emphasize = 'X'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'COL_CME_COMP'.
fieldcatalog-seltext_m = 'CME Comprobación'.
fieldcatalog-col_pos = 12.
fieldcatalog-outputlen = '20'.
fieldcatalog-emphasize = 'X'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'COL_CLASE'.
fieldcatalog-seltext_m = 'Clase'.
fieldcatalog-col_pos = 13.
fieldcatalog-outputlen = '20'.
fieldcatalog-emphasize = 'X'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'COL_VENCE'.
fieldcatalog-seltext_m = 'Vence el'.
fieldcatalog-col_pos = 14.
fieldcatalog-outputlen = '20'.
fieldcatalog-emphasize = 'X'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'COL_INDIMP'.
fieldcatalog-seltext_m = 'Indicador Imp.'.
fieldcatalog-col_pos = 15.
fieldcatalog-outputlen = '20'.
fieldcatalog-emphasize = 'X'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'COL_CCOSTE'.
fieldcatalog-seltext_m = 'Centro Coste'.
fieldcatalog-col_pos = 16.
fieldcatalog-outputlen = '20'.
fieldcatalog-emphasize = 'X'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'COL_ASIG'.
fieldcatalog-seltext_m = 'Asignación'.
fieldcatalog-col_pos = 17.
fieldcatalog-outputlen = '20'.
fieldcatalog-emphasize = 'X'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'COL_TXT'.
fieldcatalog-seltext_m = 'Texto'.
fieldcatalog-col_pos = 18.
fieldcatalog-outputlen = '20'.
fieldcatalog-emphasize = 'X'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
"Se agrego para los subtotales
* wa_sort-spos = 1.
* wa_sort-fieldname = 'COL_NUMEMP'.
* wa_sort-up = 'X'.
* wa_sort-subtot = 'X'.
* append wa_sort TO it_sort.
ENDFORM.
*Estructura del diseño del grid
FORM build_layout.
gd_layout-no_input = 'X'.
gd_layout-colwidth_optimize = 'X'.
gd_layout-confirmation_prompt = 'X'.
* gd_layout-totals_text = 'Totals'(201).
gd_layout-header_text = 'helllllo'.
ENDFORM.
*datos display
FORM display_alv_report.
gd_repid = sy-repid.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = gd_repid
I_BUFFER_ACTIVE = 'X'
is_layout = gd_layout
i_callback_top_of_page = 'TOP_OF_PAGE'
it_fieldcat = fieldcatalog[]
i_save = 'X'
* no-zero = 'X'
* it_sort = it_sort "Se agrego para total
y subtotales
TABLES
t_outtab = it_datos
EXCEPTIONS
program_error = 1
others = 2.
if sy-subrc <> 0.
endif.
ENDFORM.