Dudas con Crystal Report
Publicado por LOLY (103 intervenciones) el 29/10/2009 16:38:41
Hola buenos dias... quisiera me ayudaran a conseguir COMPRENDER el codigo que obtuve de la red en la cual sirve para abrir reportes elaborados con Crystal Report 8.5.. demas baje un video pero no lo comprendo bien...
tengo la aplicacion llamdada TPSystem esta en la unidad C:\\TPSystem.. bajo este tengo las carpetas DATOS, REPORTS, TEMP, dice que para elaborar el reporte en crystal se debe de convertir la tabla a Fox2X. tome las tablas ventas.dbf y empresa.dbf... empresa esta contiene los datos del encabezado de la empresa.. y ventas el detalle de lo vendido... de la carpeta DATOS y las envio a TEMP convertidas a FOX2X. posteriormente abro Crystal Report 8.5 y elaboro el reporte y lo guardo en REPORTS puedes ser con el nombre de RVentas.rpt.. En Menu->Reportes->Ventas pongo el siguiente codigo...
********************************************
*** Menu -> Reportes -> Ventas
********************************************
PUBLIC cFileDat,cFilerep,pOpcion
SELECT VENTAS
SET ORDER TO cliente
cFileDat=ALIAS()
pOpcion=1
cFilerep='RVentas.rpt'
SET PROCEDURE TO funciones
=CrystalRep(cFileDat,cFilerep,pOpcion)
*******************************************************
****En archivo FUNCIONES tengo el siguiente codigo...
********************************************************
FUNCTION CrystalRep
PARAMETERS cFileDat,cFilerep,pOpcion
LOCAL vlArchivo1,vlArchivo2,oCR,oRpt,lnI
SELECT &cFileDat
vlArchivo1 = Getenv("TEMP") + [\] + Sys(2015) + [.dbf]
Copy To &vlArchivo1 Type Fox2x
*SELECT empresa
*vlArchivo2 = Getenv("TEMP") + [\] + Sys(2015) + [.dbf]
*Copy To &vlArchivo2 Type Fox2x
Wait Windows [Generando Informe] Nowait Noclear
repRuta='reports\'
oCR = Createobject("CrystalRuntime.Application")
oRpt = oCR.OpenReport(Fullpath([&repruta.&cFilerep.]))
* Cree el objeto Database
oDB = oRpt.Database()
* Obtenga una referencia a la colección DatabaseTables
ocDBT = oDB.Tables()
* Obtenga una referencia al objeto DatabaseTable para tabla 1
oDBT = ocDBT.Item(1)
* Asigne la ubicación
oDBT.Location = vlArchivo1
IF oRpt.HasSavedData
oRpt.DiscardSavedData()
ENDIF
WAIT clear
Do Case
Case pOpcion = 1 &&Pantalla
Do Form vista_previa With oRpt
Case pOpcion = 2 &&Impimir
oRpt.PrintOut(.F.)
Case pOpcion = 3 &&Impresora
Wait Windows [Confirme las Características de la Impresora ] + CHR(13) + [Puede Presionar ESC sin Cancelar la Impresión] Nowait
oRpt.PrinterSetup(0)
Wait Clear
oRpt.PrintOut(.T.)
Endcase
DELETE FILE (vlArchivo1)
EndFun
Tengo ademas un Form de Vista previa para que Insertar ahi el reporte...
** tengo entenido que el pasar el DBF a TEMP en fox2x es solo para Diseñar el Reporte...
posteriormente debera tomar el nombre del dbf y llevarlo a temporales de windows y de ahi tomar los datos para generar el reporte....
Necesito que alguien me explique detalladamente el codigo anterior porque no lo comprendo completamente...
Gracias Amigos
tengo la aplicacion llamdada TPSystem esta en la unidad C:\\TPSystem.. bajo este tengo las carpetas DATOS, REPORTS, TEMP, dice que para elaborar el reporte en crystal se debe de convertir la tabla a Fox2X. tome las tablas ventas.dbf y empresa.dbf... empresa esta contiene los datos del encabezado de la empresa.. y ventas el detalle de lo vendido... de la carpeta DATOS y las envio a TEMP convertidas a FOX2X. posteriormente abro Crystal Report 8.5 y elaboro el reporte y lo guardo en REPORTS puedes ser con el nombre de RVentas.rpt.. En Menu->Reportes->Ventas pongo el siguiente codigo...
********************************************
*** Menu -> Reportes -> Ventas
********************************************
PUBLIC cFileDat,cFilerep,pOpcion
SELECT VENTAS
SET ORDER TO cliente
cFileDat=ALIAS()
pOpcion=1
cFilerep='RVentas.rpt'
SET PROCEDURE TO funciones
=CrystalRep(cFileDat,cFilerep,pOpcion)
*******************************************************
****En archivo FUNCIONES tengo el siguiente codigo...
********************************************************
FUNCTION CrystalRep
PARAMETERS cFileDat,cFilerep,pOpcion
LOCAL vlArchivo1,vlArchivo2,oCR,oRpt,lnI
SELECT &cFileDat
vlArchivo1 = Getenv("TEMP") + [\] + Sys(2015) + [.dbf]
Copy To &vlArchivo1 Type Fox2x
*SELECT empresa
*vlArchivo2 = Getenv("TEMP") + [\] + Sys(2015) + [.dbf]
*Copy To &vlArchivo2 Type Fox2x
Wait Windows [Generando Informe] Nowait Noclear
repRuta='reports\'
oCR = Createobject("CrystalRuntime.Application")
oRpt = oCR.OpenReport(Fullpath([&repruta.&cFilerep.]))
* Cree el objeto Database
oDB = oRpt.Database()
* Obtenga una referencia a la colección DatabaseTables
ocDBT = oDB.Tables()
* Obtenga una referencia al objeto DatabaseTable para tabla 1
oDBT = ocDBT.Item(1)
* Asigne la ubicación
oDBT.Location = vlArchivo1
IF oRpt.HasSavedData
oRpt.DiscardSavedData()
ENDIF
WAIT clear
Do Case
Case pOpcion = 1 &&Pantalla
Do Form vista_previa With oRpt
Case pOpcion = 2 &&Impimir
oRpt.PrintOut(.F.)
Case pOpcion = 3 &&Impresora
Wait Windows [Confirme las Características de la Impresora ] + CHR(13) + [Puede Presionar ESC sin Cancelar la Impresión] Nowait
oRpt.PrinterSetup(0)
Wait Clear
oRpt.PrintOut(.T.)
Endcase
DELETE FILE (vlArchivo1)
EndFun
Tengo ademas un Form de Vista previa para que Insertar ahi el reporte...
** tengo entenido que el pasar el DBF a TEMP en fox2x es solo para Diseñar el Reporte...
posteriormente debera tomar el nombre del dbf y llevarlo a temporales de windows y de ahi tomar los datos para generar el reporte....
Necesito que alguien me explique detalladamente el codigo anterior porque no lo comprendo completamente...
Gracias Amigos
Valora esta pregunta


0