PDA

Ver la Versión Completa : Parametro tipo ranges para call function


minerva0112
27/05/10, 14:53:32
Necesito pasarle a un call fucntion parametros de entrada que se obtiene de un select option para luego dentro del funcion realizar un select haciendo un where IN , que tipo de variable se tendria que utilizar para lograr esto

mil gracias:confused:

mysmb2
27/05/10, 15:12:01
Hola,
Si pasas una tabla como parametro y la definis con una estructura igual a un rango(con campos sing, low, higth, option...) te va a servir.

Saludos

minerva0112
27/05/10, 18:25:30
Hola,
Si pasas una tabla como parametro y la definis con una estructura igual a un rango(con campos sing, low, higth, option...) te va a servir.

Saludos
gracias pero me da error cuando le voy hacer un loop al parametro

mysmb2
27/05/10, 18:34:56
Supongo que el loop al que te referis es en el momento de armar el rango con el que comparas el campo en el select.

Podrias especificar que error te arroja y copiar el bloque de codigo?

Mauricio Hidalgo
27/05/10, 18:57:18
Dame un correo para enviarte un instructivo.

minerva0112
27/05/10, 19:12:01
hola es irua.alca@gmail.com

minerva0112
27/05/10, 19:14:04
Supongo que el loop al que te referis es en el momento de armar el rango con el que comparas el campo en el select.

Podrias especificar que error te arroja y copiar el bloque de codigo?



SELECT * INTO CORRESPONDING FIELDS OF TABLE it_data_proj FROM zvps_data_proy
WHERE pspid IN pi_proj.

The IN operator with "PI_PROJ" is followed neither by an internal table nor by a value list.

Mauricio Hidalgo
27/05/10, 19:27:02
Me rebotó el correo.

Pero bueno yo cacho que te falta tipificar (asignar un tipo de datos a tus tabla) en la interfaz.

Podrías mostrar los comentarios que están al principio de la función.

minerva0112
27/05/10, 19:32:00
Me rebotó el correo.

Pero bueno yo cacho que te falta tipificar (asignar un tipo de datos a tus tabla) en la interfaz.

Podrías mostrar los comentarios que están al principio de la función.

disculpa rectifico el correo irua.alcala@gmail.com

*"----------------------------------------------------------------------
*"*"Interfase local
*" IMPORTING
*" REFERENCE(PI_FECHA) TYPE SY-DATUM
*" REFERENCE(PI_DIV) TYPE ZEPS_DIV
*" REFERENCE(PI_PRCTR) TYPE ZEPS_PRCTR
*" REFERENCE(PI_PROJ) TYPE ZEPS_PROJ
*" TABLES
*" IT_DATA_PROJ STRUCTURE ZEPS_DATA_PROYECTO
*" IT_DATA_CUENTAS STRUCTURE ZEFI_CUENTAS OPTIONAL
*"----------------------------------------------------------------------

mysmb2
27/05/10, 19:41:24
proba crear un rango con los valores de la tabla parametro y comprara ese rango en el select.

SELECT * INTO CORRESPONDING FIELDS OF TABLE it_data_proj FROM zvps_data_proy
WHERE pspid IN pi_proj.

The IN operator with "PI_PROJ" is followed neither by an internal table nor by a value list.

Mauricio Hidalgo
27/05/10, 19:41:47
Pi_proj Lo Tienes En Los Parametros Import. Si Lo Vas A Pasar Por Import El Tipo De Datos "zeps_proj" Tiene Que Ser Un Elemento De Datos Del Tipo "tipo Tabla"..


Sino Pi_proj Lo Debes Cambiar A Ala Pestaña Tables.


Se Entiende?

minerva0112
27/05/10, 19:50:50
Pi_proj Lo Tienes En Los Parametros Import. Si Lo Vas A Pasar Por Import El Tipo De Datos "zeps_proj" Tiene Que Ser Un Elemento De Datos Del Tipo "tipo Tabla"..


Sino Pi_proj Lo Debes Cambiar A Ala Pestaña Tables.


Se Entiende?


A ver en el codigo donde estoy realizando el reporte estoy utlizando esta funcion


SORT p_proy.
DELETE ADJACENT DUPLICATES FROM p_proy.
LOOP AT p_proy.
it_proj-low = p_proy-low.
it_proj-high = p_proy-high.
APPEND it_proj.
ENDLOOP.

SORT p_div.
DELETE ADJACENT DUPLICATES FROM p_div.
LOOP AT p_div.
it_div-low = p_div-low.
it_div-high = p_div-high.
APPEND it_div.
ENDLOOP.

SORT p_prctr.
DELETE ADJACENT DUPLICATES FROM p_prctr.
LOOP AT p_prctr.
it_prctr-low = p_prctr-low.
it_prctr-high = p_prctr-high.
APPEND it_prctr.
ENDLOOP.


CALL FUNCTION 'ZPS_STATUS_PROYECTO'
EXPORTING
pi_fecha = p_fecha
pi_div = it_div
pi_prctr = it_prctr
pi_proj = it_proj
tables
it_data_proj = it_data_proyecto.



Luego dentro de la funcion
se quiere esto

SELECT * INTO CORRESPONDING FIELDS OF TABLE it_data_proj FROM zvps_data_proy WHERE pspid IN pi_proj.

donde pi_proj esta declarado en la pestaña de import con el tipo de estructura ya que no me toma otro tipo de dato.

gracias

Mauricio Hidalgo
27/05/10, 19:54:12
Mueve PI_PROJ a TABLES en la función.

minerva0112
27/05/10, 20:36:18
Mueve PI_PROJ a TABLES en la función.


listo gracias