#1
|
|||
|
|||
programa de documento fi
Hola
necesito ayuda , tengo poco programando y este programa debería mostrarme los campos que ven en alv. pero ya debugie y nada mas no puedo insertar para que me a paresca el reporte lleno --------------------------------------------------------------------- REPORT ZCONSULTA_DOCFI. TABLES: BKPF ,BSEG. DATA: BEGIN OF ZDOCFI OCCURS 0, MANDT LIKE BKPF-MANDT, BUKRS LIKE BKPF-BUKRS, BELNR LIKE BKPF-BELNR, GJAHR LIKE BKPF-GJAHR, BLDAT LIKE BKPF-BLDAT, BUDAT LIKE BKPF-BUDAT, XBLNR LIKE BKPF-XBLNR, BKTXT LIKE BKPF-BKTXT, BLART LIKE BKPF-BLART, SGTXT LIKE BSEG-SGTXT, PRCTR LIKE BSEG-PRCTR, END OF ZDOCFI, e_layout TYPE lvc_s_layo, t_fcat TYPE lvc_t_fcat, fldtext TYPE char50. SELECT-OPTIONS: S_BUKRS FOR BKPF-BUKRS, S_BLDAT FOR BKPF-BLDAT, S_BUDAT FOR BKPF-BUDAT, S_BELNR FOR BKPF-BELNR, S_GJAHR FOR BKPF-GJAHR, S_XBLNR FOR BKPF-XBLNR, S_BKTXT FOR BKPF-BKTXT, S_BLART FOR BKPF-BLART. START-OF-SELECTION. SELECT SINGLE BUKRS BELNR GJAHR BLDAT BUDAT XBLNR BKTXT BLART INTO (ZDOCFI-BUKRS, ZDOCFI-BELNR, ZDOCFI-GJAHR, ZDOCFI-BLDAT, ZDOCFI-BUDAT, ZDOCFI-XBLNR, ZDOCFI-BKTXT, ZDOCFI-BLART) FROM BKPF WHERE BUKRS EQ S_BUKRS AND BELNR IN S_BELNR AND GJAHR IN S_GJAHR. SELECT SINGLE SGTXT PRCTR INTO (ZDOCFI-SGTXT, ZDOCFI-PRCTR) FROM BSEG WHERE BUKRS EQ ZDOCFI-BUKRS AND BELNR EQ ZDOCFI-BELNR AND GJAHR EQ ZDOCFI-GJAHR. PERFORM reporte_alv. *&--------------------------------------------------------------------* *&REPORTE_ALV *&--------------------------------------------------------------------* FORM reporte_alv. CHECK NOT ZDOCFI[] IS INITIAL. PERFORM catalogo_fcat. e_layout-zebra = 'X'. e_layout-sel_mode = 'D'. e_layout-no_rowmove = 'X'. e_layout-col_opt = 'X'. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC' EXPORTING i_callback_program = sy-repid i_callback_html_top_of_page = 'MY_HTML_TOP_PAGE' is_layout_lvc = e_layout it_fieldcat_lvc = t_fcat TABLES t_outtab = ZDOCFI EXCEPTIONS program_error = 1. IF SY-TCODE ='ZDOCFI'. ENDIF. LOOP AT ZDOCFI. MOVE: sy-mandt TO ZDOCFI-MANDT, BKPF-BUKRS TO ZDOCFI-BUKRS, BKPF-BELNR TO ZDOCFI-BELNR, BKPF-GJAHR TO ZDOCFI-GJAHR, BKPF-BUDAT TO ZDOCFI-BUDAT, BKPF-BLDAT TO ZDOCFI-BLDAT, BKPF-XBLNR TO ZDOCFI-XBLNR, BKPF-BLART TO ZDOCFI-BLART, BSEG-SGTXT TO ZDOCFI-SGTXT, BSEG-PRCTR TO ZDOCFI-PRCTR. *Inserta datos en la tabla Z INSERT INTO zdocfi VALUES zdocfi. *Inserta datos en la tabla interna APPEND ZDOCFI. ENDLOOP. ENDFORM. *&---------------------------------------------------------------------* *&Form catalogo_fcat *&---------------------------------------------------------------------* FORM catalogo_fcat. PERFORM agrega_campos USING: 'BURKS' 'BURKS' 'BKPF' space space, 'BELNR' 'BELNR' 'BKPF' space space, 'GJAHR' 'GJAHR' 'BKPF' space space, 'BLDAT' 'BLDAT' 'BKPF' space space, 'BUDAT' 'BUDAT' 'BKPF' space space, 'XBLNR' 'XBLNR' 'BKPF' space space, 'BKTXT' 'BKTXT' 'BKPF' space space, 'BLART' 'BLART' 'BKPF' space space, 'SGTXT' 'SGTXT' 'BSEG' space space, 'PRCTR' 'PRCTR' 'BSEG' space space. ENDFORM. " CATALOGO_FCAT *&---------------------------------------------------------------------* *&Agrega_Campos *&---------------------------------------------------------------------* FORM agrega_campos USING value(p1) value(p2) value(p3) value(p4) value(p5). DATA l_fcat TYPE lvc_s_fcat. l_fcat-fieldname = p1. l_fcat-ref_field = p2. l_fcat-ref_table = p3. l_fcat-coltext = p4. l_fcat-inttype = p5. l_fcat-col_opt = 'X'. IF p5 NE space. l_fcat-intlen = 20. l_fcat-decimals = 2. l_fcat-decimals_o = 2. ENDIF. APPEND l_fcat TO t_fcat. ENDFORM. " agrega_campos *&---------------------------------------------------------------------* *&Form MY_USER_COMMAND *&---------------------------------------------------------------------* FORM my_user_command USING p_ucomm TYPE sy-ucomm p_selfield TYPE slis_selfield. CASE p_ucomm. WHEN 'REGR' OR 'SALI'. p_selfield-exit = abap_true. ENDCASE. ENDFORM. " MY_USER_COMMAND
__________________
tenchy |
#2
|
|||
|
|||
Primero llena la tabla, luego muestras el ALV.
Es decir, primero viene el LOOP luego la llamada a la función REUSE_ALV_GRID_DISPLAY_LVC. |
#3
|
|||
|
|||
RESULTADO NEGARIVO Ripper87
aun que hice lo que me indicaste al momento de pasara a verificar no trae datos según "check not " la tabla viene vacía.
ya lo modifique según entendí tu idea.. REPORT ZCONSULTA_DOCFI. TABLES: BKPF ,BSEG. DATA:BEGIN OF T_DATOS OCCURS 0 , BUKRS LIKE BKPF-BUKRS, BELNR LIKE BKPF-BELNR, GJAHR LIKE BKPF-GJAHR, BLDAT LIKE BKPF-BLDAT, BUDAT LIKE BKPF-BUDAT, XBLNR LIKE BKPF-XBLNR, BKTXT LIKE BKPF-BKTXT, BLART LIKE BKPF-BLART, SGTXT LIKE BSEG-SGTXT, PRCTR LIKE BSEG-PRCTR, END OF T_DATOS, e_layout TYPE lvc_s_layo, t_fcat TYPE lvc_t_fcat, fldtext TYPE char50. SELECT-OPTIONS: S_BELNR FOR BKPF-BELNR, S_BLDAT FOR BKPF-BLDAT, S_GJAHR FOR BKPF-GJAHR, S_BUDAT FOR BKPF-BUDAT, S_XBLNR FOR BKPF-XBLNR, S_BKTXT FOR BKPF-BKTXT, S_BLART FOR BKPF-BLART. PARAMETERS: P_BUKRS LIKE BKPF-BUKRS OBLIGATORY. *&--------------------------------------------------------------------* START-OF-SELECTION. PERFORM PIDE_DATOS. PERFORM REPORTE_ALV. *&--------------------------------------------------------------------* FORM PIDE_DATOS. SELECT BUKRS BELNR GJAHR BLDAT BUDAT XBLNR BKTXT BLART INTO T_DATOS FROM BKPF WHERE BUKRS EQ P_BUKRS AND BELNR IN S_BELNR AND GJAHR IN S_GJAHR. APPEND T_DATOS. LOOP AT T_DATOS. SELECT SINGLE SGTXT PRCTR INTO (T_DATOS-SGTXT,T_DATOS-PRCTR) FROM BSEG WHERE BUKRS EQ T_DATOS-BUKRS AND BELNR EQ T_DATOS-BELNR AND GJAHR EQ T_DATOS-GJAHR. ENDLOOP. ENDSELECT. ENDFORM. *&--------------------------------------------------------------------* * REPORTE_ALV *&--------------------------------------------------------------------* FORM REPORTE_ALV. CHECK NOT T_DATOS[] IS INITIAL. PERFORM catalogo_fcat. e_layout-zebra = 'X'. e_layout-sel_mode = 'D'. e_layout-no_rowmove = 'X'. e_layout-col_opt = 'X'. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC' EXPORTING i_callback_program = sy-repid i_callback_html_top_of_page = 'MY_HTML_TOP_PAGE' is_layout_lvc = e_layout it_fieldcat_lvc = t_fcat TABLES t_outtab = T_DATOS EXCEPTIONS program_error = 1. IF SY-TCODE ='T_DATOS'. ENDIF. ENDFORM. *&---------------------------------------------------------------------* * Form catalogo_fcat *&---------------------------------------------------------------------* FORM catalogo_fcat. PERFORM agrega_campos USING: 'BURKS' 'BURKS' 'BKPF' space space, 'BELNR' 'BELNR' 'BKPF' space space, 'GJAHR' 'GJAHR' 'BKPF' space space, 'BLDAT' 'BLDAT' 'BKPF' space space, 'BUDAT' 'BUDAT' 'BKPF' space space, 'XBLNR' 'XBLNR' 'BKPF' space space, 'BKTXT' 'BKTXT' 'BKPF' space space, 'BLART' 'BLART' 'BKPF' space space, 'SGTXT' 'SGTXT' 'BSEG' space space, 'PRCTR' 'PRCTR' 'BSEG' space space. ENDFORM. " CATALOGO_FCAT *&---------------------------------------------------------------------* * Agrega_Campos *&---------------------------------------------------------------------* FORM agrega_campos USING value(p1) value(p2) value(p3) value(p4) value(p5). DATA l_fcat TYPE lvc_s_fcat. l_fcat-fieldname = p1. l_fcat-ref_field = p2. l_fcat-ref_table = p3. l_fcat-coltext = p4. l_fcat-inttype = p5. l_fcat-col_opt = 'X'. IF p5 NE space. l_fcat-intlen = 20. l_fcat-decimals = 2. l_fcat-decimals_o = 2. ENDIF. APPEND l_fcat TO t_fcat. ENDFORM. " agrega_campos *&---------------------------------------------------------------------* *&Form MY_USER_COMMAND *&---------------------------------------------------------------------* FORM my_user_command USING p_ucomm TYPE sy-ucomm p_selfield TYPE slis_selfield. CASE p_ucomm. WHEN 'REGR' OR 'SALI'. p_selfield-exit = abap_true. ENDCASE. ENDFORM. " MY_USER_COMMAND
__________________
tenchy |
#4
|
|||
|
|||
hola siguiendo mi problema ya lo resolvi muchas gracias por la ayuda no lo hubiera logrado sin tu comentario muchas gracias..
__________________
tenchy |
#5
|
|||
|
|||
El problema era el EQ de bukrs.. (en vez de IN) |
#6
|
|||
|
|||
help.!!
hola estoy atorado he seguido consejos pero aun no me inserta los datos en alv aun si me muestra alv pero vacío.
*&---------------------------------------------------------------------* *&Report ZVERCONSULTA *&---------------------------------------------------------------------* *&Analisis de Documentos FI *&---------------------------------------------------------------------* REPORT ZCONSULTA_DOCFI. TABLES:BKPF,BSEG. TYPES: BEGIN OF TY_BKPF, BUKRS TYPE BKPF-BUKRS, BELNR TYPE BKPF-BELNR, GJAHR TYPE BKPF-GJAHR, BLDAT TYPE BKPF-BLDAT, BUDAT TYPE BKPF-BUDAT, XBLNR TYPE BKPF-XBLNR, BKTXT TYPE BKPF-BKTXT, BLART TYPE BKPF-BLART, END OF TY_BKPF. TYPES: BEGIN OF TY_BSEG, BUKRS TYPE BSEG-BUKRS, BELNR TYPE BSEG-BELNR, GJAHR TYPE BSEG-GJAHR, SGTXT TYPE BSEG-SGTXT, PRCTR TYPE BSEG-PRCTR, END OF TY_BSEG. TYPES: BEGIN OF TY_DATOS, BUKRS TYPE BKPF-BUKRS, BELNR TYPE BKPF-BELNR, GJAHR TYPE BKPF-GJAHR, BLDAT TYPE BKPF-BLDAT, BUDAT TYPE BKPF-BUDAT, XBLNR TYPE BKPF-XBLNR, BKTXT TYPE BKPF-BKTXT, BLART TYPE BKPF-BLART, SGTXT TYPE BSEG-SGTXT, PRCTR TYPE BSEG-PRCTR, END OF TY_DATOS. DATA:e_layout TYPE lvc_s_layo, t_fcat TYPE lvc_t_fcat, fldtext TYPE char50. DATA: T_DATOS TYPE STANDARD TABLE OF TY_DATOS, T_BKPF TYPE STANDARD TABLE OF TY_BKPF, T_BSEG TYPE STANDARD TABLE OF TY_BSEG. DATA: WA_BKPF TYPE TY_BKPF, WA_BSEG TYPE TY_BSEG, WA_DATOS TYPE TY_DATOS. " FILTROS DE BUSQUEDA DE CAMPOS SELECT-OPTIONS: S_BELNR FOR BKPF-BELNR, S_BLDAT FOR BKPF-BLDAT, S_GJAHR FOR BKPF-GJAHR, S_BUDAT FOR BKPF-BUDAT, S_XBLNR FOR BKPF-XBLNR, S_BLART FOR BKPF-BLART. PARAMETERS: P_BUKRS LIKE BKPF-BUKRS OBLIGATORY. *&--------------------------------------------------------------------* START-OF-SELECTION."Ejecuta sub-rutinas PERFORM PIDE_DATOS. "Sub-rutina paso 1 PERFORM REPORTE_ALV."Sub-rutina paso 2 *&--------------------------------------------------------------------* FORM PIDE_DATOS. SELECT BUKRS BELNR GJAHR BLDAT BUDAT XBLNR BKTXT BLART FROM BKPF INTO TABLE T_BKPF WHERE BUKRS EQ P_BUKRS AND BELNR IN S_BELNR AND GJAHR IN S_GJAHR. IF T_BKPF[] IS NOT INITIAL. SELECT BUKRS BELNR GJAHR SGTXT PRCTR FROM BSEG INTO TABLE T_BSEG FOR ALL ENTRIES IN T_BKPF WHERE BUKRS EQ T_BKPF-BUKRS AND BELNR EQ T_BKPF-BELNR AND GJAHR EQ T_BKPF-GJAHR. ENDIF. LOOP AT T_BKPF INTO WA_BKPF. WA_DATOS-BUKRS = WA_BKPF-BUKRS. WA_DATOS-BELNR = WA_BKPF-BELNR. WA_DATOS-GJAHR = WA_BKPF-GJAHR. WA_DATOS-XBLNR = WA_BKPF-XBLNR. WA_DATOS-BKTXT = WA_BKPF-BKTXT. WA_DATOS-BLART = WA_BKPF-BLART. WA_DATOS-BUDAT = WA_BKPF-BUDAT. WA_DATOS-BLDAT = WA_BKPF-BLDAT. IF SY-SUBRC EQ 0. WA_DATOS-SGTXT = WA_BSEG-SGTXT. WA_DATOS-PRCTR = WA_BSEG-PRCTR. ENDIF. READ TABLE T_BKPF INTO WA_BKPF WITH KEY BUKRS = WA_BKPF-BUKRS BELNR = WA_BKPF-BELNR GJAHR = WA_BKPF-GJAHR. ENDLOOP. APPEND WA_DATOS TO T_DATOS. CLEAR WA_DATOS. ENDFORM. *&--------------------------------------------------------------------* *REPORTE_ALV.- "SUBRUTINA" (SI AHI DATOS EMPIEZA)SI HAY DATOS,CARGA LOS DATOS Y EL CATALOGO. *SI NO(NO PRESENTA DATOS) *&--------------------------------------------------------------------* FORM REPORTE_ALV. CHECK NOT T_DATOS[] IS INITIAL." REVISA SI REALMENTE AHI DATOS EN (TAB.INT.) T_DATOS PERFORM catalogo_fcat. e_layout-zebra = 'X'. e_layout-sel_mode = 'D'. e_layout-no_rowmove = 'X'. e_layout-col_opt = 'X'. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC' "LLAMADO DE FUNCION ALV. EXPORTING i_callback_program = sy-repid i_callback_html_top_of_page = 'MY_HTML_TOP_PAGE' is_layout_lvc = e_layout it_fieldcat_lvc = t_fcat TABLES t_outtab = T_DATOS EXCEPTIONS program_error = 1. IF SY-TCODE ='ZCONSULTA_DOCFI'. ENDIF. ENDFORM. *&---------------------------------------------------------------------* * CATALOGO.- COLOCA LAS CABECERAS DEL ALV *&---------------------------------------------------------------------* FORM catalogo_fcat. PERFORM agrega_campos USING: 'BUKRS' 'BUKRS' 'BKPF' space space, 'BELNR' 'BELNR' 'BKPF' space space, 'GJAHR' 'GJAHR' 'BKPF' space space, 'BLDAT' 'BLDAT' 'BKPF' space space, 'BUDAT' 'BUDAT' 'BKPF' space space, 'XBLNR' 'XBLNR' 'BKPF' space space, 'BKTXT' 'BKTXT' 'BKPF' space space, 'BLART' 'BLART' 'BKPF' space space, 'SGTXT' 'SGTXT' 'BSEG' space space, 'PRCTR' 'PRCTR' 'BSEG' space space. ENDFORM. " CATALOGO_FCAT *&---------------------------------------------------------------------* * AGREGA CAMPOS *&---------------------------------------------------------------------* FORM agrega_campos USING value(p1) value(p2) value(p3) value(p4) value(p5). DATA l_fcat TYPE lvc_s_fcat. l_fcat-fieldname = p1. l_fcat-ref_field = p2. l_fcat-ref_table = p3. l_fcat-coltext = p4. l_fcat-inttype = p5. l_fcat-col_opt = 'X'. IF p5 NE space. l_fcat-intlen = 20. l_fcat-decimals = 2. l_fcat-decimals_o = 2. ENDIF. APPEND l_fcat TO t_fcat. ENDFORM. " finliza agrega_campos *&---------------------------------------------------------------------* *&Form MY_USER_COMMAND *&---------------------------------------------------------------------* FORM my_user_command USING p_ucomm TYPE sy-ucomm p_selfield TYPE slis_selfield. CASE p_ucomm. WHEN 'REGR' OR 'SALI'. p_selfield-exit = abap_true. ENDCASE. ENDFORM. " MY_USER_COMMAND *-----------------------------------------------------------------------*
__________________
tenchy |
#7
|
|||
|
|||
el problema
la verdad es que aun siguo modificando en mi empresa me dieron los libros de abap y quieren que haga este programita pero aun no lo termina
__________________
tenchy |
#8
|
|||
|
|||
Mete esos dos dentro del loop
APPEND WA_DATOS TO T_DATOS. CLEAR WA_DATOS. Algo asi: FORM PIDE_DATOS. SELECT BUKRS BELNR GJAHR BLDAT BUDAT XBLNR BKTXT BLART FROM BKPF INTO TABLE T_BKPF WHERE BUKRS EQ P_BUKRS AND BELNR IN S_BELNR AND GJAHR IN S_GJAHR. IF T_BKPF[] IS NOT INITIAL. SELECT BUKRS BELNR GJAHR SGTXT PRCTR FROM BSEG INTO TABLE T_BSEG FOR ALL ENTRIES IN T_BKPF WHERE BUKRS EQ T_BKPF-BUKRS AND BELNR EQ T_BKPF-BELNR AND GJAHR EQ T_BKPF-GJAHR. ENDIF. LOOP AT T_BKPF INTO WA_BKPF. WA_DATOS-BUKRS = WA_BKPF-BUKRS. WA_DATOS-BELNR = WA_BKPF-BELNR. WA_DATOS-GJAHR = WA_BKPF-GJAHR. WA_DATOS-XBLNR = WA_BKPF-XBLNR. WA_DATOS-BKTXT = WA_BKPF-BKTXT. WA_DATOS-BLART = WA_BKPF-BLART. WA_DATOS-BUDAT = WA_BKPF-BUDAT. WA_DATOS-BLDAT = WA_BKPF-BLDAT. aqui pon un read table a la t_bseg IF SY-SUBRC EQ 0. WA_DATOS-SGTXT = WA_BSEG-SGTXT. WA_DATOS-PRCTR = WA_BSEG-PRCTR. ENDIF. Aqui sobreescribes la work area wa_bkpf READ TABLE T_BKPF INTO WA_BKPF WITH KEY BUKRS = WA_BKPF-BUKRS BELNR = WA_BKPF-BELNR GJAHR = WA_BKPF-GJAHR. seleccionas el registro y lluego?? Metiendo estos aca almacenas los registros uno a uno en t_datos APPEND WA_DATOS TO T_DATOS. CLEAR WA_DATOS. ENDLOOP. ENDFORM. Espero te sirva, saludos! |
#9
|
|||
|
|||
como puedo colocar estos campos en el mismo renglon
tengo problemas al ordenar los campos ya me trae mi código lo que deseo pero quiero ordenarlos PRCTR Y LIFNR no me aparecer sobre el mismo reglon.
alguien me puede ayudar...
__________________
tenchy Úlima edición por aaron alfonso fecha: 06/08/14 a las 15:58:07. |
#10
|
|||
|
|||
como puedo colocar estos campos en el mismo renglon
tengo problemas al ordenar los campos ya me trae mi código lo que deseo pero quiero ordenarlos PRCTR Y LIFNR no me aparecer sobre el mismo reglon.
alguien me puede ayudar... *&---------------------------------------------------------------* *&Report ZVERCONSULTA *&---------------------------------------------------------------* *&Analisis de Documentos FI *&-------------------------------------------------------------------* REPORT ZCONSULTA_DOCFI. TABLES: BKPF ,BSEG. "pasar como parámetro una tabla interna por referencia DATA:BEGIN OF T_DATOS OCCURS 0, "Estructura T_DATOS con Cabecera... BUKRS LIKE BKPF-BUKRS, "Sociedad BELNR LIKE BKPF-BELNR, "Número de un documento contable GJAHR LIKE BKPF-GJAHR, "Ejercicio BLART LIKE BKPF-BLART, "Clase de documento BLDAT LIKE BKPF-BLDAT, "Fecha de documento en documento BUDAT LIKE BKPF-BUDAT, "Fecha de contabilización en el documento XBLNR LIKE BKPF-XBLNR, "Número de documento de referencia BKTXT LIKE BKPF-BKTXT, "Texto de cabecera de documento WAERS LIKE BKPF-WAERS, "Clave de moneda local STBLG LIKE BKPF-STBLG, "Número del documento de anulación PRCTR LIKE BSEG-PRCTR, "Centro de beneficio SGTXT LIKE BSEG-SGTXT, "Texto posición LIFNR LIKE BSEG-LIFNR, "Número de cuenta del proveedor o acreedor DMBTR LIKE BSEG-DMBTR, "Importe en moneda local ZTERM LIKE BSEG-ZTERM, "Condiciòn de Pago END OF T_DATOS. DATA: CONTADOR TYPE I. "Contador tipo (i) Entero... SELECT-OPTIONS: "Filtros de busqueda.... S_BUKRS FOR BKPF-BUKRS, "Sociedad S_BELNR FOR BKPF-BELNR, "Número de un documento contable S_BLART FOR BKPF-BLART, "Clase de documento S_BLDAT FOR BKPF-BLDAT, "Fecha de documento en documento S_BUDAT FOR BKPF-BUDAT, "Fecha de contabilización en el documento S_XBLNR FOR BKPF-XBLNR, "Número de documento de referencia S_WAERS FOR BKPF-WAERS, "Clave de moneda local S_STBLG FOR BKPF-STBLG, "Número del documento de anulación S_PRCTR FOR BSEG-PRCTR, "Centro de beneficio S_LIFNR FOR BSEG-LIFNR, "Número de cuenta del proveedor o acreedor S_DMBTR FOR BSEG-DMBTR. "Importe en moneda local PARAMETERS: P_GJAHR LIKE BKPF-GJAHR OBLIGATORY. "Ejercicio Campo Obligatorio DATA:e_layout TYPE lvc_s_layo, "Estructura de layout t_fcat TYPE lvc_t_fcat, fldtext TYPE char50. *&---------------------------------------------------------------* START-OF-SELECTION. "Ejecuta sub-rutinas paso a paso PERFORM PIDE_DATOS. "Sub-rutina paso 1ra PERFORM REPORTE_ALV. "Sub-rutina paso 2da *&-------------------------------------------------------------------* FORM PIDE_DATOS. "Sub-rutina 1ra. SELECT BUKRS BELNR GJAHR BLART BLDAT BUDAT XBLNR BKTXT WAERS STBLG INTO T_DATOS FROM BKPF WHERE BUKRS IN S_BUKRS "Sociedad AND BELNR IN S_BELNR "Número de un documento contable AND GJAHR EQ P_GJAHR "Ejercicio AND BLART IN S_BLART "Clase de documento AND BLDAT IN S_BLDAT "Clase de documento AND BUDAT IN S_BUDAT "Fecha de contabilización en el documento AND XBLNR IN S_XBLNR "Número de documento de referencia AND STBLG IN S_STBLG. "Número del documento de anulación APPEND T_DATOS. "Contener... ENDSELECT. LOOP AT T_DATOS. "Ciclo... CONTADOR = SY-TABIX. SELECT SINGLE PRCTR INTO T_DATOS-PRCTR FROM BSEG WHERE BUKRS EQ T_DATOS-BUKRS AND BELNR EQ T_DATOS-BELNR AND GJAHR EQ T_DATOS-GJAHR AND ( PRCTR NE T_DATOS-PRCTR OR LIFNR EQ T_DATOS-LIFNR ). SELECT SINGLE LIFNR INTO T_DATOS-LIFNR FROM BSEG WHERE BUKRS EQ T_DATOS-BUKRS AND BELNR EQ T_DATOS-BELNR AND GJAHR EQ T_DATOS-GJAHR AND ( PRCTR EQ T_DATOS-PRCTR OR LIFNR NE T_DATOS-LIFNR ). SELECT SINGLE SGTXT INTO T_DATOS-SGTXT FROM BSEG WHERE BUKRS EQ T_DATOS-BUKRS AND BELNR EQ T_DATOS-BELNR AND GJAHR EQ T_DATOS-GJAHR. SELECT SINGLE DMBTR INTO T_DATOS-DMBTR FROM BSEG WHERE BUKRS EQ T_DATOS-BUKRS AND BELNR EQ T_DATOS-BELNR AND GJAHR EQ T_DATOS-GJAHR. SELECT SINGLE ZTERM INTO T_DATOS-ZTERM FROM BSEG WHERE BUKRS EQ T_DATOS-BUKRS AND BELNR EQ T_DATOS-BELNR AND GJAHR EQ T_DATOS-GJAHR. MODIFY T_DATOS INDEX CONTADOR. "Modifica el contador... ENDLOOP. ENDFORM. *&-----------------------------------------------------------------* FORM REPORTE_ALV."Sub-rutina 2da. CHECK NOT T_DATOS[] IS INITIAL. "REVISA SI REALMENTE AHI DATOS EN (TAB.INT.) SE CUMPLE PASAR A CATALOGO PERFORM catalogo_fcat. "CATALOGO SUB-RUTINA e_layout-zebra = 'X'. e_layout-sel_mode = 'D'. e_layout-no_rowmove = 'X'. e_layout-col_opt = 'X'. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC' "LLAMADO DE FUNCION ALV. EXPORTING i_callback_program = sy-repid is_layout_lvc = e_layout it_fieldcat_lvc = t_fcat TABLES t_outtab = T_DATOS "LLAMANDO ALA TAB._INT. EXCEPTIONS program_error = 1. ENDFORM. *&----------------------------------------------------------------* *& CATALOGO.- COLOCA LAS CABECERAS DEL ALV *&------------------------------------------------------------------* FORM catalogo_fcat. PERFORM agrega_campos USING: 'BUKRS' 'BUKRS' 'BKPF' space space, "SOCIEDAD 'BELNR' 'BELNR' 'BKPF' space space, "NUM.DOC. 'GJAHR' 'GJAHR' 'BKPF' space space, "EJERCICIO 'BLART' 'BLART' 'BKPF' space space, "CLASE 'BLDAT' 'BLDAT' 'BKPF' space space, "FECHA DE DOC. 'BUDAT' 'BUDAT' 'BKPF' space space, "FECHA DE CONTABILIDAD 'XBLNR' 'XBLNR' 'BKPF' space space, "REFERENCIA 'BKTXT' 'BKTXT' 'BKPF' space space, "TEXT.CAB.DOC. 'WAERS' 'WAERS' 'BKPF' space space, "CLV.DE MONEDA 'STBLG' 'STBLG' 'BKPF' space space, 'PRCTR' 'PRCTR' 'BSEG' space space, 'SGTXT' 'SGTXT' 'BSEG' space space, "TEXTO. 'LIFNR' 'LIFNR' 'BSEG' space space, "AGREDOR 'DMBTR' 'DMBTR' 'BSEG' space space, "IMPORTE ML 'ZTERM' 'ZTERM' 'BSEG' space space. "MXN ENDFORM. " CATALOGO_FCAT *&-----------------------------------------------------------------* *& AGREGA CAMPOS *&----------------------------------------------------------------* FORM agrega_campos USING value(p1) value(p2) value(p3) value(p4) value(p5). DATA l_fcat TYPE lvc_s_fcat. l_fcat-fieldname = p1. l_fcat-ref_field = p2. l_fcat-ref_table = p3. l_fcat-coltext = p4. l_fcat-inttype = p5. l_fcat-col_opt = 'X'. IF p5 NE space. l_fcat-intlen = 20. l_fcat-decimals = 2. l_fcat-decimals_o = 2. ENDIF. APPEND l_fcat TO t_fcat. ENDFORM. " finliza agrega_campos *&----------------------------------------------------------------* *&Form MY_USER_COMMAND *&--------------------------------------------------------------* FORM my_user_command USING p_ucomm TYPE sy-ucomm p_selfield TYPE slis_selfield. CASE p_ucomm. WHEN 'REGR' OR 'SALI'. p_selfield-exit = abap_true. ENDCASE. ENDFORM. " MY_USER_COMMAND *-----------------------------------------------------------------*
__________________
tenchy |
Herramientas | Buscar en Tema |
Desplegado | |
|
|