MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   Table control (foro/showthread.php?t=12223)

mccoy 02/04/08 09:53:02

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

DavidXD_XD 02/04/08 14:50:45

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

DavidXD_XD 08/04/08 19:32:08

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 ... :p

David Morales 20/04/09 23:02:40


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?

David Morales 20/04/09 23:33:36

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

:D

Salu2

manu_lolo27 12/06/13 13:38:20

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................


Husos Horarios son GMT. La hora en este momento es 14:47:04.

www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web