FoxPro/Visual FoxPro - Multiples bandas de detalle + Sql Passthrough

 
Vista:

Multiples bandas de detalle + Sql Passthrough

Publicado por Rony (4 intervenciones) el 31/01/2007 13:11:32
Hola que tal!

Les cuento mi problema: estoy trabajndo con ms visual foxpro 9 y sql server 2000 como BD. Tengo un reporte donde se muestra una factura con sus detalles, para esto creo 2 cursores, asi:

sqlExec(conexion, "Select * from facturas Where codigo = 1", "CursorMaestro")
sqlExec(conexion, "Select * from detalles_facturas Where codigo = 1", "CursorDetalles")

En el init del DataEnvironment del reporte tengo esto:

Select CursorMaestro
Go Top
Select CursorDetalles
Go Top

Hasta aqui todo bien, se muestra en el reporte las facturas con sus detalles; el problema es que ahora necesito agregar una banda de detalles adicional porque ahora debos mostrar ademas del maestro de la factura con sus detalles los detalles cotizados (hay una relación entre "facturas" y "detalles_cotizaciones")

Intente agregando esto:
sqlExec(conexion, "Select * from detalles_cotizaciones Where codigo_fac = 1", "CursorDetalles")

Esto para traer todos los detalles de cotizaciones relacionados a la factura y efectivamente lo hace bien, osea que ya tengo los tres cursores creados por medio de sqlExec con los datos necesarios, pero cuendo agrego el cursor "detalles_cotizaciones" a la nueva banda de detalles en tiempo de ejecución lo que hace es repetir la primera fila tanto del cursor con los detalles_factura como del cursor con los detalles_cotizaciones.. Más o menos algo asi queda el reporte:

Prouctos Facturados:
Cod Descrip Cantidad
01 Lapiz 2
01 Lapiz 2
01 Lapiz 2

Productos cotizados: (Esto es lo que esta en la nueva banda de detalles)
03 Tinta 1
03 Tinta 1

Cuando en realidad "detalles_facturas" tiene esto:
01 Lapiz 2
02 Tinta 3
08 Cuaderno 4
Y "detalles_cotizaciones" tiene esto:
03 Tinta 1
08 Cuaderno 5

Ya revise en páginas como esta: http://www.portalfox.com/index.php?name=News&file=article&sid=2178 pero no veo como hacerlo cuando no se trabaja con la BD nativa de visual foxpro sino que como en este caso son cursores creados con sqlExec.

Espero haberme explicado bien y me puedan ayudar.. Gracias por su tiempo.
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
sin imagen de perfil

RE:Multiples bandas de detalle + Sql Passthrough

Publicado por Ernesto Hernandez (4623 intervenciones) el 31/01/2007 18:55:20
Estas relacionando las consultas ???
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:Multiples bandas de detalle + Sql Passthrough

Publicado por Rony (4 intervenciones) el 31/01/2007 19:45:58
Que si las relaciono? Si te refieres a que si al momento de hacer el select en sql para traerme los detalles hago un inner join para relacionar el detalle con el maestro si, si lo hago..

Para explicarme un poco mejor, tengo en total 3 cursores:
CursorMaestro (Datos de la factura)
CursorDetalles (detalles facturados)
CursorDetalles2 (detalles cotizados)

Ya los tres está cargados con datos, y en el init del dataenvironment del reporte agregué esto:

Select CursorDetalles (cursor con los detalles facturados) (Details1)
Index on codigo to c:\index

Select CursorDetalles2 (cursor con los detalles cotizados) (Details2)
Index on codigo to c:\index2

Select CursorMaestro
Set Relation To Codigo into CursorDetalles
Set Relation To Codigo into CursorDetalles2

Pero cuando ejecuto el informe sale un mensaje que dice: "El alias CursorDetalles no se encuentra en el area de trabajo actual" y si cambio el orden asi:

Select CursorMaestro
Set Relation To Codigo into CursorDetalles2
Set Relation To Codigo into CursorDetalles

Entonces sale el mensaje de error es con CursorDetalles2. En el target alias de Details1 tengo 'CursorDetalles' y en el de Details2 tengo 'CursorDetalles2'

Espero me puedan seguir ayudando. Gracias por su tiempo!
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:Multiples bandas de detalle + Sql Passthrough

Publicado por Rony (4 intervenciones) el 01/02/2007 16:07:23
Ya lo pude solventar, por si a alguien le sirve de ayuda esto fue lo que hice:

Select CursorDetalles
Index On id To c:\Index

Select CursorDetalles2
Index On id To c:\Index2

Select CursorMaestro
Set Relation To id Into CursorDetalles
Set Relation To id Into CursorDetalles2 Additive

Esto en el init del reporte.

Saludos!!
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
sin imagen de perfil

RE:Multiples bandas de detalle + Sql Passthrough

Publicado por Ernesto Hernandez (4623 intervenciones) el 01/02/2007 23:18:05
Set Relation To id Into CursorDetalles
Set Relation To id Into CursorDetalles2 Additive

aH esto me referia ...... lo importante es que ya esta solucionado


Suerte
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