Power Builder - Parametro Null en Datawindow

 
Vista:

Parametro Null en Datawindow

Publicado por lissi (20 intervenciones) el 13/07/2006 03:40:17
Hola Programadores estoy trabajando con una bd SQL Server 2000 y tengo un procedimiento con 3 parametros uno de ellos es un parametro opcional (abajo les pongo el procedimiento) he relacionado mi procedimiento a un datawindow, mi problema es como le paso los parametros ya que no se como ponerle el parametro opcional.
Arreglo es mi parametro opcional
He probado asi pero cuando arreglo='' falla dice que falta un parametro
if arreglo = '' then
dw_2.retrieve(ldt_desde, ldt_hasta)
else
dw_2.retrieve(ldt_desde, ldt_hasta,arreglo)
end if

Entonces probe asi y tambien falla

if arreglo = '' then
dw_2.retrieve(ldt_desde, ldt_hasta,'')
else
dw_2.retrieve(ldt_desde, ldt_hasta,arreglo)
end if
Porfavor ayudenme
Graxias


alter PROC SP_REP_VENTAS
@FECINI AS DATETIME,
@FECFIN AS DATETIME,
@TIPO VARCHAR(255) =NULL
AS
IF @TIPO IS NULL
BEGIN
EXEC('
SELECT D.CODIGOPRODUCTO AS PRODUCTO,
MIN(P.DESCRIPCIONPRODUCTO)AS DESCRIPCION,
V.CODIGOPERSONAL AS VENDEDOR,
CAST(floor(round (sum( isnull(cantidadunidad,0)) /
case isnull(factor,0) when 0 then 1 else isnull(factor,0)
end,0,1) + sum((isnull(cantidadempaque,0)))) AS VARCHAR)
+ ''.'' +
right(''00'' +
CAST(floor(sum(isnull(cantidadunidad,0)) - round ( sum( isnull(cantidadunidad,0)) /
case isnull(factor,0) when 0 then 1 else isnull(factor,0) end,0,1) *
case isnull(factor,0) when 0 then 1 else isnull(factor,0) end) AS VARCHAR(10)),3) AS UNIDAD
FROM FACTURADETALLE D, PRODUCTO P ,FACTURA F ,CLIENTE C ,VW_VENDEDOR V
WHERE V.CODIGOPERSONAL = F.CODIGOVENDEDOR AND
C.CODIGOCLIENTE = F.CODIGOCLIENTE AND
D.CODIGOPRODUCTO= P.CODIGOPRODUCTO AND
F.CODIGOEMP=D.CODIGOEMP AND
F.TIPODOCUMENTO =D.TIPODOCUMENTO AND
F.NUMEROSERIE = D.NUMEROSERIE AND
F.NUMEROFACTURA= D.NUMEROFACTURA AND
P.CODIGOPROVEEDOR= 000084 AND
F.CODIGOEMP=001 AND
D.CODIGOEMP=001 AND
P.CODIGOEMP=001 AND
F.CODIGOVENDEDOR <> 000001 AND
F.SITUACIONFACTURA <> 90 AND
F.TIPOFACTURA =''F'' AND
F.FECHAFACTURA BETWEEN ''' + @FECINI + ''' AND ''' + @FECFIN + ''' --AND
GROUP BY D.CODIGOPRODUCTO,V.CODIGOPERSONAL,D.FACTOR
ORDER BY D.CODIGOPRODUCTO,V.CODIGOPERSONAL,D.FACTOR')
END
ELSE
EXEC('
SELECT D.CODIGOPRODUCTO AS PRODUCTO,
MIN(P.DESCRIPCIONPRODUCTO)AS DESCRIPCION,
V.CODIGOPERSONAL AS VENDEDOR,
CAST(floor(round (sum( isnull(cantidadunidad,0)) /
case isnull(factor,0) when 0 then 1 else isnull(factor,0)
end,0,1) + sum((isnull(cantidadempaque,0)))) AS VARCHAR)
+ ''.'' +
right(''00'' +
CAST(floor(sum(isnull(cantidadunidad,0)) - round ( sum( isnull(cantidadunidad,0)) /
case isnull(factor,0) when 0 then 1 else isnull(factor,0) end,0,1) *
case isnull(factor,0) when 0 then 1 else isnull(factor,0) end) AS VARCHAR(10)),3) AS UNIDAD
FROM FACTURADETALLE D, PRODUCTO P ,FACTURA F ,CLIENTE C ,VW_VENDEDOR V
WHERE V.CODIGOPERSONAL = F.CODIGOVENDEDOR AND
C.CODIGOCLIENTE = F.CODIGOCLIENTE AND
D.CODIGOPRODUCTO= P.CODIGOPRODUCTO AND
F.CODIGOEMP=D.CODIGOEMP AND
F.TIPODOCUMENTO =D.TIPODOCUMENTO AND
F.NUMEROSERIE = D.NUMEROSERIE AND
F.NUMEROFACTURA= D.NUMEROFACTURA AND
P.CODIGOPROVEEDOR= 000084 AND
F.CODIGOEMP=001 AND
D.CODIGOEMP=001 AND
P.CODIGOEMP=001 AND
F.CODIGOVENDEDOR <> 000001 AND
F.SITUACIONFACTURA <> 90 AND
F.TIPOFACTURA =''F'' AND
F.FECHAFACTURA BETWEEN ''' + @FECINI + ''' AND ''' + @FECFIN + ''' AND
C.CODIGOTIPONEGOCIO IN(' + @TIPO + ')
GROUP BY D.CODIGOPRODUCTO,V.CODIGOPERSONAL,D.FACTOR
ORDER BY D.CODIGOPRODUCTO,V.CODIGOPERSONAL,D.FACTOR')
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Parametro Null en Datawindow

Publicado por Gabriel (20 intervenciones) el 13/07/2006 16:04:29
Buenas, fijate cuando estas en modo diseño del datawindow, hay un tab que dice "column specification - (nombre del datawindow)". Selecciona ese tab y hace click derecho y selecciona del menu que te sale "Stored Procedure..."
Esto te muestra el SP que estas usando. En esa ventanita chequeate el botón que dice "Arguments..." fijate si estan todos los parámetros declarados y sobre todo los tipos de datos que tienen estos parámetros, puede que sean distintos.
Espero te sirva, saludas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Parametro Null en Datawindow

Publicado por karen (274 intervenciones) el 13/07/2006 18:25:41
if arreglo = '' then
setnull(arreglo )
dw_2.retrieve(ldt_desde, ldt_hasta, arreglo)
else
dw_2.retrieve(ldt_desde, ldt_hasta,arreglo)
end if
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar