On Change Of...

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • aldape
    Senior Member
    • dic
    • 204

    #1

    On Change Of...

    hey!! una duda..

    tengo un loop... que adentro tiene un "on change of" de un campo...
    porque la primera vez que corre el loop.. si entra en el change of..
    pero cuando lo ejecuto otravez ya no entra al change of???

    que coraje!!

    ahi manera de limpiar las variables de comaparacion en los loops?
    para que no haga este tipo de cosas...

    saludos!!!!!111
  • aldape
    Senior Member
    • dic
    • 204

    #2
    bueno.. pues ya habia preguntado esto en el pasado.. y buscando encontre la respuesta :P

    se hace con AT NEW.

    la desventaja es que no te deja usar multiples campos.


    pero aqui va otra duda!

    al usar AT FIRST. que viene siendo lo mismo yo digo..
    al entrar al at first, me cambia toda la "row" por puros **** como que hace un fill o algo por el estilo no se a que se deba? alguna idea?
    fue nomas para verificar que todos los registros tuvieran el mismo valor en un campo

    Comentario

    • DavidXD_XD
      Moderator
      • ago
      • 1255

      #3
      Hola ... eso lo hace SAP para poder comparar los campos desde el campo que se declaro hacia la izquierda .... t explico

      Si tengo una tabla interna con estos campos: c1, c2, c3, c4 y c5.

      Ahora si dentro de la tabla interna realizo lo siguiente:

      Código:
      LOOP AT itab.
        AT NEW c3.
          logica ...
        ENDAT.
      ENDLOOP.
      Entonces al momento de debuggear sale
      c1 = valor normal
      c2 = valor normal
      c3 = valor normal
      c4 = *
      c5 = *

      Cuando se ingresa el otro registro les da el mismo valor c4 y c5, con eso puede comparar unicamente los campos del c1 al c3 y para poder obviar la comparacion de c4 y c5 los convierte en *
      David Carballido Córdova

      Comentario

      • Attilio Travascio
        Member
        • jun
        • 54

        #4
        hola

        Buenas tardes.

        El problema de los * en las intrucciones AT, se puede corregir con un suitche(SW), yo lo trabajo de esta manera espero que te sirva.

        Loop at tabla.

        at first.
        sw = 1.
        endat.

        if sw eq 1.
        Rutina
        sw = 0.
        endif.

        endloop.
        ATTILIO TRAVASCIO

        Comentario

        Trabajando...