MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   Cambio de propiedades de un table control (foro/showthread.php?t=14532)

javibest 27/06/08 07:51:17

Cambio de propiedades de un table control
 
Quiero cambiar mediante codigo las propiedades de un table control. En concreto , que no se puedan introducir datos.

declaracion del table control :

CONTROLS: tb_imput TYPE TABLEVIEW USING SCREEN 0200.

intento acceder a la tabla que hay en el campo cols del table control tb_imput, pero no soy capaz :

DATA : wa_screen LIKE tb_imput-cols.

loop at tb_imput-cols into wa_screen.
endloop.

me dice que no se puede convertir, y si hago

loop at tb_imput-cols
endloop

me dice que tb_imput-cols no tiene header line.

Estoy jodido

sararodriguez 27/06/08 09:20:59

A mí me pasa lo mismo, no sé cambiar un table control para q no se puedan cambiar los datos que muestra.

También quería cambiar los textos de un select options.

Si alguien puede hexar una manilla..

Muchas gracias!!

vickxo 27/06/08 09:35:45

Hola!
 
Q tal, he revisado por medio de la wizard y he visto que pueden modificar las propiedades de esta manera:


it_ejemplo es la tabla que contiene los datos
tc_ejemplo es el table control
LOOP AT it_ejemplo
INTO wa_ejemplo
WITH CONTROL tc_ejemplo
CURSOR tc_ejemplo-current_line.
MODULE change_cell_vc.
MODULE tc_ejemplo_get_lines.
*&spwizard:
ENDLOOP.


En ete modulo efectuo el cambio de las propiedades

MODULE change_cell_vc OUTPUT.

IF tc_ejemplo-current_line = 2.
LOOP AT SCREEN.
IF screen-name = 'WA_EJEMPLO-CAMPO1'.
screen-input = 0. "Aqui es donde se definen las propiedades, 1 si quiere bloquear
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
ENDMODULE.

ah este, creo, obtiene los datos ...auq no me hagan mucho caso ajajaaj
MODULE tc_ejemplo_get_lines OUTPUT.
g_tc_ejemplo_lines = sy-loopc.
ENDMODULE.



Espero t sirva

javibest 27/06/08 10:09:55

Si. efectivamente. yo tambien lo he conseguido modificando los campos que se asignan a cada columna del table control mediante el loop at screen :

FORM desactivar_table_control.

LOOP AT SCREEN.
IF screen-name = 'T_IMPUT-CUENTA'.
screen-input = 0.
ENDIF.
IF screen-name = 'T_IMPUT-DESCRIPCION'.
screen-input = 0.
ENDIF.
IF screen-name = 'T_IMPUT-CECO'.
screen-input = 0.
ENDIF.
IF screen-name = 'T_IMPUT-PROY_ORDEN'.
screen-input = 0.
ENDIF.
IF screen-name = 'T_IMPUT-IMPORTE'.
screen-input = 0.
ENDIF.

MODIFY SCREEN.

ENDLOOP.
ENDFORM.

sararodriguez 27/06/08 10:26:28

Muchísimas gracias!!

sararodriguez 27/06/08 11:57:22

Pero t_imput q es xa ti? el nombre del table control? esq he conseguido que se me bloqueen todas las columnas xo kiero q haya una de ellas q no se bloquee.

vickxo 27/06/08 12:02:41

Hola
 
Intenta asi:

LOOP AT SCREEN.
IF screen-name NE 'TU_TABLECONTROL-COLUMNA_Q_NO_SE_BLOQUIEE'.
screen-input = 1.
Else.
screen-input = 0.
endif.
MODIFY SCREEN.
ENDLOOP.

sararodriguez 27/06/08 12:05:37

yA, SI ASÍ PROBÉ PERO NO BLOQUEA NINGUNA

sararodriguez 27/06/08 12:15:04

Ya Está, Muchas Gracias :)


Husos Horarios son GMT. La hora en este momento es 07:00:39.

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