PDA

Ver la Versión Completa : Trabajar con Select-options


ALNICO
28/05/09, 15:11:00
Saludos amigos , tengo un reporte donde hago un selection-screen con parameters , y todo trabaja bien , pero ahora me pidiera que lo hiciera con un select-options pero al momento de ejecutar el reporte no sale nada , y vi que tiene que ver con el select-options , no se como se trabaja con el y ademas tengo que implementarlo en mi select para la tabla. gracias

crounly
28/05/09, 15:14:58
Los select-options son rangos de valores.

Revisa los SELECT he instrucciones que comparaban con los antiguos parameters.

Con los select-options se suele utilizar el comparador 'IN' ( A1 esta dentro del rango .... ).

zonanet
28/05/09, 15:15:10
Pudieras poner el código de reporte para poder entender mejor tu problema????

Saludos

DavidXD_XD
28/05/09, 15:20:32
Hola, este es un ejemplo:

selection-screen begin of block blq01 with frame title text-t01.
select-options: s_werks for marc-werks obligatory.
parameters: p_tippro(2).
selection-screen end of block blq01.

En la primera parte declaro una especie de Panel que servira para colocarlo de manera mas agradable a la pantalla, por otro lado tbm sirva para poder validar campos por bloques, en la segunda linea se tiene el SELECT-OPTION, este es una declaracion de rango que nos permite seleccionar valores por unidad (EQ - Equals), por intervalos (BT - Between), tbm hay las opciones CP (para *), en ella se pueden realizar consultas a la base de datos dentro de la condicion WHERE con la equivalencia IN, y en la tercera linea se tiene a la sentencia PARAMETERS, esta si es conocida simplemente son variables individuales.

Si tienes problemas en el codigo puedes colocarlo para que podamos darte una mano ... espero te pueda aclarar un poco la sentencia SELECT-OPTIONS :D

luis999
28/05/09, 15:23:00
Con los select options, en vez de filtrar por un valor lo que hace es filtrar por un rango de valores(esta acotado por valor mínimo y un valor máximo).

SELECT-OPTIONS <nombre_variable> FOR <nombre_tabla>-<nombre_campo>.

En tu sentencia select puedes usar estos valores ingresados para filtrar mediante rangos usando la palabra clave IN.

SELECT * FROM <tabla> ..................
WHERE <nombre_campo> IN <nombre_variable>.

Para tu reporte puedes cambiar tu "parameters" por select-options y en tu consultas(select) cambiar ("=" o "eq") por "IN".


Saludos amigos , tengo un reporte donde hago un selection-screen con parameters , y todo trabaja bien , pero ahora me pidiera que lo hiciera con un select-options pero al momento de ejecutar el reporte no sale nada , y vi que tiene que ver con el select-options , no se como se trabaja con el y ademas tengo que implementarlo en mi select para la tabla. gracias

DavidXD_XD
28/05/09, 17:24:12
Holas, como comente los SELECT-OPTIONS no son solo un rango de valores, tbm agrupa un conjunto de valores individuales con la opcion EQ (Equals) y para rango o intervalo de valores se tiene la opcion BT (Between)

ALNICO
28/05/09, 19:56:58
Muy Agradecido Por La Ayuda , Ahora En La Misma Linea De Tema , Tengo Un Problema Con Uno De Los Parametros , Que Son De Fechas , Una Vez Que Lo Pongo Como Intervalo El Se Concentra Completo En Una Sola Variable Y No Me Sirve Para Compararlo , Me Explico El Me Sale Asi Una Ves Que Yo Le Doy El Periodo:

Ieq21122009310520010 Y A Mi Me Interesa Que Salga Por Separado , Y No Veo La Manera De Resolverlo A Menos Que Sea Manejo De String , Alguna Sugerencia ? , Ademas Que Es Ese Ieq Que Sale ?. Gracias

luis999
28/05/09, 20:09:22
Hola, si quieres tomar el menor valor de select options pones: <nombre_variable>-low, si quieres el mayor valor pones <nombre_variable>high.

Como te dice David el select options no solo sirve para rangos, tambien le puede pasar una valor y te lo trabaja como EQ, si no le pasas valor no toma en cuenta el filtro. :)

Muy Agradecido Por La Ayuda , Ahora En La Misma Linea De Tema , Tengo Un Problema Con Uno De Los Parametros , Que Son De Fechas , Una Vez Que Lo Pongo Como Intervalo El Se Concentra Completo En Una Sola Variable Y No Me Sirve Para Compararlo , Me Explico El Me Sale Asi Una Ves Que Yo Le Doy El Periodo:

Ieq21122009310520010 Y A Mi Me Interesa Que Salga Por Separado , Y No Veo La Manera De Resolverlo A Menos Que Sea Manejo De String , Alguna Sugerencia ? , Ademas Que Es Ese Ieq Que Sale ?. Gracias