Hola tengo un problema con Fastreport. POR FAVOR ALGUIEN ME PUEDE AYUDAR
Al ejecutar un reporte no me arroja problema pero al ejecutarlo por segunda vez me da error.
GPF (Code = c0000005)
Access Violation
TFASTREPORT:SHOWREPORTC (0)
TFASTREPORT:SHOWREPORTC (356)
TFRMREPCTCTPROVEE:BTSTARTCLICK (187)
TBUTTON:ONCLICK (0)
TBUTTON:CLICK (101)
(B)XCONTROL (152)
TBUTTOM:COMMAND (0)
TGROUPBOX:WMCOMMAND (275)
TFRMREPCTCTPROVEE:SHOWMODAL (0)
TFRMCTCTPROVEE:MANTENEDITAR (80)
El código es el siguiente
METHOD BtStartClick( oSender ) CLASS TFrmRepCtCtProvee
Local Fec_Inicio, Fec_Termino, oFr, nSalAcu
if ::oDFechInicio:Value > ::oDFechTermino:Value
MsgInfo( "Fechas incorrectas! Ingrese nuevamente........" )
Return nil
EndIf
Fec_Inicio := ::oDFechInicio:Value
Fec_Termino:= ::oDFechTermino:Value
::oDbfGuiaPro:OrdSetFocus( "Codigo" )
::oDbfAjustes:OrdSetFocus( "Codigo" )
::oDbfDetPagPro:OrdSetFocus( "DetPagPro" )
FErase( "BigdataP.dbf" )
IF !File( "BigdataP.dbf" )
::oCdxBigData:CreateTable( { {"Detalle","C",30,0}, {"Fecha","D",8,0}, {"Comp","N",7,0}, {"Tipo","c",1,0}, {"Debe","N",8,0}, {"Haber","N",8,0}, {"Saldo","N",12,0} }, "BigdataP.dbf" )
ENDIF
WITH OBJECT ::oDbfBigdataP
:cName := "BigdataP.DBF"
:Open()
Application:lBusy := .T.
***DETPAGO***
Do While ! ::oDbfDetPagPro:Eof()
If ::oDbfDetPagPro:eliminado = 0 .and. ::oDbfDetPagPro:empresa = appdata:pCodempre
:FastAddNew()
:Detalle := "Cancelación Doc: " + allTrim( Str( ::oDbfDetPagPro:ndoc_pag, 12, 0 ) )
:Fecha := ::oDbfDetPagPro:fec_pag
:Comp := ::oDbfDetPagPro:ndoc_pag
:Tipo := "P"
:Debe := ::oDbfDetPagPro:mon_pag
:Haber := 0
:Saldo := 0
:FastUpdate()
EndIF
::oDbfDetPagPro:Skip()
EndDO
***FACCAB***
Do While ! ::oDbfGuiaPro:Eof()
If ::oDbfGuiaPro:eliminado = 0 .and. ::oDbfGuiaPro:empresa = appdata:pCodempre
:FastAddNew()
:Detalle := "Compra Doc: " + allTrim( ::oDbfGuiaPro:codigo )
:Fecha := ::oDbfGuiaPro:fecha
:Comp := Val(::oDbfGuiaPro:codigo)
:Tipo := "C"
:Debe := 0
:Haber := ::oDbfGuiaPro:Base1
:Saldo := 0
:FastUpdate()
EndIF
::oDbfGuiaPro:Skip()
EndDO
***AJUSTE***
Do While ! ::oDbfAjustes:Eof()
if ::oDbfAjustes:eliminado = 0 .and. ::oDbfAjustes:empresa = appdata:pCodempre
:FastAddNew()
:Detalle := ::oDbfAjustes:descripcion
:Fecha := ::oDbfAjustes:fecha
:Comp := Val(::oDbfAjustes:numajuste)
:Tipo := "A"
:Debe := ::oDbfAjustes:ENTRADA
:Haber := ::oDbfAjustes:SALIDA
:Saldo := 0
:FastUpdate()
EndIF
::oDbfAjustes:Skip()
EndDO
***CALCULO FINAL***
:OrdSetFocus( "Bigdatap" )
:reindex()
:gotop()
nSalAcu := 0
While ! :eof()
:reclock()
nSalAcu += :Debe
:Saldo := nSalAcu
nSalAcu -= :Haber
:Saldo := nSalAcu
:recunlock()
:skip()
EndDo
*** Limpio por fechas ***
:gotop()
While ! :eof()
:reclock()
IF :fecha < Fec_Inicio
:delete()
elseif :fecha > Fec_Termino
:delete()
else
:skip()
EndiF
:recunlock()
EndDo
:pack()
Application:lBusy := .F.
MsgInfo( "Calculo realizado! Espere..... para el reporte" )
END WITH
*** Despliegue Reporte *** //ACÁ ES DONDE SE DA EL ERROR
WITH OBJECT ::oFastReport1
WITH OBJECT :AddDbf( "Bigdata", "BigdataP->*" )
:lLoadOnDemand := .T.
END WITH
:ShowReport()
//:DesignReport()
END WITH
In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Error con Fastreport GPF (Code = c0000005) Access Violation
Re: Error con Fastreport GPF (Code = c0000005) Access Violation
Ya se encuentra solucionado.
Gracias
Gracias
lilosoft escribió:Hola tengo un problema con Fastreport. POR FAVOR ALGUIEN ME PUEDE AYUDAR
Al ejecutar un reporte no me arroja problema pero al ejecutarlo por segunda vez me da error.
GPF (Code = c0000005)
Access Violation
TFASTREPORT:SHOWREPORTC (0)
TFASTREPORT:SHOWREPORTC (356)
TFRMREPCTCTPROVEE:BTSTARTCLICK (187)
TBUTTON:ONCLICK (0)
TBUTTON:CLICK (101)
(B)XCONTROL (152)
TBUTTOM:COMMAND (0)
TGROUPBOX:WMCOMMAND (275)
TFRMREPCTCTPROVEE:SHOWMODAL (0)
TFRMCTCTPROVEE:MANTENEDITAR (80)
El código es el siguiente
METHOD BtStartClick( oSender ) CLASS TFrmRepCtCtProvee
Local Fec_Inicio, Fec_Termino, oFr, nSalAcu
if ::oDFechInicio:Value > ::oDFechTermino:Value
MsgInfo( "Fechas incorrectas! Ingrese nuevamente........" )
Return nil
EndIf
Fec_Inicio := ::oDFechInicio:Value
Fec_Termino:= ::oDFechTermino:Value
::oDbfGuiaPro:OrdSetFocus( "Codigo" )
::oDbfAjustes:OrdSetFocus( "Codigo" )
::oDbfDetPagPro:OrdSetFocus( "DetPagPro" )
FErase( "BigdataP.dbf" )
IF !File( "BigdataP.dbf" )
::oCdxBigData:CreateTable( { {"Detalle","C",30,0}, {"Fecha","D",8,0}, {"Comp","N",7,0}, {"Tipo","c",1,0}, {"Debe","N",8,0}, {"Haber","N",8,0}, {"Saldo","N",12,0} }, "BigdataP.dbf" )
ENDIF
WITH OBJECT ::oDbfBigdataP
:cName := "BigdataP.DBF"
:Open()
Application:lBusy := .T.
***DETPAGO***
Do While ! ::oDbfDetPagPro:Eof()
If ::oDbfDetPagPro:eliminado = 0 .and. ::oDbfDetPagPro:empresa = appdata:pCodempre
:FastAddNew()
:Detalle := "Cancelación Doc: " + allTrim( Str( ::oDbfDetPagPro:ndoc_pag, 12, 0 ) )
:Fecha := ::oDbfDetPagPro:fec_pag
:Comp := ::oDbfDetPagPro:ndoc_pag
:Tipo := "P"
:Debe := ::oDbfDetPagPro:mon_pag
:Haber := 0
:Saldo := 0
:FastUpdate()
EndIF
::oDbfDetPagPro:Skip()
EndDO
***FACCAB***
Do While ! ::oDbfGuiaPro:Eof()
If ::oDbfGuiaPro:eliminado = 0 .and. ::oDbfGuiaPro:empresa = appdata:pCodempre
:FastAddNew()
:Detalle := "Compra Doc: " + allTrim( ::oDbfGuiaPro:codigo )
:Fecha := ::oDbfGuiaPro:fecha
:Comp := Val(::oDbfGuiaPro:codigo)
:Tipo := "C"
:Debe := 0
:Haber := ::oDbfGuiaPro:Base1
:Saldo := 0
:FastUpdate()
EndIF
::oDbfGuiaPro:Skip()
EndDO
***AJUSTE***
Do While ! ::oDbfAjustes:Eof()
if ::oDbfAjustes:eliminado = 0 .and. ::oDbfAjustes:empresa = appdata:pCodempre
:FastAddNew()
:Detalle := ::oDbfAjustes:descripcion
:Fecha := ::oDbfAjustes:fecha
:Comp := Val(::oDbfAjustes:numajuste)
:Tipo := "A"
:Debe := ::oDbfAjustes:ENTRADA
:Haber := ::oDbfAjustes:SALIDA
:Saldo := 0
:FastUpdate()
EndIF
::oDbfAjustes:Skip()
EndDO
***CALCULO FINAL***
:OrdSetFocus( "Bigdatap" )
:reindex()
:gotop()
nSalAcu := 0
While ! :eof()
:reclock()
nSalAcu += :Debe
:Saldo := nSalAcu
nSalAcu -= :Haber
:Saldo := nSalAcu
:recunlock()
:skip()
EndDo
*** Limpio por fechas ***
:gotop()
While ! :eof()
:reclock()
IF :fecha < Fec_Inicio
:delete()
elseif :fecha > Fec_Termino
:delete()
else
:skip()
EndiF
:recunlock()
EndDo
:pack()
Application:lBusy := .F.
MsgInfo( "Calculo realizado! Espere..... para el reporte" )
END WITH
*** Despliegue Reporte *** //ACÁ ES DONDE SE DA EL ERROR
WITH OBJECT ::oFastReport1
WITH OBJECT :AddDbf( "Bigdata", "BigdataP->*" )
:lLoadOnDemand := .T.
END WITH
:ShowReport()
//:DesignReport()
END WITH