Ayuda LVC_FIELDCATALOG_MERGE

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • miguel.esteban.martin
    Member
    • ene
    • 89

    #1

    Ayuda LVC_FIELDCATALOG_MERGE

    tengo un porblema con un campo qeu me me muestra mi alv.
    antes el catalogo de datos lo hacia a mano introduciendo cada campo en el fieldcat.

    tengo un campo del tipo numc10 y antes para que en vez de ponerme un 1 me pusiera 00000001 lo convertia yo mismo antes de meterlo en el fieldcat pero ahora al usar la funcion LVC_FIELDCATALOG_MERGE todo esto es automatico y no se como convertir el numero para uqe me lo muestre con los 0 delante.
    me podeis esplicar si hay alguna manera de convertir este numero

    muchas gracias
  • Mauricio Hidalgo
    Senior Member
    • may
    • 481

    #2
    Deja el atributo <tu_catalogo>-no_zero = space. en los campos que necesites ver los ceros.

    Saludos

    Comentario

    • miguel.esteban.martin
      Member
      • ene
      • 89

      #3
      pero como se cual es el campo que quiero cambiar dentro del catalogo.
      yo e echo esto pero no sale.

      loop at gt_fieldcat.
      if gt_fieldcat-fieldname = 'BULTO'.
      gt_fieldcat-no_zero = space.
      endif.
      endloop.

      yo quiero que mi campo bulto muestre los ceros.

      Comentario

      • ballan
        Senior Member
        • oct
        • 671

        #4
        Sustituye esto

        loop at gt_fieldcat.
        if gt_fieldcat-fieldname = 'BULTO'.
        gt_fieldcat-no_zero = space.
        endif.
        endloop.

        por esto

        field-symbols: <linea> type any.

        loop at gt_fieldcat assigning <linea>.

        if <linea>-fieldname = 'BULTO'.

        <linea>-no_zero = space.

        endif.

        endloop.

        Comentario

        • miguel.esteban.martin
          Member
          • ene
          • 89

          #5
          me da un error.
          <LINEA> is neither specified under "TABLES" nor definde as an internal table.
          puedes esplicarme porque?

          Comentario

          • ballan
            Senior Member
            • oct
            • 671

            #6
            Si tu haces

            LOOP AT tabla.

            tabla-campo1 = 'Valor'.

            ENDLOOP.

            observaras que no se reflejan los cambios dentro de tu tabla interna, es porque te falta utilizar la instruccion MODIFY, tendrias que hacer esto:

            LOOP AT tabla.

            tabla-campo1 = 'Valor'.

            MODIFY tabla.

            ENDLOOP.

            Y ahora si verias actualizado el campo en tu tabla interna

            Una manera de hacer este proceso mas rapido es utilizando field-symbols, que resumiendo son al ABAP IV lo que a otros lenguajes de programacion son los punteros, lo harias asi.

            *Aqui declaras el field-symbols, tiene que ir obligatoriamente con los < y >
            field-symbols: <linea> type any.

            loop at tabla assigning <linea>.

            <linea>-campo = 'Valor'.

            endloop.

            Como el field-symbol apunta directamente al contenido de la tabla no tienes que utilizar MODIFY

            Comentario

            Trabajando...