FoxPro/Visual FoxPro - Dudas con Crystal Report

 
Vista:

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
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:Dudas con Crystal Report

Publicado por es_binario (757 intervenciones) el 29/10/2009 19:52:11
El codigo que pones esta perfectamente comentado, dice en todo momento que significan las lineas de codigo, si no lo comprendes es por que no tienes mucho tiempo programando o ta vez no hayas programado un codigo completo, y para comprender el codigo se requieren conocimientos de programacion y conocer la syntasis de foxpro
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:Dudas con Crystal Report

Publicado por Loly (103 intervenciones) el 29/10/2009 20:30:58
Creo me exprese mal... si lo comprendo... lo que el codigo quiere decir.. es que el contenido de la tabla la pasa a temp luego se le asigna el nombre de la misma tabla en formato xbase... pero lo que no entiendo es que si le estoy diciendo...

select MYTABLA
** Se supone que esta actualizada.... y se encuentra en la carpeta datos... y fue abierta al inicio del sistema... luego le digo

vFileData=Alias() && la variable va a tomar el nombre de la tabla.dbf para parametrizar el llamado a la funcion CrystalREp(vfiledata).....

*** luego en el codigo de la funcion crtystalrep
select &vFileData. && Se supone que esta tabla ya esta actualizada..

pero al presentar el reporte... me presenta los datos NO ACTUALIZADOS...
tal y como los deje cuando la copie el archivo a Fox2x para la creacion del reporte..

pero al asignar la ruta de vFildata
vFilData = Getenv("TEMP") + [\] + Sys(2015) + [.dbf]

y realizar la copia del archivo lo deberia copiar actualizado... Verdad...''
Copy To &vFilData Type Fox2x

Y al ser buscado ser buscado en
oDBT.Location = vFilData

para mostrarlo.... en vista prelimiar.... lo presenta no actualizado...
Asi lo entiendo yo... pero creo que hay algo no se si sea en las ubicaciones de la creacion del reporte... o la ubicacion provisional de la tabla para la creacion del reporte... pero al llamar al reporte .. no deberia tomar para nada la tabla que esta en la ubicacion provisional..

gracias... 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