PDA

Ver la Versión Completa : Campo editable ALV


sponsor
21/06/10, 07:26:33
Tengo que hacer varios campos editables en un alv pero nose como hacerlo.
Alguna idea?

nievesmp
21/06/10, 08:54:41
Si, la tabla que hayas creado con el fieldcat, contiene el campo edit que es el que debes activar para que el campo sea editable. (Destaco en negrita el comando que activa un campo como editable). Espero te sirva de ayuda.

Ejemplo,

loop at pt_fieldcat into ls_fcat.
if ls_fcat-fieldname eq 'KTOPL'.
ls_fcat-no_out = 'X'. " Oculta este campo, es decir no lo muestra
modify pt_fieldcat from ls_fcat.
endif.

if ls_fcat-fieldname eq 'SAKNR'.
ls_fcat-outputlen = 6. "Da el largo 6 a este campo
modify pt_fieldcat from ls_fcat.
endif.

if ls_fcat-fieldname eq 'ZCAMPOE'.
ls_fcat-edit = 'X'. "Edita este campo para que pueda modificarse
modify pt_fieldcat from ls_fcat.
endif.
endloop

sponsor
21/06/10, 10:23:50
En teoria debo hacerlos editables mediante un boton en el status que habilitará estos campos, pero no me acabo de aclarar.

Jewel_1982
21/06/10, 12:08:17
ok, entonces tienes q modificar el status q has creado en el programa, seguramente si tu no lo has especificado se habra creado solo. modificalo o create uno nuevo, entonces hay me imagino q querran q pongas un boton q si lo pulsas los campos que ellos quieren se habiliten para poder ser modificados, no?

En el caso de q sea asi, cada vez que pulses el boton, tendras q con un if, habilitar el EDIT q te ha comentado la otra persona y luego ya, en el caso deq deseen guardar esos cambios crearas otra rutina para guardar esos datos, bien utilizando alguna función standar q te lo permita si esq estas tratando datos de tablas standar, hacer un batch input o si te atreves hacer un modify directamente en las tablas que sean necesario (esto último seria la última de las opciones a optar).

Espero haberte ayudado,
saludos.

sponsor
21/06/10, 16:02:44
Pues así no acaba de funcionar, quizá no lo acabo de entender bien.
Deberia poner en el fieldcatalog que si sy-ucomm = edit ( asi es como se llama mi boton ), que haga editable ese campo?

Jewel_1982
22/06/10, 06:36:04
Pues así no acaba de funcionar, quizá no lo acabo de entender bien.
Deberia poner en el fieldcatalog que si sy-ucomm = edit ( asi es como se llama mi boton ), que haga editable ese campo?

Exacto! Si es asi como le has llamado a tu boton, ya sabes:
Ejemplo:

loop at pt_fieldcat into ls_fcat.
if ls_fcat-fieldname eq 'KTOPL'.
ls_fcat-no_out = 'X'. " Oculta este campo, es decir no lo muestra
modify pt_fieldcat from ls_fcat.
endif.

if ls_fcat-fieldname eq 'SAKNR'.
ls_fcat-outputlen = 6. "Da el largo 6 a este campo
modify pt_fieldcat from ls_fcat.
endif.

if ls_fcat-fieldname eq 'ZCAMPOE'.
if sy-ucomm = 'EDIT'.
ls_fcat-edit = 'X'. "Edita este campo para que pueda modificarse
endif.
modify pt_fieldcat from ls_fcat.
endif.
endloop

sponsor
22/06/10, 06:40:28
para hacer el campo del catalogo editable necesito poner un nuevo campo en mi estructura no? del algun tipo en particular?

Jewel_1982
22/06/10, 11:24:38
Creo q si, esq nose como tienes montado el programa, si no tienes mucha idea haz como todos cuando empezamos, la lie de la prueba y el error!

sponsor
23/06/10, 14:00:20
esto ya esta hecho, ahora lo que necesito es guardar el nuevo dato y editar el de la columna de al lado que es una descripcion del campo que edito, y claro si edito el campo pues tambien tiene que cambiar la descripcion...

Alguna idea?

sponsor
26/06/10, 19:14:04
alguna idea?