Cómo ocultar SAP ABAP Tabla de control de la Columna?

Siguiente código en PBO no funciona para ocultar la columna completamente.

LOOP AT SCREEN.

    IF SCREEN-NAME EQ 'GT_SO-POSNR'
      SCREEN-INPUT = 0.
      SCREEN-ACTIVE = 0.
      SCREEN-INVISIBLE = 1.
      MODIFY SCREEN.
    ENDIF.
ENDLOOP.

Pero la de arriba es la desactivación de la columna, no ocultarlo. Cualquier ayuda cómo ocultar la Columna?

3 Kommentare

  1. 2

    Utilice el campo INVISIBLE de la COLS tabla en la estructura definida por el CONTROLS declaración. Toda la estructura está documentado aquí. Debe haber un programa de ejemplo denominado RSDEMO02 en su sistema que permite modificar las propiedades de la tabla de control y examinar los resultados de como hacerlo.

    • Hola, Cualquier otra propiedad de invisible? He intentado INVISIBLE, pero no hubo suerte, lo que no es invisible, sino que convierte el contenido de ‘*********’, supongo que esto está destinado a hacer que el contenido sea invisible? Probablemente, Como campo de Contraseña.. Pero mi necesidad es ocultar toda la columna con los datos y en el encabezado. Gracias.
  2. 2

    Hemos tenido el mismo problema en nuestro proyecto y averiguar cómo hacerlo.

    Véase el siguiente ejemplo:

    PROCESS BEFORE OUTPUT.
    MODULE STATUS.
    LOOP WITH CONTROL TABCTRL.
      MODULE MODIFY_100.
    ENDLOOP.
    
    
    MODULE MODIFY_100 OUTPUT.
      DATA wa_tabctrl TYPE cxtab_column .
    
    * loop at the table control
      LOOP AT TABCTRL-COLS INTO WA_TABCTRL.
        IF WA_TABCTRL-NAME =  'POSNR'.  
    *     once you get to the desired screen, flag the INVISIBLE field for the table control, not the SCREEN table.             
          WA_TABCTRL-INVISIBLE =  'X'. 
    *     Modify the table for table control
          MODIFY TABCTRL-COLS FROM WA_TABCTRL.
         ENDIF.
      ENDLOOP.
    
    ENDMODULE.
    
  3. 1

    Comprobar la forma en que usted está tratando de ocultar la columna en particular. Cuando usted tiene una Tabla de control en la pantalla, hay CXTAB estructura que se ha creado en contra de ella. Así que la desactivación de un campo no es tan sencillo como escribir el nombre de la tabla Interna seguido por el nombre de la columna.

    El código debe ser algo como esto

    PROCESS BEFORE OUTPUT.
    MODULE STATUS.
    LOOP WITH CONTROL TABCTRL.
      MODULE MODIFY_100.
    ENDLOOP.
    
    
    MODULE MODIFY_100 OUTPUT.
      DATA wa_tabctrl TYPE cxtab_column .
    
      LOOP AT TABCTRL-COLS INTO WA_TABCTRL.
        IF WA_TABCTRL-NAME =  'POSNR'.                    
          WA_TABCTRL-SCREEN-INVISIBLE =  '1'. 
          MODIFY TABCTRL-COLS FROM WA_TABCTRL.
         ENDIF.
      ENDLOOP.
    
    ENDMODULE.
    

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea