problema con el ALV_GRID y CALL METHOD er_data_change

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • rrrsap
    Junior Member
    • jul
    • 8

    #1

    problema con el ALV_GRID y CALL METHOD er_data_change

    Hola a tod@s,

    tengo un problema con el ALV_GRID.

    Utilizo el CALL METHOD er_data_change->get_cell_value
    para controlar un campo de la ALV.
    cambio el campo fecha1 del registro X del ALV.
    En el campo "value" tengo el valor de la fecha1 que he cambiado y que en seguida voy a controlar...
    pero, a parte de este nuevo valor, tambien necestito saber cuales son los valores de los otros campos del mismo registro X (por ej fecha2, nombre, etc..)

    Muchas gracias por la ayuda

    RRRSAP
  • DavidXD_XD
    Moderator
    • ago
    • 1255

    #2
    Hola, cuando usas el evento handle_data_changed tienes esto ...

    Código:
    handle_data_changed
      FOR EVENT DATA_CHANGED OF cl_gui_alv_grid
        IMPORTING er_data_changed.
    Dentro del parametro er_data_changed existe un atributo llamado mt_good_cells y con ese puedes saber que valor se ha cambiado dentro de la celda editable, asi como tambien el nombre del campo y el numero de registro de la tabla interna que cambiaste, ejemplo

    Código:
    DATA: g_good TYPE lvc_s_modi.
    
    FIELD-SYMBOLS: <fs> LIKE LINE OF itab.
    
    LOOP AT er_data_changed->mt_good_cells INTO g_good.
      READ TABLE itab INDEX g_good-row_id ASSIGNING <fs>.
      IF sy-subrc = 0.
        ... "Aqui tengo la estructura de la linea que contiene la modificacion de la celda
      ENDIF.
    ENDLOOP.
    Espero que te pueda ayudar
    David Carballido Córdova

    Comentario

    • rrrsap
      Junior Member
      • jul
      • 8

      #3
      Muchas gracias

      Mucha gracias David

      siempre muy gentil

      RRRSAP

      Comentario

      • rrrsap
        Junior Member
        • jul
        • 8

        #4
        de nuevo ayuda!

        Hola otra vez,

        he puesto el nuevo codigo, pero lo que obtengo es el valor nuevo de la fecha( valor cambiado ) pero yo necesito tambien el viejo valor por que tengo que chequear que el nuevo valor sea mayor del viejo valor!!

        sabes como se pueda hacer?

        gracias de la ayuda!!!

        RRRSAP
        Editado por última vez por rrrsap; 20/02/2009, 11:29:04.

        Comentario

        • DavidXD_XD
          Moderator
          • ago
          • 1255

          #5
          Hola, supongamos que cambias el campo CAMP_FECHA, entonces dentro del valor g_good-value tendrias el nuevo valor, mientras que si lees la tabla interna con la fila que modificaste <fs>-camp_fecha todavia tiene el antiguo valor, ahi puedes realizar una comparacion ...

          Código HTML:
          LOOP AT er_data_changed->mt_good_cells INTO g_good.
            READ TABLE itab INDEX g_good-row_id ASSIGNING <fs>.
            IF sy-subrc = 0.
              ... "Aqui tengo la estructura de la linea que contiene la modificacion de la celda
            ENDIF.
          ENDLOOP.
          David Carballido Córdova

          Comentario

          • rrrsap
            Junior Member
            • jul
            • 8

            #6
            Gracias x tu ayuda,

            creo que le he conseguido..

            saludos

            RRRSAP

            Comentario

            • Luis Armando Valdez R.
              Junior Member
              • sep
              • 9

              #7
              Pintar campo en ALV grid

              Hola amigos, tengo un caso que cuando el usuario captura un documento, yo hago una consulta a la BD y obtengo información, pero la quiero pintar en automatico cuando el de enter.

              Ejemplo

              Captura Documento ==>enter

              Pinta Referencia, Fecha, etc.

              Dentro de la línea de registro nueva en mi ALV.

              Gracias!

              Comentario

              Trabajando...