Permite ejecutar un programa determinado mediante SUBMIT y capturar el resultado de la salida en una tabla interna, para procesar los resultados.
* DECLARACIONES DE DATOS
**********************************************************************
TYPES:
BEGIN OF typ_vlist, "datos relevantes del listado
"en pantalla (posicion relativa)
t_saknr(8),
spc0(2),
t_txt20(33), "Texto de cuenta
spc1(1),
t_debito(20), "Debitos
spc2(1),
t_credit(20) , "Creditos
spc3(6),
t_sa_deu(20) , "Saldo deudor
spc4(2),
t_sa_cre(20) , "Saldo acreedor
spc5(2),
t_bg_deb(20) , "Balance general DEBE
spc6(2),
t_bg_cre(20) , "Balance general HABER
spc7(2),
t_er_deb(20) , "Estado resultado
spc8(2),
t_er_cre(20) , "Estado resultado
END OF typ_vlist.
t_saknr(8),
spc0(2),
t_txt20(33), "Texto de cuenta
spc1(1),
t_debito(20), "Debitos
spc2(1),
t_credit(20) , "Creditos
spc3(6),
t_sa_deu(20) , "Saldo deudor
spc4(2),
t_sa_cre(20) , "Saldo acreedor
spc5(2),
t_bg_deb(20) , "Balance general DEBE
spc6(2),
t_bg_cre(20) , "Balance general HABER
spc7(2),
t_er_deb(20) , "Estado resultado
spc8(2),
t_er_cre(20) , "Estado resultado
END OF typ_vlist.
DATA:
itab_list TYPE TABLE OF abaplist WITH HEADER LINE,
vlist TYPE TABLE OF typ_vlist WITH HEADER LINE,
itab_list TYPE TABLE OF abaplist WITH HEADER LINE,
vlist TYPE TABLE OF typ_vlist WITH HEADER LINE,
**********************************************************************
* START-OF-SELECTION
**********************************************************************
* START-OF-SELECTION
**********************************************************************
PERFORM balance_8_columnas. "Ejecutar reporte destino
PERFORM captura_datos_pantalla. "Capturar los resultados
PERFORM procesa_datos. "Procesar la información de pantalla
PERFORM procesa_datos. "Procesar la información de pantalla
*&---------------------------------------------------------------------*
*& Form balance_8_columnas
*&---------------------------------------------------------------------*
FORM balance_8_columnas.
SUBMIT (g_report)
USING SELECTION-SET variante "variante de ejemplo
EXPORTING LIST TO MEMORY
AND RETURN.
ENDFORM. "balance_8_columnas
*& Form balance_8_columnas
*&---------------------------------------------------------------------*
FORM balance_8_columnas.
SUBMIT (g_report)
USING SELECTION-SET variante "variante de ejemplo
EXPORTING LIST TO MEMORY
AND RETURN.
ENDFORM. "balance_8_columnas
*&---------------------------------------------------------------------*
*& Form CAPTURA_DATOS_PANTALLA
*&---------------------------------------------------------------------*
FORM captura_datos_pantalla .
CALL FUNCTION 'LIST_FROM_MEMORY'
TABLES
listobject = itab_list
EXCEPTIONS
not_found = 1
OTHERS = 2.
g_subrc = sy-subrc.
IF g_subrc <> 0.
MESSAGE text-e01 TYPE 'E'.
EXIT.
ENDIF.
CALL FUNCTION 'LIST_TO_ASCI'
EXPORTING
list_index = -1
TABLES
listasci = vlist
listobject = itab_list
EXCEPTIONS
empty_list = 1
list_index_invalid = 2
OTHERS = 3.
ENDFORM. " CAPTURA_DATOS_PANTALLA
*& Form CAPTURA_DATOS_PANTALLA
*&---------------------------------------------------------------------*
FORM captura_datos_pantalla .
CALL FUNCTION 'LIST_FROM_MEMORY'
TABLES
listobject = itab_list
EXCEPTIONS
not_found = 1
OTHERS = 2.
g_subrc = sy-subrc.
IF g_subrc <> 0.
MESSAGE text-e01 TYPE 'E'.
EXIT.
ENDIF.
CALL FUNCTION 'LIST_TO_ASCI'
EXPORTING
list_index = -1
TABLES
listasci = vlist
listobject = itab_list
EXCEPTIONS
empty_list = 1
list_index_invalid = 2
OTHERS = 3.
ENDFORM. " CAPTURA_DATOS_PANTALLA
*&---------------------------------------------------------------------*
*& Form PROCESA_DATOS
*&---------------------------------------------------------------------*
FORM procesa_datos .
REFRESH t_salida.
LOOP AT vlist FROM g_start.
IF NOT vlist-t_saknr CO '1234567890'.
CONTINUE.
ENDIF.
*& Form PROCESA_DATOS
*&---------------------------------------------------------------------*
FORM procesa_datos .
REFRESH t_salida.
LOOP AT vlist FROM g_start.
IF NOT vlist-t_saknr CO '1234567890'.
CONTINUE.
ENDIF.
*... procesar datos de vlist sobre tabla salida ...
ENDFORM. " PROCESA_DATOS
No hay comentarios:
Publicar un comentario