Tengo un cliente que lista a excel y le sale este error aleatoriamente.
Error description: Error BASE/1005 No existe la variable de instancia SIZE
Called from => SIZE()
Por favor una luz...
Gracias.
Ruben Dario Fernandez
- Code: Select all Expand view RUN
- FUNCTION EXCELCUENTA(fechaini, fechafin, numedecli,logocolor)
LOCAL xTOTI:=0 ,xxnFila:=0,xxnCol:=0, ntotalentradas:=0, ntotalsalidas:=0
local xxCO1:=0,xxCO2:=0,xxCO3:=0,xxCO4:=0,xxfec:=date(),xxdp:=0,xxhp:=0,xxdd:=0,xxhd:=0,xxDETA:=SPACE(25)
LOCAL xxhcc:=0, xxDateDeSaldoaRetornar:=Date(), xxnElNuevoSaldo:=0, xxcuenta1,;
xxnombresubcta, xxlhaydatos:= .F.,cNombrecuenta0:= "",lamoneda:= ""
LOCAL xXPRPRE1,xXPRMOV1, xXDBESE33,xxFila:=0 , xxColumna:= 0, xxCelda:=0, xXCLIENTE, xxNomApe:= "",xNmf:=1, xncol:=0, cArchivologo
LOCAL xXoExcel,xXoBook, xXoSheet,xXxl:=0, xXoHoja , xcHastaborde, xcnCol:="",xCOLUMNA:=0,xstrfila:="", cCuentaSub:= Space(9)
xXcuenta1 := numedecli
XXPRPRE1:=TData():New(, "preliki")
IF XXPRPRE1:Use()
XXPRPRE1:SetOrder(1)
XXPRPRE1:GOTOP()
Else
MsgInfo( "Error aperura base de datos Cuentas", "Informe")
RETURN(.F.)
Endif
XXPRMOV1:=TData():New(, "jjmov")
IF XXPRMOV1:Use()
XXPRMOV1:SetOrder(1)
XXPRMOV1:GOTOP()
Else
XXPRPRE1:Close()
MsgInfo( "Error aperura base de datos Cuentas", "Informe")
RETURN(.F.)
Endif
XXDBESE33 := TData():New(,"scta")
IF XXDBESE33:Use()
XXDBESE33:SetOrder("STA")
XXDBESE33:GOTOP()
IF XXDBESE33:SEEK(numedecli )
cNombrecuenta0:= XXDBESE33:SUCLINO
xxnombresubcta := xXDBESE33:SUBNOM
cTipoMoneda:= xXDBESE33:Timon
lamoneda:= cTipomoneda
Else
MsgInfo( "No encuento la cuenta", "Error 593 de red")
xXPRPRE1:Close()
xXPRMOV1:Close()
xXXDBESE33:Close()
RETURN(.F.)
Endif
Else
xXPRPRE1:Close()
xXPRMOV1:Close()
MsgInfo( "Error aperura base de datos Cuentas", "Informe")
RETURN(.F.)
Endif
XXDBESE33:Close()
If Empty(clientegral )
Return(.F.)
Endif
xXoExcel := ExcelObj()
If xXoExcel == nil
MsgInfo("Excel no está instalado", "Informe")
RETURN(.F.)
Endif
xXoExcel := TOleAuto():New("Excel.Application")
xXoExcel:WorkBooks:Add()
xXoExcel:Sheets("Hoja1") ; xXoHoja:=xxoExcel:ActiveSheet()
xXoHoja:Cells:Font:Name := "Arial"
xXoHoja:Cells:Font:Size:= 8 //10
xXoHoja:PageSetup:Orientation := 1
xXoExcel:DisplayAlerts := .f.
oRange:= xxoHoja:Range("B2:E2")
oRange:MergeCells:= .T.
oRange:HorizontalAlignment:=xlCenter
oRange:= xxoHoja:Range("B3:E3")
oRange:MergeCells:= .T.
oRange:HorizontalAlignment:=xlCenter
oRange:= xxoHoja:Range("B4:E4")
oRange:MergeCells:= .T.
oRange:HorizontalAlignment:=xlCenter
oRange:= xxoHoja:Range("B5:E5")
oRange:MergeCells:= .T.
oRange:HorizontalAlignment:=xlCenter
oRange:= xxoHoja:Range("B6:E6")
oRange:MergeCells:= .T.
oRange:HorizontalAlignment:=xlCenter
If logocolor
xxoHoja:Shapes:AddPicture("C:\AlfaInmo\logocolor.jpg",.t.,.t.,2,2,60,40)
Else
xxoHoja:Shapes:AddPicture("C:\AlfaInmo\logonegro.jpg",.t.,.t.,2,2,60,40)
Endif
//xxoHoja:Shapes:AddPicture(cArchivologo,.t.,.t.,2,2,60,40) //5.5
xXoHoja:Cells(2,2):Font:Name := "Verdana"
xxoHoja:Cells(2,2):Font:Size := 12
xxoHoja:Cells(2,2):Font:Bold := .T.
xxoHoja:Cells(2,2):Value:= "INMOBILIARIA J&J"
xxoHoja:Cells(2,2):Font:Bold := .T.
xxoHoja:Cells(3,2):Value:= "Reporte de cuenta "+ xTrim(numedecli) + " desde : "+ DtoC(fechaini) + " hasta el : "+DtoC(fechafin)
xxoHoja:Cells(4,2):Value:= "Cliente : " + cNombrecuenta0
xXoHoja:Columns(1):ColumnWidth:= 10
xXoHoja:Columns(2):ColumnWidth:= 24
xXoHoja:Columns(3):ColumnWidth:= 10
xXoHoja:Columns(4):ColumnWidth:= 10
xXoHoja:Columns(5):ColumnWidth:= 10
xXoHoja:Columns(6):ColumnWidth:= 10
xxnElNuevoSaldo:= OTROSALDOANTERIOR(lamoneda, fechaini , fechafin , xxcuenta1 )
oRange:= xxoHoja:Range("B5:E5")
oRange:MergeCells:= .T.
oRange:HorizontalAlignment:=xlCenter
xXoHoja:Cells( 5, 2 ):HorizontalAlignment:=xlEdgeLeft
xxoHoja:Cells(5,2):Value:= "Cuenta : " +xxcuenta1 +" "+XtRIM(xxnombresubcta)
If xTrim(cTipoMoneda)== "D"
xxoHoja:Cells(6,2):Value:= HBA("Cuenta en dólares americanos")
Else
xxoHoja:Cells(6,2):Value:= "Cuenta en pesos uruguayos"
Endif
xxoHoja:Range("A7:F7"):Font:Name:= "Calibri"
xxoHoja:Range("A7:F7"):Font:Size := 8
xxoHoja:Range("A7:F7"):Font:Bold := .T.
xxoHoja:Range("A7:F7"):Borders():LineStyle := 1
xxoHoja:Range("A7:F7"):Interior:Color := CLR_YELLOW
xXoHoja:Cells( 7, 1 ):HorizontalAlignment:= -4131
xXoHoja:Cells( 7, 3 ):HorizontalAlignment:=-4152
xXoHoja:Cells( 7, 4 ):HorizontalAlignment:=-4152
xXoHoja:Cells( 7, 5 ):HorizontalAlignment:=-4152
xXoHoja:Cells( 7, 6 ):HorizontalAlignment:=-4152
If xTrim(cTipoMoneda) == "D"
xxoHoja:Cells(7,1):Value:= "Fecha"
xxoHoja:Cells(7,2):Value:= "Detalles"
xxoHoja:Cells(7,3):Value:= "Debe $"
xxoHoja:Cells(7,4):Value:= "Haber $"
xxoHoja:Cells(7,5):Value:= "Debe US$"
xxoHoja:Cells(7,6):Value:= "Haber US$"
xxoHoja:Cells(8,2):Value:= "Saldo anterior"
IF xxnElNuevoSaldo < 0
xxoHoja:Cells(8,5):NumberFormat := " ###,##0.00"
xxoHoja:Cells(8,5):Value:= Transform(xxnElNuevoSaldo,"9,999,999,999.99")
Else
xxoHoja:Cells(8,6):NumberFormat := " ###,##0.00"
xxoHoja:Cells(8,6):Value:= Transform(xxnElNuevoSaldo,"9,999,999,999.99")
Endif
Else
xxoHoja:Cells(8,1):Value:= "Fecha"
xxoHoja:Cells(8,2):Value:= "Detalles"
xxoHoja:Cells(8,3):Value:= "Debe US$"
xxoHoja:Cells(8,4):Value:= "Haber US$"
xxoHoja:Cells(8,5):Value:= "Debe $"
xxoHoja:Cells(8,6):Value:= "Haber $"
xxoHoja:Cells(8,2):Value:= "Saldo anterior"
IF xxnElNuevoSaldo < 0
xxoHoja:Cells(8,5):NumberFormat := " ###,##0.00"
xxoHoja:Cells(8,5):Value:= Transform(xxnElNuevoSaldo,"9,999,999,999.99")
Else
xxoHoja:Cells(8,6):NumberFormat := " ###,##0.00"
xxoHoja:Cells(8,6):Value:= Transform(xxnElNuevoSaldo,"9,999,999,999.99")
Endif
Endif
SysRefresh()
xxnfila:= 8
xxPRMOV1:SetOrder("MCFE")
xxPRMOV1:GOTOP()
IF xxPRMOV1:SEEK(alltrim(xxcuenta1 ))
Do While !xxPRMOV1:EOF()
xxfec:=xxPRMOV1:MFEC
If xxfec >= fechaini .and. xxfec <= fechafin .AND. Alltrim(xxPRMOV1:MPETA) == Alltrim(xxcuenta1)
xxdeta :=xxPRMOV1:MDESC
xxdp:=xxPRMOV1:MPEDEB
xxhp:=xxPRMOV1:MPEHAB
xxdd:=xxPRMOV1:MDODEBE
xxhd:=xxPRMOV1:MDOHABE
If xTrim(cTipomoneda) == "D"
ntotalentradas += xxhd
ntotalsalidas += xxdd
Else
ntotalentradas += xxdp
ntotalsalidas += xxhp
Endif
If xTrim(cTipoMoneda )== "D"
xxnElNuevoSaldo :=( xxnElNuevoSaldo) + (xxdd) + (xxhd)
xxCO3+=(xxDD)
xxCO4+=(xxHD)
Else
xxnElNuevoSaldo :=( xxnElNuevoSaldo) + (xxdp) + (xxhp)
xxCO3+=(xxDp)
xxCO4+=(xxHp)
Endif
lVi:=.t.
If xTrim(cTipoMoneda)=="D"
xXnFila+=1
IF xxDP <> 0 .OR. xxHP <> 0 .OR. xxDD <> 0 .OR. xxHD <> 0
lhaydatos := .t.
xXoHoja:Cells( xxnfila, 1 ):HorizontalAlignment:= -4131
xxoHoja:Cells(xxnFila,1):Value:= DTOC(xXFEC)
xxoHoja:Cells(xxnFila,2):Value:= XtRIM(HBA(xXDETA))
IF xXDD <> 0
xxoHoja:Cells(xxnfila,3):NumberFormat := " ###,##0.00"
IIF(xxdp < 0, xxoHoja:Cells(xxnFila,3):Value:= xxdp, )
xxoHoja:Cells(xxnfila,5):NumberFormat := " ###,##0.00"
xxoHoja:Cells(xxnFila,5):Value:= xxdd
Endif
IF xXHD <> 0
xxoHoja:Cells(xxnfila,4):NumberFormat := " ###,##0.00"
IIF(xxhp > 0, xxoHoja:Cells(xxnFila,4):Value:= xxhp, )
xxoHoja:Cells(xxnfila,6):NumberFormat := " ###,##0.00"
xxoHoja:Cells(xxnFila,6):Value:= xxhd
Endif
Endif
Else
xXnFila+=1
IF xXDP <> 0 .OR. xXHP <> 0 .OR. xXDD <> 0 .OR. xXHD <> 0
lhaydatos := .t.
xXoHoja:Cells( xxnfila, 1 ):HorizontalAlignment:= -4131
xxoHoja:Cells(xxnFila,1):Value:= DTOC(xXFEC)
xxoHoja:Cells(xxnFila,2):Value:= XtRIM(HBA(xXDETA))
IF xxDp <> 0
xxoHoja:Cells(xxnfila,3):NumberFormat := " ###,##0.00"
IIF(xxhp < 0, xxoHoja:Cells(xxnFila,3):Value:= xxhp, )
xxoHoja:Cells(xxnfila,5):NumberFormat := " ###,##0.00"
xxoHoja:Cells(xxnFila,5):Value:=xxdp
Endif
IF xxHp <> 0
xxoHoja:Cells(xxnfila,4):NumberFormat := " ###,##0.00"
IIF(xxhd > 0, xxoHoja:Cells(xxnFila,4):Value:= xxhd, )
xxoHoja:Cells(xxnfila,6):NumberFormat := " ###,##0.00"
xxoHoja:Cells(xxnFila,6):Value:= xxhp
Endif
Endif
Endif
SysRefresh()
xxPRMOV1:SKIP(1)
Else
xxPRMOV1:SKIP(1)
Endif
EndDo
Endif
//xxnfila+=2
xxPRPRE1:SetOrder("PLCFE" )
xxPRPRE1:GOTOP()
IF xXPRPRE1:SEEK(alltrim(xXcuenta1 ))
Do while !xXPRPRE1:Eof()
xXfec:=xXPRPRE1:pfecha
xXpepeta:= xXPRPRE1:peta //sub
if (xXfec >= fechaini .and. xXfec <= fechafin ) .AND. xXPRPRE1:PETA == xXcuenta1
xXdeta :=xxPRPRE1:pdeta
xXdp:=xXPRPRE1:pedebe
xXhp:=xXPRPRE1:pehaber
xXdd:=xXPRPRE1:doldeb
xXhd:=xXPRPRE1:dolhab
If xTrim(cTipomoneda) == "D"
ntotalentradas += xxhd
ntotalsalidas += xxdd
Else
ntotalentradas += xxdp
ntotalsalidas += xxhp
Endif
If xTrim(cTipoMoneda) == "D"
xXnElNuevoSaldo :=( xXnElNuevoSaldo) + (xXdd) + (xXhd)
xXCO3+=(xXDD)
xXCO4+=(xXHD)
Else
xXnElNuevoSaldo := (xXnElNuevoSaldo) + (xXdp) + (xXhp)
xXCO3+=(xXDp)
xXCO4+=(xXHp)
Endif
lVi :=.t.
IF xXDD <> 0 .OR. xXDP <> 0 .OR. xXHP <> 0 .OR. xXHD <> 0
xxnFila+=1
lhaydatos := .T.
xXoHoja:Cells( xxnfila, 1 ):HorizontalAlignment:= -4131
xxoHoja:Cells(xxnFila,1):Value:= DTOC(xXFEC)
xxoHoja:Cells(xxnFila,2):Value:=hba( XtRIM(xXDETA))
If xTrim(cTipoMoneda) == "D"
IF xXDD <> 0
xxoHoja:Cells(xxnfila,3):NumberFormat := " ###,##0.00"
IIF(xxdp < 0, xxoHoja:Cells(xxnFila,3):Value:= xxdp, )
xxoHoja:Cells(xxnfila,5):NumberFormat := " ###,##0.00"
xxoHoja:Cells(xxnFila,5):Value:= xxdd
Endif
IF xXHD <> 0
xxoHoja:Cells(xxnfila,4):NumberFormat := " ###,##0.00"
IIF(xxhp > 0, xxoHoja:Cells(xxnFila,4):Value:= xxhp, )
xxoHoja:Cells(xxnfila,6):NumberFormat := " ###,##0.00"
xxoHoja:Cells(xxnFila,6):Value:= xxhd
Endif
Else
IF xXDP <> 0 .OR. xXHP <> 0 .OR. xXDD <> 0 .OR. xXHD <> 0
lhaydatos := .t.
IF xxDp <> 0
xxoHoja:Cells(xxnfila,3):NumberFormat := " ###,##0.00"
IIF(xxdd > 0, xxoHoja:Cells(xxnFila,4):Value:= xxdd, )
xxoHoja:Cells(xxnfila,5):NumberFormat := " ###,##0.00"
xxoHoja:Cells(xxnFila,5):Value:= xxdp
Endif
IF xxHp <> 0
xxoHoja:Cells(xxnfila,4):NumberFormat := " ###,##0.00"
IIF(xxhd > 0, xxoHoja:Cells(xxnFila,4):Value:= xxhd, )
xxoHoja:Cells(xxnfila,6):NumberFormat := " ###,##0.00"
xxoHoja:Cells(xxnFila,6):Value:= xxhp
Endif
Endif
Endif
Endif
xxPRPRE1:SKIP(1)
Else
xxPRPRE1:SKIP(1)
Endif
EndDo
xxnfila+=3
Endif
MsgInfo()
If xxnElNuevoSaldo < 0
oRange:= xxoHoja:Range("A"+xTrim(Str(xxnfila-1))+":D"+xTrim(Str(xxnfila-1)))
oRange:MergeCells:= .T.
xxoHoja:Range( "A"+xTrim(Str(xxnfila-1)) + ":F"+xTrim(Str(xxnfila-1 ))):Borders():LineStyle := 1
xXoHoja:Cells( xxnFila-1, 2 ):Font:Bold := .T.
xXoHoja:Cells( xxnFila-1, 2 ):Font:Italic := .T.
xXoHoja:Cells( xxnFila-1,5 ):Font:Bold := .T.
xXoHoja:Cells( xxnFila-1, 5 ):Font:Italic := .T.
xxoHoja:Cells(xxnFila-1,1):Value:= "Saldo ....."
xxoHoja:Cells(xxnFila-1,5):Value:= xxnElNuevoSaldo
Else
oRange:= xxoHoja:Range("A"+xTrim(Str(xxnfila-1))+":D"+xTrim(Str(xxnfila-1)))
oRange:MergeCells:= .T.
xxoHoja:Range( "A"+xTrim(Str(xxnfila-1)) + ":F"+xTrim(Str(xxnfila-1 ))):Borders():LineStyle := 1
xXoHoja:Cells( xxnFila-1, 2 ):Font:Bold := .T.
xXoHoja:Cells( xxnFila-1, 2 ):Font:Italic := .T.
xXoHoja:Cells( xxnFila-1, 6 ):Font:Bold := .T.
xXoHoja:Cells( xxnFila-1, 6 ):Font:Italic := .T.
xxoHoja:Cells(xxnFila-1,1):Value:= "Saldo ....."
xxoHoja:Cells(xxnFila-1,6):Value:= xxnElNuevoSaldo
Endif
xxnfila +=2
xxoHoja:Cells(xxnFila,6):Value:= ntotalentradas
xxnfila +=1
xxoHoja:Cells(xxnFila,6):Value:= ntotalsalidas
MsgInfo(ntotalentradas )
MsgInfo(ntotalsalidas)
XxoHoja := XxoExcel:ActiveSheet()
XxoExcel:Visible := .T.
Hb_GCall(.T.)
XxPRPRE1:Close()
XxPRMOV1:Close()
SysRefresh()
RETURN(.F.)