Field Symbols?

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • Bmamba
    Member
    • jun
    • 91

    #1

    Field Symbols?

    Hola,

    Acabo de terminar un programa, hay una parte que sé que se puede implementar mejor, pero no sé cómo:
    loop at it_alv into wa_alv.
    ...
    case l_num_cir.
    when 0.
    wa_alv_v-campoa0= wa_alv-campoa.
    wa_alv_v-campob0 = wa_alv-campob.
    wa_alv_v-campoc0 = wa_alv-campoc.
    when 1.
    ...
    when 10.

    wa_alv_v-campoa10= wa_alv-campoa.
    wa_alv_v-campob10 = wa_alv-campob.
    wa_alv_v-campoc10 = wa_alv-campoc.
    endcase.

    endloop.

    Me suena que utilizando fieldsymbols se puede llegar a una solución más elegante y no tan chapucera como ésta. ¿Alguien sabe cómo?

    Gracias por anticipado
  • DavidXD_XD
    Moderator
    • ago
    • 1255

    #2
    Aver de esta manera

    Código:
    FIELD-SYMBOLS: <fs>.
    DATA: num TYPE string,
          cadena(17).
    
    LOOP AT it_alv into wa_alv.
      num = l_num_cir.
    [COLOR="Blue"]* Campo a[/COLOR]
      CONCATENATE 'wa_alv_v-campo' 'a' num INTO cadena.
      ASSIGN (cadena) TO <fs>.
      <fs> = wa_alv-campoa.
    [COLOR="blue"]* Campo b[/COLOR]
      CONCATENATE 'wa_alv_v-campo' 'b' num INTO cadena.
      ASSIGN (cadena) TO <fs>.
      <fs> = wa_alv-campob.
    [COLOR="blue"]* Campo c[/COLOR]
      CONCATENATE 'wa_alv_v-campo' 'c' num INTO cadena.
      ASSIGN (cadena) TO <fs>.
      <fs> = wa_alv-campoc.
      MODIFY it_alv FROM wa_alv.
    ENDLOOP.
    Estoy 99% seguro q esa es la forma dinamica de asignar valores ... no tengo SAP, si me ekivici por favor corregirme, espero te pueda servir
    David Carballido Córdova

    Comentario

    • Bmamba
      Member
      • jun
      • 91

      #3
      muchas gracias! tiene una pinta fenomenal.

      Saludos

      Comentario

      Trabajando...