Problema con cabecera ALV

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • Driau
    Senior Member
    • ago
    • 235

    #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.
    Archivos Adjuntos
  • Patricia33
    Senior Member
    • sep
    • 148

    #2
    Por casualidad actualizaste el Browser de internet?? Si es así tienes que aplicar un parche al sapgui.

    Espero puedas resolver

    Comentario

    Trabajando...