Ayuda con dynpros

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • Garces
    Senior Member
    • ago
    • 321

    #1

    Ayuda con dynpros

    Hola a todos...
    Quisiera saber si alguien me puede ayudar...
    Necesito cambiar las propiedades de un tableview en tiempo de ejecución...
    Es decir... estoy llamando a la misma dynpro en dos partes distintas de mi programa, pero quiero que en me aparezcan ciertas columnas deshabilitadas (disabled) en algunos casos y en otros casos habilitadas (enabled)...
    Alguien sabe como puedo hacer esto?...
    Miguel Ángel Garcés Ramírez
  • DavidXD_XD
    Moderator
    • ago
    • 1255

    #2
    Hola Miguel, claro que se puede ... yo tengo una tabla interna con 3 campos (campo1, campo2, campo3) y 3 radiobuttoms rbtm1, rbtm2, rbtm3, cuando pulso el primer radiobutom se inhabilita la columna 1, cuando presiono el segundo ... la segunda columna, y tercera con tercera.

    Para eso le coloque a cada columna con su respectivo texto un nombre dentro del Grupo1 de los atributos: GR1, GR2 y GR3, ahi esta el codigo ...

    Código:
    PROCESS BEFORE OUTPUT.
      MODULE status.
      LOOP AT itab WITH CONTROL tctrl.
        MODULE status_1.
      ENDLOOP.
    
    PROCESS AFTER INPUT.
      LOOP AT itab.
      ENDLOOP.
      MODULE user_command.
    Y el MODULE que interesa es el status_1.

    Código:
    [COLOR="Blue"]*&---------------------------------------------------------------------*
    *&      Module  status_1  OUTPUT
    *&---------------------------------------------------------------------*
    *       text
    *----------------------------------------------------------------------*[/COLOR]
    MODULE status_1 OUTPUT.
    
      IF rbtm1 = 'X'.
        LOOP AT SCREEN.
          IF screen-group1 = 'GR1'.
            screen-active = 0.
            MODIFY screen.
          ELSE.
            screen-active = 1.
            MODIFY screen.
          ENDIF.
        ENDLOOP.
      ELSEIF rbtm2 = 'X'.
        LOOP AT SCREEN.
          IF screen-group1 = 'GR2'.
            screen-active = 0.
            MODIFY screen.
          ELSE.
            screen-active = 1.
            MODIFY screen.
          ENDIF.
        ENDLOOP.
      ELSE.
        LOOP AT SCREEN.
          IF screen-group1 = 'GR3'.
            screen-active = 0.
            MODIFY screen.
          ELSE.
            screen-active = 1.
            MODIFY screen.
          ENDIF.
        ENDLOOP.
      ENDIF.
    
    ENDMODULE.                 " status_1  OUTPUT
    Nos avisas como te fue ...
    David Carballido Córdova

    Comentario

    • Garces
      Senior Member
      • ago
      • 321

      #3
      Muchas gracias por la respuesta...
      Sé que la solución va por ahí... puesto que ya pude habilitar y deshabilitar algunos controles.... como botones.... entre otros...
      Pero los campos de la tabla no se deshabilitan...
      Ya hice el debug respectivo y las condiciones están correctas... se modifican los valores de la estructura SCREEN, pero en la visualización, las columnas siguen habilitadas...

      De todas maneras esto me ha dado una luz... y voy a seguir intentando..
      Luego les cuento
      Saludos...
      Miguel Ángel Garcés Ramírez

      Comentario

      • DavidXD_XD
        Moderator
        • ago
        • 1255

        #4
        SI las quieres como no habilitadas (para no colocar valores ...) pruebale en vez de el campo active con el campo:

        output = 1.
        input = 0.
        MODIFY screen.
        David Carballido Córdova

        Comentario

        • Garces
          Senior Member
          • ago
          • 321

          #5
          También intenté así....
          Incluso intenté con 'invisible' pero nada...
          Sólo funciona con controles fuera de mi tableview, pero lo que están dentro no...
          De repente me estoy olvidando de algo... me dijiste que el grupo 'GR1', 'GR2',... se lo asignaste a cada columna "con su respectivo texto"... a qué te referías con "su respectivo texto"? a las cabeceras de la tabla acaso?
          Yo lo asigné a los campos de texto de entrada/salida dentro de la tabla y nada...
          Raro....
          Voy a seguir intentando...
          Gracias x tu apoyo....
          Miguel Ángel Garcés Ramírez

          Comentario

          • DavidXD_XD
            Moderator
            • ago
            • 1255

            #6
            Te muestro como me sale a mi en dibujos ... tal vez asi se vea si eso es lo que necesitas ...
            Archivos Adjuntos
            David Carballido Córdova

            Comentario

            • Garces
              Senior Member
              • ago
              • 321

              #7
              Sólo para avisar que ya funcionó...
              Lo que pasaba era que en el dynpro la llamada al MODULE no estaba dentro del loop al table view sino fuera...
              Por eso sólo afectaba los controles fuera del tableview...
              De nuevo muchas gracias x el apoyo
              Saludos
              Miguel Ángel Garcés Ramírez

              Comentario

              Trabajando...