#1
|
||||
|
||||
Problema con cabecera ALV
Hola a todos. Tengo un pequeño problema. Hace unos dias cree un programa con cabecera que hasta hoy iba bien...
Ahora me pasa que la cabecera sale en blanco... e estado debuggeando y he podido ver que los datos se passan corrctamente a la tabla que luego va a la función 'REUSE_ALV_COMMENTARY_WRITE'...es decir..que tiene campos. Lo que pasa es que dentro de la función hay un metodo que se llama "method get_row_count" que me devuelve un 4 en la variable SY-SUBRC. No se sipuede ser eso pero es que no se que mas mirar... Me podeis ayudar a localizar el error??? No puede ser muy gordo porque como digo...hasta hoy funcionaba. Os pego el códio entero de mi programa para que podais mirar con mas detalle.Solo os pego los FORMS que es donde esta toda la chicha. Considerad que el resto de variables y demas estan bien declardas. De echo el programa no peta..lo unico que la cabecera sale en blanco. ************************************************************************ * FORM: CATALOGO_ALV * * * ************************************************************************ FORM CATALOGO_ALV. CLEAR IT_FIELDCAT. CLEAR WA_FIELDCAT. WA_FIELDCAT-FIELDNAME = 'RMZHL'. WA_FIELDCAT-SELTEXT_L = 'Nº de Palet'. WA_FIELDCAT-OUTPUTLEN = 9. APPEND WA_FIELDCAT TO IT_FIELDCAT. CLEAR WA_FIELDCAT. WA_FIELDCAT-FIELDNAME = 'LMNGA'. WA_FIELDCAT-SELTEXT_L = 'Cantidad'. WA_FIELDCAT-OUTPUTLEN = 8. APPEND WA_FIELDCAT TO IT_FIELDCAT. CLEAR WA_FIELDCAT. WA_FIELDCAT-FIELDNAME = 'MEINH'. WA_FIELDCAT-SELTEXT_L = 'Unidad de medida'. WA_FIELDCAT-OUTPUTLEN = 15. WA_FIELDCAT-JUST = 'R'. APPEND WA_FIELDCAT TO IT_FIELDCAT. CLEAR WA_FIELDCAT. WA_FIELDCAT-FIELDNAME = 'BUDAT'. WA_FIELDCAT-SELTEXT_L = 'Fecha de Contabilización'. WA_FIELDCAT-OUTPUTLEN = 20. WA_FIELDCAT-JUST = 'R'. APPEND WA_FIELDCAT TO IT_FIELDCAT. ENDFORM. "CATALEG_ALV ************************************************************************ * FORM: LAYOUT_ALV * * * ************************************************************************ FORM LAYOUT_ALV USING LS_LAYOUT TYPE SLIS_LAYOUT_ALV. LS_LAYOUT-ZEBRA = 'X'. GS_LAYOUT-BOX_FIELDNAME = 'SELECCION'. ENDFORM. "LAYOUT_ALV ************************************************************************* * FORM: FUNCIÓN PARA MOSTRAR EL ALV POR PANTALLA * * * ************************************************************************* FORM MOSTRAR_ALV. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING I_CALLBACK_PROGRAM = G_REPID I_CALLBACK_TOP_OF_PAGE = 'TOP-OF-PAGE' IT_FIELDCAT = IT_FIELDCAT IS_LAYOUT = GS_LAYOUT I_CALLBACK_PF_STATUS_SET = 'SET_PF_STATUS' I_CALLBACK_USER_COMMAND = 'USER_COMMAND' TABLES T_OUTTAB = IT_OUT. ENDFORM. "MOSTRAR_ALV ************************************************************************* * FORM: SET_PF_STATUS * * * ************************************************************************* FORM SET_PF_STATUS USING RT_EXTAB TYPE SLIS_T_EXTAB. SET PF-STATUS 'STATUS_ALV'. ENDFORM. " SET_PF_STATUS *************************************************************************** * FORM: GENERAR_FICHERO * * * *************************************************************************** FORM GENERAR_FICHERO. CALL FUNCTION 'GUI_DOWNLOAD' EXPORTING FILENAME = TEXT-003 * FILETYPE = 'DAT' APPEND = 'X' * WRITE_FIELD_SEPARATOR = 'X' * TRUNC_TRAILING_BLANKS = 'X' TABLES DATA_TAB = IT_FICHERO EXCEPTIONS FILE_WRITE_ERROR = 1 NO_BATCH = 2 GUI_REFUSE_FILETRANSFER = 3 INVALID_TYPE = 4 NO_AUTHORITY = 5 UNKNOWN_ERROR = 6. IF SY-SUBRC NE 0. MESSAGE TEXT-004 TYPE 'E'. LEAVE PROGRAM. ENDIF. ENDFORM. "GENERAR_FICHERO ************************************************************************ * FORM: USER_COMMAND * * * ************************************************************************ FORM USER_COMMAND USING RF_UCOMM LIKE SY-UCOMM P_SELFIELD TYPE SLIS_SELFIELD. CASE RF_UCOMM. WHEN 'GENERAR'. CLEAR IT_FICHERO. REFRESH IT_FICHERO. READ TABLE IT_OUT INDEX P_SELFIELD-TABINDEX INTO IT_OUT2. *QUITAMOS LOS CEROS A LA IZQUIERDA DE LOS CAMPOS PALET I CANTIDAD CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING INPUT = IT_OUT2-LMNGA IMPORTING OUTPUT = V_CEROS_CANT. CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING INPUT = IT_OUT2-RMZHL IMPORTING OUTPUT = V_CEROS_PAL. CONCATENATE 'Ha seleccionado el palet nº' V_CEROS_PAL INTO V_AVISO SEPARATED BY SPACE. CONCATENATE V_AVISO '.'INTO V_AVISO3. CONCATENATE 'A continuación deberá marcar nuevamente el palet nº' V_CEROS_PAL '!' INTO V_AVISO2 SEPARATED BY SPACE. CONCATENATE 'OF' V_AUFNR '-' IT_OUT2-RMZHL V_MATNR INTO IT_FICHERO-OFIPRODUCTO. IT_FICHERO-CANTIDAD = IT_OUT2-LMNGA. IT_FICHERO-FECHA_NOTI = IT_OUT2-BUDAT. APPEND IT_FICHERO. *PREPARAMOS LOS DATOS QUE CONSTARAN EN EL IMPRESO CONCATENATE '<H>PRODUCTO:</> ' V_MATNR INTO V_LINIA1 SEPARATED BY SPACE. CONCATENATE '<H>DESCRIPCIÓN:</> ' V_DESC_TMP INTO V_LINIA2 SEPARATED BY SPACE. CONCATENATE '<H>OF:</> ' V_AUFNR INTO V_LINIA3 SEPARATED BY SPACE. CONCATENATE '<H>PALET:</> ' V_CEROS_PAL INTO V_LINIA4 SEPARATED BY SPACE. CONCATENATE '<H>CANTIDAD:</> ' V_CEROS_CANT 'UN' INTO V_LINIA5 SEPARATED BY SPACE. CALL FUNCTION 'CONVERT_DATE_TO_EXTERNAL' EXPORTING DATE_INTERNAL = SY-DATUM IMPORTING DATE_EXTERNAL = V_DATE EXCEPTIONS DATE_INTERNAL_IS_INVALID = 1 OTHERS = 2. CONCATENATE '<H>FECHA DE ANULACIÓN:</> ' V_DATE INTO V_LINIA6 SEPARATED BY SPACE. IF V_FLAG = 1. EXIT. ENDIF. REFRESH IT_BDCDATA. *REALIZAMOS EL BATCH-INPUT CASE P_PRINT. *SE REQUIERE EL IMPRESO. WHEN 'X'. CASE V_LINES. WHEN 1. PERFORM DYNPRO USING: 'X' 'SAPLCORU' '5100', '' 'BDC_CURSOR' 'CORUF-AUFNR', '' 'BDC_OKCODE' '/00', '' 'CORUF-AUFNR' V_AUFNR, 'X' 'SAPLCORU' '5150', '' 'BDC_OKCODE' '=BU', '' 'BDC_SUBSCR' 'SAPLCORU 5830VAR_OPR_10', '' 'BDC_SUBSCR' 'SAPLCORU 5850VAR_CNF_10', '' 'BDC_CURSOR' 'AFRUD-LMNGA', 'X' 'SAPLSTXX' '1100', '' 'BDC_CURSOR' 'RSTXT-TXLINE(03)', '' 'BDC_OKCODE' '=TXOU', '' 'RSTXT-TXPARGRAPH(02)' '*', '' 'RSTXT-TXPARGRAPH(03)' 'C', '' 'RSTXT-TXPARGRAPH(04)' '*', '' 'RSTXT-TXPARGRAPH(05)' '*', '' 'RSTXT-TXPARGRAPH(06)' '*', '' 'RSTXT-TXPARGRAPH(07)' '*', '' 'RSTXT-TXPARGRAPH(08)' '*', '' 'RSTXT-TXPARGRAPH(09)' '*', '' 'RSTXT-TXPARGRAPH(10)' '*', '' 'RSTXT-TXPARGRAPH(11)' '*', '' 'RSTXT-TXLINE(02)' '', '' 'RSTXT-TXLINE(03)' V_LINIA, '' 'RSTXT-TXLINE(04)' '', '' 'RSTXT-TXLINE(05)' '', '' 'RSTXT-TXLINE(06)' V_LINIA6, '' 'RSTXT-TXLINE(07)' V_LINIA1, '' 'RSTXT-TXLINE(08)' V_LINIA2, '' 'RSTXT-TXLINE(09)' V_LINIA3, '' 'RSTXT-TXLINE(10)' V_LINIA4, '' 'RSTXT-TXLINE(11)' V_LINIA5, 'X' 'SAPLSTXC' '0100', '' 'BDC_CURSOR' 'ITCPP-TDDEST', '' 'BDC_OKCODE' '=PRNT', '' 'ITCPP-TDDEST' 'DFW', '' 'ITCPP-TDCOPIES' '1', '' 'ITCPP-TDDATASET' 'SCRIPT', '' 'ITCPP-TDSUFFIX1' 'HPCO', '' 'ITCPP-TDSUFFIX2' SY-UNAME, '' 'ITCPP-TDIMMED' 'X', '' 'ITCPP-TDDELETE' 'X', '' 'ITCPP-TDNEWID' 'X', '' 'ITCPP-TDRECEIVER' SY-UNAME, '' 'ITCPP-TDLIFETIME' '8', '' 'ITCPP-TDARMOD' '1', 'X' 'SAPLSTXX' '1100', '' 'BDC_CURSOR' 'RSTXT-TXLINE(08)', '' 'BDC_OKCODE' '=TXBA'. WHEN OTHERS. CALL FUNCTION 'POPUP_TO_CONFIRM_WITH_MESSAGE' EXPORTING DEFAULTOPTION = 'N' DIAGNOSETEXT1 = V_AVISO3 TEXTLINE1 = V_AVISO2 TEXTLINE2 = 'Desea continuar?' TITEL = 'Atención!' START_COLUMN = 40 START_ROW = 7 IMPORTING ANSWER = V_RESPUESTA. CASE V_RESPUESTA. WHEN 'N' OR 'A'. EXIT. ENDCASE. PERFORM DYNPRO USING: 'X' 'SAPLCORU' '5100', '' 'BDC_CURSOR' 'CORUF-AUFNR', '' 'BDC_OKCODE' '/00', '' 'CORUF-AUFNR' V_AUFNR, 'X' 'SAPLCORU' '0240', '' 'BDC_OKCODE' '=BU', 'X' 'SAPLSTXX' '1100', '' 'BDC_CURSOR' 'RSTXT-TXLINE(03)', '' 'BDC_OKCODE' '=TXOU', '' 'RSTXT-TXPARGRAPH(02)' '*', '' 'RSTXT-TXPARGRAPH(03)' 'C', '' 'RSTXT-TXPARGRAPH(04)' '*', '' 'RSTXT-TXPARGRAPH(05)' '*', '' 'RSTXT-TXPARGRAPH(06)' '*', '' 'RSTXT-TXPARGRAPH(07)' '*', '' 'RSTXT-TXPARGRAPH(08)' '*', '' 'RSTXT-TXPARGRAPH(09)' '*', '' 'RSTXT-TXPARGRAPH(10)' '*', '' 'RSTXT-TXPARGRAPH(11)' '*', '' 'RSTXT-TXLINE(02)' '', '' 'RSTXT-TXLINE(03)' V_LINIA, '' 'RSTXT-TXLINE(04)' '', '' 'RSTXT-TXLINE(05)' '', '' 'RSTXT-TXLINE(06)' V_LINIA6, '' 'RSTXT-TXLINE(07)' V_LINIA1, '' 'RSTXT-TXLINE(08)' V_LINIA2, '' 'RSTXT-TXLINE(09)' V_LINIA3, '' 'RSTXT-TXLINE(10)' V_LINIA4, '' 'RSTXT-TXLINE(11)' V_LINIA5, 'X' 'SAPLSTXC' '0100', '' 'BDC_CURSOR' 'ITCPP-TDDEST', '' 'BDC_OKCODE' '=PRNT', '' 'ITCPP-TDDEST' 'DFW', '' 'ITCPP-TDCOPIES' '1', '' 'ITCPP-TDDATASET' 'SCRIPT', '' 'ITCPP-TDSUFFIX1' 'HPCO', '' 'ITCPP-TDSUFFIX2' SY-UNAME, '' 'ITCPP-TDIMMED' 'X', '' 'ITCPP-TDDELETE' 'X', '' 'ITCPP-TDNEWID' 'X', '' 'ITCPP-TDRECEIVER' SY-UNAME, '' 'ITCPP-TDLIFETIME' '8', '' 'ITCPP-TDARMOD' '1', 'X' 'SAPLSTXX' '1100', '' 'BDC_CURSOR' 'RSTXT-TXLINE(08)', '' 'BDC_OKCODE' '=TXBA'. ENDCASE. *NO SE REQUIERE EL IMPRESO. WHEN OTHERS. CASE V_LINES. WHEN 1. PERFORM DYNPRO USING: 'X' 'SAPLCORU' '5100', '' 'BDC_CURSOR' 'CORUF-AUFNR', '' 'BDC_OKCODE' '/00', '' 'CORUF-AUFNR' V_AUFNR, 'X' 'SAPLCORU' '5150', '' 'BDC_OKCODE' '=BU', '' 'BDC_SUBSCR' 'SAPLCORU 5830VAR_OPR_10', '' 'BDC_SUBSCR' 'SAPLCORU 5850VAR_CNF_10', '' 'BDC_CURSOR' 'AFRUD-LMNGA', 'X' 'SAPLSTXX' '1100', '' 'BDC_CURSOR' 'RSTXT-TXLINE(03)', '' 'BDC_OKCODE' '=TXBA'. WHEN OTHERS. CALL FUNCTION 'POPUP_TO_CONFIRM_WITH_MESSAGE' EXPORTING DEFAULTOPTION = 'N' DIAGNOSETEXT1 = V_AVISO3 TEXTLINE1 = V_AVISO2 TEXTLINE2 = 'Desea continuar?' TITEL = 'Atención!' START_COLUMN = 40 START_ROW = 7 IMPORTING ANSWER = V_RESPUESTA. CASE V_RESPUESTA. WHEN 'N' OR 'A'. EXIT. ENDCASE. PERFORM DYNPRO USING: 'X' 'SAPLCORU' '5100', '' 'BDC_CURSOR' 'CORUF-AUFNR', '' 'BDC_OKCODE' '/00', '' 'CORUF-AUFNR' V_AUFNR, 'X' 'SAPLCORU' '0240', '' 'BDC_OKCODE' '=BU', 'X' 'SAPLSTXX' '1100', '' 'BDC_CURSOR' 'RSTXT-TXLINE(02)', '' 'BDC_OKCODE' '=TXBA'. ENDCASE. ENDCASE. ENDCASE. CALL TRANSACTION 'CORS' USING IT_BDCDATA MODE 'E' MESSAGES INTO IT_MSG. IF SY-SUBRC NE 0. MESSAGE TEXT-009 TYPE 'E'. LEAVE PROGRAM. ELSE. PERFORM GENERAR_FICHERO. ENDIF. MESSAGE TEXT-010 TYPE 'S'. ENDFORM. "user_command ************************************************************************ * FORM: TOP-OF-PAGE * * * ************************************************************************ FORM TOP-OF-PAGE. DATA: T_HEADER TYPE SLIS_T_LISTHEADER, WA_HEADER TYPE SLIS_LISTHEADER, T_LINE LIKE WA_HEADER-INFO, LD_LINES TYPE I, LD_LINESC(10) TYPE C. *ORDEN DE FABRICACIÓN WA_HEADER-TYP = 'S'. WA_HEADER-KEY = 'OF: '. WA_HEADER-INFO = V_AUFNR. APPEND WA_HEADER TO T_HEADER. CLEAR: WA_HEADER. *MATERIAL WA_HEADER-TYP = 'S'. WA_HEADER-KEY = 'Material: '. WA_HEADER-INFO = V_MATNR. APPEND WA_HEADER TO T_HEADER. CLEAR: WA_HEADER. *DESCRIPCIÓN WA_HEADER-TYP = 'S'. WA_HEADER-KEY = 'Descripción: '. WA_HEADER-INFO = V_DESC_TMP. APPEND WA_HEADER TO T_HEADER. CLEAR: WA_HEADER. CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE' EXPORTING IT_LIST_COMMENTARY = T_HEADER. ENDFORM. "TOP-OF-PAGE ************************************************************************ * FORM: DYNPRO * * * ************************************************************************ FORM DYNPRO USING P_DYNBEGIN P_CAMPO P_VALOR. CLEAR IT_BDCDATA. IF P_DYNBEGIN EQ 'X'. MOVE: P_CAMPO TO IT_BDCDATA-PROGRAM, P_VALOR TO IT_BDCDATA-DYNPRO, P_DYNBEGIN TO IT_BDCDATA-DYNBEGIN. ELSE. MOVE: P_CAMPO TO IT_BDCDATA-FNAM, P_VALOR TO IT_BDCDATA-FVAL. ENDIF. APPEND IT_BDCDATA. ENDFORM. "DYNPRO ************************************************************************ * FORM: SELECT_AFRU * * * ************************************************************************ FORM SELECT_AFRU. SELECT AUFNR AENAM LTXA1 RMZHL TXTSP LMNGA MEINH BUDAT FROM AFRU INTO CORRESPONDING FIELDS OF TABLE IT_AFRU WHERE AUFNR = P_AUFNR. SELECT AUFNR BWART RMZHL FROM AFFW INTO CORRESPONDING FIELDS OF TABLE IT_AFFW WHERE AUFNR = P_AUFNR AND BWART = 102. ENDFORM. "SELECT_AFRU ************************************************************************ * FORM: PROCESAR_DATOS * * * ************************************************************************ FORM PROCESAR_DATOS. DELETE IT_AFRU WHERE AENAM NE '' OR LTXA1 NE '' OR TXTSP NE ''. LOOP AT IT_AFRU. READ TABLE IT_AFFW WITH KEY RMZHL = IT_AFRU-RMZHL. IF SY-SUBRC EQ 0. DELETE IT_AFRU INDEX SY-TABIX.. ENDIF. ENDLOOP. LOOP AT IT_AFRU. IT_AFRU-MEINH = 'UN'. SELECT SINGLE MATNR CHARG FROM CHVW INTO IT_CHVW WHERE AUFNR = IT_AFRU-AUFNR AND BWART = '101' AND WERKS = 'CENT'. V_MATNR = IT_CHVW-MATNR. V_CHARG = IT_CHVW-CHARG. MOVE-CORRESPONDING IT_CHVW TO IT_OUT. MOVE-CORRESPONDING IT_AFRU TO IT_OUT. APPEND IT_OUT. ENDLOOP. SELECT SINGLE MAKTX FROM MAKT INTO V_DESC_TMP WHERE MATNR = V_MATNR. V_AUFNR = P_AUFNR. ENDFORM. "PROCESAR_DATOS Os adjuntio tambien una captura del fallo. Muchas gracias a todos...y disculpad si es un poco a saco. |
#2
|
||||
|
||||
Por casualidad actualizaste el Browser de internet?? Si es así tienes que aplicar un parche al sapgui.
Espero puedas resolver |
Herramientas | Buscar en Tema |
Desplegado | |
|
|