Ver la Versión Completa : Ayuda con select options
Hola tengo unselect options que me trae la sociedad, si el usuario elige filtrar por varias sociedades, debo comparar el tipo de moneda de cada sociedad y si no son iguales ejecutar un msj.
El asunto que no tengo ni idea de como comparar los valores, en estos casos cual seria la instruccion a utilizar?????????????? :(
Mauricio Hidalgo
04/06/08, 17:49:41
La tabla de Sociedades es la T001. Ahí tienes el campo WAERS que corresponde a la moneda.
Espero te sirva
La tabla de Sociedades es la T001. Ahí tienes el campo WAERS que corresponde a la moneda.
Espero te sirva
ok y como comparo pa_soc con el campo moneda
es decir como seria el select si tengo por ejemplo 5 valores distintos, la cosa es que no se como funciona muy bien el select options
gracias
smontenegro
04/06/08, 18:42:29
Primero definite una tabla interna igual a t001(que en este ejemplo llamo ti_t001) y luego armas asi el select:
select * from t001 into ti_t001 where BUKRS IN pa_soc .
Hasta aca lo que hiciste fue cargar la tabla interna ti_t001 con los datos de t001 para todas las sociedades del select option pa_soc.
Luego lo recorres con un loop para ver si las monedas son iguales. si no lo son mandas el mensaje.
Otra opcion es no cargar la tabla interna y hacer un SELECT/ENDSELECT verificando en cada pasada que la moneda sea igual a la anterior y sino mandas el mensaje.
Saludos!
Primero definite una tabla interna igual a t001(que en este ejemplo llamo ti_t001) y luego armas asi el select:
select * from t001 into ti_t001 where BUKRS IN pa_soc .
Hasta aca lo que hiciste fue cargar la tabla interna ti_t001 con los datos de t001 para todas las sociedades del select option pa_soc.
Luego lo recorres con un loop para ver si las monedas son iguales. si no lo son mandas el mensaje.
Otra opcion es no cargar la tabla interna y hacer un SELECT/ENDSELECT verificando en cada pasada que la moneda sea igual a la anterior y sino mandas el mensaje.
Saludos!
ok seria algo asi por favor corrigeme, y como seria la sintaxis para comparar com un registro anterior gracias
select waers BUKRS into it_moneda from t001 WHERE BUKRS in s_tsoc.
LOOP at it_moneda.
if it_moneda-waers = it_moneda-waers .
write 'dhhd'.
endif.
ENDLOOP.
ENDSELECT.
smontenegro
04/06/08, 19:23:11
:) Exacto, salvo que yo usaria otra variable para guardar la moneda anterior y asi poder comparar con la nueva. Seria asi:
select waers BUKRS into it_moneda from t001 WHERE BUKRS in s_tsoc.
LOOP at it_moneda.
if it_moneda-waers = moneda_old.
write 'dhhd'.
endif.
moneda_old = it_moneda-waers.
ENDLOOP
Si lo guardas en un tabla interna no hace falta el ENDSELECT.
Tambien estoy presuponiendo que ya definiste la tabla it_moneda con los campos waers y bukrs.
Saludos!
www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web