Assign Component

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • AJAAVE

    #1

    Assign Component

    Buenas Tardes, haber si alguien me puede ayudar.

    Podrian indicarme que hace el ASSIGN COMPONENT ... OF STRUCTURE ... TO ...

    Es como un MOVE, WRITE?

    Mi problema es el siguiente, estoy llevando un report estructurado a oo y estoy parado en este codigo...

    ESTRUCTURADO:

    FIELD-SYMBOLS: <ptr> TYPE ANY TABLE.

    LOOP AT itab.

    ASSIGN COMPONENT params_itab-idxdesc
    OF STRUCTURE itab TO <ptr>.
    tmp_itab-desc = <ptr>.

    ...

    ENDLOOP.

    OO:

    FIELD-SYMBOLS: <ptr> TYPE ANY TABLE,
    <FS_ITAB> TYPE TY_ITAB,
    <FS_PARAMS_ITAB> TYPE ZINTEX,
    <FS_TMP_ITAB> TYPE TY_TMP_ITAB.

    READ TABLE PARAMS_ITAB ASSIGNING <FS_PARAMS_ITAB>
    INDEX 1.

    LOOP AT itab ASSIGNING <FS_ITAB>.

    APPEND INITIAL LINE TO TMP_ITAB ASSIGNING <FS_TMP_ITAB>.

    ASSIGN COMPONENT <FS_PARAMS_ITAB>-idxdesc
    OF STRUCTURE itab TO <ptr>. *** ¿¿¿¿ ACA NO SE SI CAMBIAR itab por
    <FS_ITAB> ???? ***

    <FS_TMP_ITAB>-desc = <ptr>. *** Esto me da error:
    <FS_TMP_ITAB>-desc no puede
    ser convertido en el tipo <ptr> ****

    ...

    ENDLOOP.

    No entiendo,
    ¿ Que le asigno a <ptr> ?
    ¿ No es lo mismo <FS_TMP_ITAB>-desc = <FS_PARAMS_ITAB>-idxdesc ó
    MOVE <FS_PARAMS_ITAB>-idxdesc TO <FS_TMP_ITAB>-desc?

    Gracias de antemano por la ayuda.
  • henryq
    Junior Member
    • oct
    • 26

    #2
    Assing component

    Hola.
    Esta sentencia sirve para informar dinámicamenta los campos de una estructura utilizando field-symbols.
    Normalmente se hace así:

    Si tienes una estructura:

    DATA: begin of ejemplo,
    campo1,
    campo2,
    campo3,
    .....,
    end of ejemplo.

    numero_campo = 4.
    ASSIGN COMPONENT numero_campo OF STRUCTURE ejemplo TO <field-symbol>.
    IF sy-subrc EQ 0.
    <field-symbol> = 'Valor que se desea asignar'.
    ENDIF.

    Esto será equivalente a:
    ejemplo-campo4 = 'Valor que se desea asignar'.

    Espero que esto te aclare como se utiliza esta sentencia.

    Comentario

    Trabajando...