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.

Error con Fastreport GPF (Code = c0000005) Access Violation

Foro público de Xailer en español
Responder
lilosoft
Mensajes: 41
Registrado: Lun May 11, 2015 2:54 am

Error con Fastreport GPF (Code = c0000005) Access Violation

Mensaje por lilosoft »

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
lilosoft
Mensajes: 41
Registrado: Lun May 11, 2015 2:54 am

Re: Error con Fastreport GPF (Code = c0000005) Access Violation

Mensaje por lilosoft »

Ya se encuentra solucionado.

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
Responder