#1
|
|||
|
|||
Table control
Buenas, este es mi primer post, llevo tiempo entrando y lograba encontrar lo que iva buscando, pero esta vez no lo he conseguido.
El caso es que tengo un modul pool con pestañas, al llegar a una de ellas, se divide en dos marcos: - El Marco 1 tiene: * Campos entrada/salida. * Cuadros de texto (container) * Table control - El Marco 2 tiene: *Campos entrada/salida *Cuadro de texto (container) Segun un valor que llegara, digamos X = 1, el marco 2 se ocultaria, y si X = 2, el marco 1 se ocultaria. Todos los campos entrada/salida y textos los he puesto por grupos y no hay problemas con ellos al hacer el Loop at screen, pero debuggeando he visto que ni el table control ni los containers aparecen, por lo que el código, no funciona en esos dos casos. LOOP AT SCREEN. IF screen-group1 = 'G1' OR screen-name = 'TABLE_CONTROL' OR screen-name = 'CONTAINER'. screen-input = '0'. screen-invisible = '1'. MODIFY SCREEN. ENDIF. ENDLOOP. Mi pregunta es, hay alguna manera de ocultar el table control? existe algun metodo o condicion? Porque he probado de varias maneras pero no he logrado nada. Gracias por anticipado |
#2
|
||||
|
||||
HOla, cuando realizas el LOOP AT screen no agarra el Table Control, me explico ... el table control es simplemente un mostrador de campos y por lo mismo no se podrian desactivar, lo mismo pasa con el custom container, t habras dado cuenta q esos 2 tipos de objetos no tienen habilitados los campos para grupos ..., lo que podrias hacer dejar como solo visualizacion a los campos que contiene el table control ... espero te sirva
__________________
David Carballido Córdova |
#3
|
||||
|
||||
Hola, mil disculpas por la respuesta anterior, estuve revisando si se podia y efectivamente la forma para ocultar el table control consiste en armar un LOOP AT screen pero condicionando que entre al grupo1 que deben tener todos los campos del table control incluido sus textos y mostrarlo asi:
IF sy-ucomm = 'ACT'. "Boton de activar LOOP AT SCREEN. IF screen-group1 = 'GR1' OR screen-name = 'TCTRL_LFB1'. screen-active = 1. MODIFY screen. ENDIF. ENDLOOP. ELSEIF sy-ucomm = 'DESACT'. "Boton de desactivar LOOP AT SCREEN. IF screen-group1 = 'GR1' OR screen-name = 'TCTRL_LFB1'. screen-active = 0. MODIFY screen. ENDIF. ENDLOOP. ENDIF. el nombre de mi table control es TCTRL_LFB1, y dentro del PBO deberias de colocar: PROCESS BEFORE OUTPUT. MODULE STATUS_0100. LOOP AT gt_lfa1 WITH CONTROL tctrl_lfb1. MODULE STATUS_0100. ENDLOOP. deberias de colocar 2 veces el MODULE , uno para cada registro de tu tabla interna y otro para el table control completo, nuevamente mil disculpas por mi lapsus brutus ...
__________________
David Carballido Córdova |
#4
|
|||
|
|||
No me ha funcionado .... Mi table control, por ejempo se llama tab3, pero nunca aparace en el loop at screen... screen-name eq 'tab3' ¿Alguna idea de porque pasa esto? |
#5
|
|||
|
|||
LISTO!!!
Bien pues encontre que podía hacer esto, espero les sirva tambien. tab3-invisible = 'X' " X = invisible, ' ' = Visible Y me parece que no necesita del LOOP AT SCREEN Salu2 |
#6
|
|||
|
|||
tienes razon David Morales,
yo hice simplemente esto PROCESS BEFORE OUTPUT. module ocultar_table_control. *en el module MODULE OCULTAR_TABLE_CONTROL OUTPUT. TC_AZTSUST-invisible = 'X' . ENDMODULE. " OCULTAR_TABLE_CONTROL OUTPUT Ya esta, saludos................ |
Herramientas | Buscar en Tema |
Desplegado | |
|
|