|
#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! |
Herramientas | Buscar en Tema |
Desplegado | |
|
|