Ver la Versión Completa : Cambio de propiedades de un table control
javibest
27/06/08, 07:51:17
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!!
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.
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 :)
www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web