Reporte ALV con datos vacios al exportar a EXCEL

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • fa.luis
    Member
    • ene
    • 66

    #1

    Reporte ALV con datos vacios al exportar a EXCEL

    Hola, alguien podria ayudarme? tengo un reporte ALV el cual cuando exporto los datos a excel no muestra nada, solo cuando lo exporto a otros formatos.
    A continuacion dejo mi codigo, incluso lo pueden probar ya que es puro codigo duro. Espero puedan ayudarme

    Código:
    TYPES: BEGIN OF t_record,
             mat_padre     LIKE csap_mbom-matnr,
             centro        LIKE csap_mbom-werks,
             utilizacion   TYPE csap_mbom-stlan,
             aternativa    LIKE csap_mbom-stlal,
             tipo_pos      TYPE char1,
             componen      LIKE STPO_API03-COMPONENT,
             cant_comp     TYPE KMPMG,
             unidad        TYPE meins,
             flag_new      TYPE char1,
             flag_delete   TYPE char1,
             flag_update   TYPE char1,
             Exito         TYPE char1,
             procesado     TYPE char1,
             message       TYPE char200,
             icon          TYPE char4,
           END OF t_record.
    
    DATA: it_record     TYPE STANDARD TABLE OF t_record INITIAL SIZE 0,
          wa_record     TYPE t_record.
     DATA: g_it_fieldcat TYPE slis_t_fieldcat_alv,
            g_st_fieldcat TYPE slis_fieldcat_alv.
    
    wa_record-mat_padre     = '000000000000016951'.
    wa_record-centro        = '2000'.
    wa_record-utilizacion   = '5'.
    wa_record-aternativa    = '01'.
    *wa_record-tipo_pos      = 'N'.
    wa_record-componen      = '000000000000016951'.
    wa_record-cant_comp     = '800.000'.
    wa_record-unidad        = 'PZA'.
    wa_record-flag_new      = abap_false.
    wa_record-flag_delete   = abap_false.
    wa_record-flag_update   = abap_true.
    wa_record-exito         = abap_false.
    wa_record-procesado     = abap_true.
    wa_record-message       = 'No se ha podido actualizar el componente:'.
    *wa_record-icon          = '@5C@'.
    APPEND WA_RECORD TO IT_RECORD.
    *
     g_st_fieldcat-fieldname = 'icon'. "Nombre del campo de la tabla
      g_st_fieldcat-seltext_m = 'Status'. "Descripción media
      g_st_fieldcat-seltext_s = 'Stat.'. "Descripción corta
      APPEND g_st_fieldcat TO g_it_fieldcat.
    
      g_st_fieldcat-fieldname = 'message'. "Nombre del campo de la tabla
      g_st_fieldcat-seltext_m = 'Resultado'. "Descripción media
      g_st_fieldcat-seltext_s = 'Result'. "Descripción corta
      g_st_fieldcat-intlen    = 38.
      APPEND g_st_fieldcat TO g_it_fieldcat.
    
      g_st_fieldcat-fieldname = 'componen'. "Nombre del campo de la tabla
      g_st_fieldcat-seltext_m = 'Componente'. "Descripción media
      g_st_fieldcat-seltext_s = 'Comp.'. "Descripción corta
      g_st_fieldcat-lzero     = 'X'.
      g_st_fieldcat-no_zero   = 'X'.
      g_st_fieldcat-intlen    = 40.
      APPEND g_st_fieldcat TO g_it_fieldcat.
    
      g_st_fieldcat-fieldname = 'mat_padre'. "Nombre del campo de la tabla
      g_st_fieldcat-seltext_m = 'Material Padre'. "Descripción media
      g_st_fieldcat-seltext_s = 'Mat'. "Descripción corta
      APPEND g_st_fieldcat TO g_it_fieldcat.
    
      g_st_fieldcat-fieldname = 'utilizacion'. "Nombre del campo de la tabla
      g_st_fieldcat-seltext_m = 'Utilizacion'. "Descripción media
      g_st_fieldcat-seltext_s = 'Uti.'. "Descripción corta
      APPEND g_st_fieldcat TO g_it_fieldcat.
    
    
      g_st_fieldcat-fieldname = 'aternativa'. "Nombre del campo de la tabla
      g_st_fieldcat-seltext_m = 'Alternativa'. "Descripción media
      g_st_fieldcat-seltext_s = 'Alt.'. "Descripción corta
      APPEND g_st_fieldcat TO g_it_fieldcat.
    
    
      g_st_fieldcat-fieldname = 'Centro'.  "Nombre del campo de la tabla
      g_st_fieldcat-seltext_m = 'Centro'. "Descripción media
      g_st_fieldcat-seltext_s = 'Cent.'.  "Descripción corta
      APPEND g_st_fieldcat TO g_it_fieldcat.
    
    
    
    
    *  DELETE it_record WHERE procesado IS INITIAL.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          it_fieldcat             = g_it_fieldcat[]
          i_callback_program      = 'ZPP_LIST_MAT_MANT'
    
        TABLES
          t_outtab                = it_record[]
        EXCEPTIONS
          program_error           = 1
          OTHERS                  = 2.
  • julmungal
    Junior Member
    • may
    • 25

    #2
    Buenas.

    Cuando intentas pasar la información de un alv del tipo reuse a excel con el botón excel, me temo que no es exactamente un excel. De hecho si te saliera bien tu archivo excel te daría una advertencia en el excel de windows y te lo convierte al grabarlo ya desde windows.
    Si abres el archivo resultante sin cambios por ejemplo en la versión gratis de excel en un sistema android, te daría un error, quizás sea este tu problema; en este caso no hace la conversión automática de un texto separado por tabuladores (realmente lo que se crea) a un excel (esta versión no lo hace).

    Saludos.

    Comentario

    • Dlanor20777
      Senior Member
      • nov
      • 708

      #3
      Originalmente publicado por fa.luis
      Hola, alguien podria ayudarme? tengo un reporte ALV el cual cuando exporto los datos a excel no muestra nada, solo cuando lo exporto a otros formatos.
      A continuacion dejo mi codigo, incluso lo pueden probar ya que es puro codigo duro. Espero puedan ayudarme

      Código:
      TYPES: BEGIN OF t_record,
               mat_padre     LIKE csap_mbom-matnr,
               centro        LIKE csap_mbom-werks,
               utilizacion   TYPE csap_mbom-stlan,
               aternativa    LIKE csap_mbom-stlal,
               tipo_pos      TYPE char1,
               componen      LIKE STPO_API03-COMPONENT,
               cant_comp     TYPE KMPMG,
               unidad        TYPE meins,
               flag_new      TYPE char1,
               flag_delete   TYPE char1,
               flag_update   TYPE char1,
               Exito         TYPE char1,
               procesado     TYPE char1,
               message       TYPE char200,
               icon          TYPE char4,
             END OF t_record.
      
      DATA: it_record     TYPE STANDARD TABLE OF t_record INITIAL SIZE 0,
            wa_record     TYPE t_record.
       DATA: g_it_fieldcat TYPE slis_t_fieldcat_alv,
              g_st_fieldcat TYPE slis_fieldcat_alv.
      
      wa_record-mat_padre     = '000000000000016951'.
      wa_record-centro        = '2000'.
      wa_record-utilizacion   = '5'.
      wa_record-aternativa    = '01'.
      *wa_record-tipo_pos      = 'N'.
      wa_record-componen      = '000000000000016951'.
      wa_record-cant_comp     = '800.000'.
      wa_record-unidad        = 'PZA'.
      wa_record-flag_new      = abap_false.
      wa_record-flag_delete   = abap_false.
      wa_record-flag_update   = abap_true.
      wa_record-exito         = abap_false.
      wa_record-procesado     = abap_true.
      wa_record-message       = 'No se ha podido actualizar el componente:'.
      *wa_record-icon          = '@5C@'.
      APPEND WA_RECORD TO IT_RECORD.
      *
       g_st_fieldcat-fieldname = 'icon'. "Nombre del campo de la tabla
        g_st_fieldcat-seltext_m = 'Status'. "Descripción media
        g_st_fieldcat-seltext_s = 'Stat.'. "Descripción corta
        APPEND g_st_fieldcat TO g_it_fieldcat.
      
        g_st_fieldcat-fieldname = 'message'. "Nombre del campo de la tabla
        g_st_fieldcat-seltext_m = 'Resultado'. "Descripción media
        g_st_fieldcat-seltext_s = 'Result'. "Descripción corta
        g_st_fieldcat-intlen    = 38.
        APPEND g_st_fieldcat TO g_it_fieldcat.
      
        g_st_fieldcat-fieldname = 'componen'. "Nombre del campo de la tabla
        g_st_fieldcat-seltext_m = 'Componente'. "Descripción media
        g_st_fieldcat-seltext_s = 'Comp.'. "Descripción corta
        g_st_fieldcat-lzero     = 'X'.
        g_st_fieldcat-no_zero   = 'X'.
        g_st_fieldcat-intlen    = 40.
        APPEND g_st_fieldcat TO g_it_fieldcat.
      
        g_st_fieldcat-fieldname = 'mat_padre'. "Nombre del campo de la tabla
        g_st_fieldcat-seltext_m = 'Material Padre'. "Descripción media
        g_st_fieldcat-seltext_s = 'Mat'. "Descripción corta
        APPEND g_st_fieldcat TO g_it_fieldcat.
      
        g_st_fieldcat-fieldname = 'utilizacion'. "Nombre del campo de la tabla
        g_st_fieldcat-seltext_m = 'Utilizacion'. "Descripción media
        g_st_fieldcat-seltext_s = 'Uti.'. "Descripción corta
        APPEND g_st_fieldcat TO g_it_fieldcat.
      
      
        g_st_fieldcat-fieldname = 'aternativa'. "Nombre del campo de la tabla
        g_st_fieldcat-seltext_m = 'Alternativa'. "Descripción media
        g_st_fieldcat-seltext_s = 'Alt.'. "Descripción corta
        APPEND g_st_fieldcat TO g_it_fieldcat.
      
      
        g_st_fieldcat-fieldname = 'Centro'.  "Nombre del campo de la tabla
        g_st_fieldcat-seltext_m = 'Centro'. "Descripción media
        g_st_fieldcat-seltext_s = 'Cent.'.  "Descripción corta
        APPEND g_st_fieldcat TO g_it_fieldcat.
      
      
      
      
      *  DELETE it_record WHERE procesado IS INITIAL.
        CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
          EXPORTING
            it_fieldcat             = g_it_fieldcat[]
            i_callback_program      = 'ZPP_LIST_MAT_MANT'
      
          TABLES
            t_outtab                = it_record[]
          EXCEPTIONS
            program_error           = 1
            OTHERS                  = 2.
      Buenas, ya paso bastante tiempo pero te dejare cual debe ser tu problema en caso de que aun lo necesites u otro usuario.

      Todos tus g_st_fieldcat-fieldname estan en minúsculas, por ejemplo:

      g_st_fieldcat-fieldname = 'icon'. "Nombre del campo de la tabla

      La declaración correcta es en mayúsculas:

      g_st_fieldcat-fieldname = 'ICON'. "Nombre del campo de la tabla

      Prueba y nos comentas.

      Comentario

      Trabajando...