Está en la página 1de 3

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 clara
No me gusta: Está pregunta no esta clara o no es útil
0Responder
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 clara
No me gusta: Está respuesta no esta clara o no es útil
0Comentar
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

También podría gustarte