MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   Desactivar campo en pantalla (foro/showthread.php?t=42113)

Angela27 10/03/11 09:19:41

Desactivar campo en pantalla
 
Hola a todos,
Estoy haciendo un informe, y cuando selecciono parametros, necesito que segun un check bock se active un campo y se desactive otro, lo hago con un loop a screen y modify de ese grupo de campo según check box, pero no me hace ni caso :confused:
seguro que es una chorrada, pero soy nueva en ABAP, y algo estaré haciendo mal, por fi necesito una manita.

Muchas gracias,;)

hugoa77 10/03/11 09:46:15

Hola Angela, el código del loop at screen lo pusiste en la PBO, no?
El atributo que debes utilizar es "active = 1." o "active = 0."

Saludos,
Hugo

Angela27 10/03/11 10:24:27

Hola Hugo,
muchas gracias,
Lo pongo en at selection-screen output. ¿que es la PBO?
no utilizo active, sino input, para que no deje entrar en ese campo o si.
if screen-group1 = zon.
if pzo1 = 'X'.
screen-input = '1'.
else.
screen-input = '0'.
endif.
endif.
probaré con active.

muchas gracias
:)

hugoa77 10/03/11 10:58:05

PBO -> Módulo PBO (Process Before Output)
En la SE80 encontraras los Módulos PBO. Aquí van los códigos que se ejecutan antes de mostrar las pantallas o que modifican las pantallas.
Prueba con esto:

if screen-group1 = zon.
if pzo1 = 'X'.
screen-input = 1. "sin comillas
else.
screen-input = 0. "sin comillas
endif.
endif.
MODIFY SCREEN "modifica finalmente la pantalla

Me cuentas como te fue...

kiboqac 10/03/11 12:00:00

El problema para mi consiste en que debes realizar un LOOP de la SCREEN para que puedas encontras el Grupo que deseas activar; tambien veo como error esta sentencia:

if screen-group1 = zon.

No deberia ser:

if screen-group1 = 'ZON'.

???

Angela27 10/03/11 13:58:12

Muchas gracias a los dos.
kiboqac , creo que es así, lo vi en un manualillo.

Hugo, le he quitado las comillas, y sigue sin funcionarme, lo que tengo una duda, dices que esto se ejecuta antes de visualizar la pantalla, pero es que antes de visualizarla, todavia no se lo que tengo que activar o desactivar, ya que depende de un campo de la misma pantalla. ¿será que lo tengo que poner en diferente pantalla.? sniff :eek:
Yo activo unos campos, dependiendo del primer campo que acepto, que es un check box.
Dime algo por fi..
muchas gracias........................:) :D :p

hugoa77 10/03/11 14:54:01

Bueno, te sugeriría que copies todo el código para chequear que puede estar fallando... pero en principio el código debería estar así...

at selection-screen output.
loop at screen.
if screen-group1 = 'ZON'. "con comillas
if pzo1 = 'X'.
screen-input = 1. "sin comillas
else.
screen-input = 0. "sin comillas
endif.
endif.
MODIFY SCREEN.
endloop.

Espero tus comentarios.

Angela27 14/03/11 11:10:12

no me va sniff... ¿alguna sugerencia?

gracias y Sdos

FBrazon 14/03/11 14:51:24

Hola Angela, ya resolviste tu problema? Tengo algo que te podría servir
Saludos

jarabas 14/03/11 21:11:39

A ver si esto te sirve:

el PBO es el proccess Before output
PAI es el proccess after intut

Cuando se carga la pantalla incialmente entra por el PBO, cuando realizas algun evento sobre ella(pulsar un botón, activar un checbox,...) entra por el PAI y despues pasa por el PBO que es donde se deben hacer las validaciones pertinentes.

yo creo que tu lo necesitas para la pantalla de inicio Selection-Screen.
si es así tendrás que poner en el report control,

AT SELECTION-SCREEN OUTPUT.

<metes el código con su loop y su MODIFY SCREEN>

Efectivamente para que sea o no editable(admita/no admita introducir valores) es con SCREEN-INPUT.

Al cargar la pantalla si no está activo el checkbox no hará nada ya qeu lo pones como input = 1 y es el atributo por defecto.

¿cuando pulsas sobre el checkbox no hace mada?
Una pregunta tonta (lo tendrás hecho seguro), has metido en el mismo grupo lo que quieres que no sea editable?

el codigo nos simplificaria la labor de ayudarte

un saludo.


Husos Horarios son GMT. La hora en este momento es 09:12:08.

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