PDA

Ver la Versión Completa : Eventos en table control


Alfredosite
22/03/10, 16:43:16
Hola amigos, quería me hechen una mano tengo un table control el cual lo cree vía wizard. En el cual diplayo información vía una tabla interna donde armo mis datos
el tema es que tengo una columna (en el table control) que puede tener "dos estados" suponiendo Ejemplo: (A:Abierto y C:Cerrado) del cual al elejir uno se active un campo y otro se bloquee en el mismo table control.
Mi pregunta es puedo controlar ese evento desde un table control?

Ejemplo lo que se desearía matchcode:

CAMPO_A CAMPO_B
A (En campo B Matchcode donde elije opción habilitado)
C (En campo B Bloquear matchcode)

ALguna ayuda o luz de como tratar este tema.

Muy agradecido

oarranzli
22/03/10, 21:33:31
Hola Alfredosite,

No acabo de entender muy bien tu problema. Pero me parece que lo que necesitas es cambiar los atributos de los campos de la tabla de tu pantalla de forma dinámica.

Podrías utilizar algo como lo siguiente en tu PBO:

LOOP AT SCREEN.
IF SCREEN-NAME = CAMPO_DE_PANTALLA.
SCREEN-INPUT = 0.
MODIFY SCREEN.
ENDIF.
ENDLOOP.

SAP te permite de este modo ir cambiando los atributos de los campos de pantalla. Puedes revisarte otros campos de la tabla SCREEN y modificar también sus atributos.

Puedes encontrar más información en la help de SAP.

Saludos,

Alfredosite
22/03/10, 21:53:23
Hola Alfredosite,

No acabo de entender muy bien tu problema. Pero me parece que lo que necesitas es cambiar los atributos de los campos de la tabla de tu pantalla de forma dinámica.

Podrías utilizar algo como lo siguiente en tu PBO:

LOOP AT SCREEN.
IF SCREEN-NAME = CAMPO_DE_PANTALLA.
SCREEN-INPUT = 0.
MODIFY SCREEN.
ENDIF.
ENDLOOP.

SAP te permite de este modo ir cambiando los atributos de los campos de pantalla. Puedes revisarte otros campos de la tabla SCREEN y modificar también sus atributos.

Puedes encontrar más información en la help de SAP.

Saludos,

Muchas gracias, tu idea es valida para bloquear campos en general pero lo que yo necesito es bloquear el campo de un table control bajo cierto valor de otro de otro campo adjunto un print para que veas visualmente lo que me gustaría obtener. Si me situo en una linea del table control y selecciono un campo, el campo contiguo deberia bloquearse de acuerdo al campo elegido(contiguo) haber si me das una luz..muchas gracias

oarranzli
23/03/10, 09:32:20
Muchas gracias, tu idea es valida para bloquear campos en general pero lo que yo necesito es bloquear el campo de un table control bajo cierto valor de otro de otro campo adjunto un print para que veas visualmente lo que me gustaría obtener. Si me situo en una linea del table control y selecciono un campo, el campo contiguo deberia bloquearse de acuerdo al campo elegido(contiguo) haber si me das una luz..muchas gracias

Pues no sé tu caso en concreto pero yo haría algo así:


LOOP AT SCREEN.
IF TIPO_DE_PAGO = 'EXTERNO'.
IF SCREEN-NAME = CAMPO_DE_PANTALLA.
SCREEN-INPUT = 0.
ENDIF.
ELSEIF TIPO_DE_PAGO = 'POR_NOMI'.
IF SCREEN-NAME = CAMPO_DE_PANTALLA.
SCREEN-INPUT = 1.
ENDIF.
ENDIF.
MODIFY SCREEN.
ENDLOOP.

Evidentemente, cada vez que introduzcan un valor en la table control tienes que forzar el retorno de carro para que se vuelva a cargar la PBO y pueda entrar en este trozo de código que habrás puesto en un MODULE de la PBO.

No sé si esto te ayudará.

Saludos,

Marco
24/03/10, 20:50:07
Exacto!...
Eso lo haces en el ON CHAIN de ese campo...
Con eso tienes lo que quieres.

:cool:
Saludos,