PDA

Ver la Versión Completa : Modificar atributos de una dynpro desde otro programa


HRU
16/10/06, 09:35:56
Hola, tengo una duda, tengo una dynpro en un infotipo creado por mi con una serie de campos de solo salida ya que estos campos no deben ser rellenados por el usuario. Este infotipo se cargará mediante un batch-input para lo cual necesito que estos campos se habiliten en el momento de la carga para poder guardar los datos, la pregunta es como puedo modificar los atributos de los campos de esa dynpro teniendo en cuenta que no estoy en la dynpro en cuestion sino en un programa que realiza el batch input, creo que la cuestion es saber como poder llamar a la dynpro del infotipo en cuestión desde el programa de carga.

Gracias por adelantado.

tomasm
16/10/06, 10:01:30
Prueba con este código en el batchinput.

* Activar todos los campos del dynpro número = sy-dynnr.

LOOP AT SCREEN.
if sy-dynnr = 'tu_dynpro'.
screen-input = '1'.
screen-invisible = '0'.
MODIFY SCREEN.
endif.
ENDLOOP.

Vamos por ahí van los tiros.

Saludos !!!! :o

HRU
16/10/06, 10:58:09
Hola Tomasm, el problema k tengo es k internamente yo siempre estoy en la screen del programa de carga, no hay ningún momento en k me situe en las screens del infotipo (es decir la dynpro a cambiar), el loop at screen siempre me da el único registro de la pantalla de carga, ese es el problema k no me puedo posicionar en la screen de la dynpro a cambiar

Saludos

tomasm
16/10/06, 11:49:00
Ahora si que me has liado, como puedes querer cambiar una dynpro por la que según me cuentas, no pasas, quizás debieras explicarte mejor, ejque no te entiendo ni jota.

Entiendo que has hecho una grabación, con la que ejecutas el batchinput.

El código que te pongo, vale para cualquier dynpro, basta poner el número de ella, en fin, que no nos entendemos.

Saludos, y lo siento sino puedo ayudarte más, pero algo me cuentas que no me cuadra bien.

:(

sap2006
16/10/06, 13:32:20
Dudo mucho que se pueda modificar una dynpro sin estar en ella... A partir de aqui te puedo decir algunas posibles soluciones:

-Dejar el campo abierto, hacer la carga y despues volverlo a cerrar. (Si solo
se va a hacer una carga inicial.)

-Otra opcion es ejecutar el bach input normal aunque el campo en la dynpro
este cerrado (A lo mejor por codigo se lo traga, no lo he probado nunca).

-Y ya como ultima opcion, en el programa de carga, cuando haces el call transaction podrias pasarle una parametro, que lo recogeras en el infotipo (pa30 imagino) y entonces alli poner la condicion si tu parametro <> ' ' (por ejemplo), significa que ha sido llamado por el programa de carga y entonces abrir el campo.

Salu2 y espero haberte podido ayudar!

HRU
16/10/06, 14:28:33
Gracias a los dos por las respuestas, yo tb. dudo de que se pueda modificar una dympro sin estar en ella, así que al final en vez de realizar un batch-input he utilizado la función HR_INFOTYPE_OPERATION k te permite rellenar la tabla del infotipo a pesar de que los campos de la dynpro tengan el input = 0. Lo de pasarle el parámetro lo había pensado pero al final con esta función he podido hacerlo.

Saludos y gracias nuevamente