PDA

Ver la Versión Completa : Ayuda con Smartform


ocubero
22/05/09, 23:48:41
Buenas tengo el siguiente código en un smartform

SELECT bukrs lifnr augdt gjahr belnr budat waers wrbtr sgtxt
INTO TABLE it_table
FROM bsik
WHERE bukrs = psociedad AND
budat = pfecha AND
lifnr in pacreed AND
belnr = pdoc.

Pero me da error cuando pongo el operador IN, alguien puede indicarme cómo puedo hacer un SELECT en un Smartform utilizando el IN.

Gracias

dordonez
25/05/09, 05:46:06
pareciera que el select es correcto, que error te da?? de compilacion o dump??

bisonye
25/05/09, 07:25:12
¿El campo pacreed es un rango?

ocubero
25/05/09, 14:29:58
¿El campo pacreed es un rango?

Gracias por responder, pues es un tipo y lo declare como de tipo lfa1-lifnr, creo que ese es el problema, pero pensé mejor pasar por parámetros una tabla interna, voy a investigar cómo lo puedo realizar de esta manera.

luis999
25/05/09, 14:38:30
Hola, El IN se usa para compararlo con un rango de valores.

Lo que puede hacer es usar el FOR ALL ENTRIES, para realizar tu consulta.

Gracias por responder, pues es un tipo y lo declare como de tipo lfa1-lifnr, creo que ese es el problema, pero pensé mejor pasar por parámetros una tabla interna, voy a investigar cómo lo puedo realizar de esta manera.

bisonye
25/05/09, 14:39:45
El IN solo puedes utilizarlo con rangos, que son un tipo de datos especiales. Se definen con RANGES o como table interna (ya que están obsoletos) con los campos SIGN, OPTION, LOW y HIGH. Si mirás la ayuda está bastante claro. También puede utilizar una serie de campos así:
IN (valor1, valor2, valor3, ... , valorN).

Si quieres pasarle una TI al smartform tendrás que declarar una estructura en el diccionario y pasarsela en el apartado de tables.

Saludos

ocubero
26/05/09, 13:49:54
El IN solo puedes utilizarlo con rangos, que son un tipo de datos especiales. Se definen con RANGES o como table interna (ya que están obsoletos) con los campos SIGN, OPTION, LOW y HIGH. Si mirás la ayuda está bastante claro. También puede utilizar una serie de campos así:
IN (valor1, valor2, valor3, ... , valorN).

Si quieres pasarle una TI al smartform tendrás que declarar una estructura en el diccionario y pasarsela en el apartado de tables.

Saludos

Gracias, ya logré pasar la tabla interna al SmartForm, realice los selects desde el programa de control y no dentro del SM, así no me da problemas la claúsula IN.

Muchas gracias a todos por la ayuda.....:cool: