Jump to content
Fivewin Brasil

Ajuda - fivewin


rclipper

Recommended Posts

Amigos apareceu este erro que não entendo:

Numerei a linha 1356, para os amigos saber onde dá o erro.

Aplicacao

==========

Nome e Caminho: C:\SUPERM\SUPERM.EXE

Tamanho: 2,299,904 bytes

Maximo de arquivos abertos: ( SetHandleCount() ) 250

Ocorreu erro em: 10/01/2007, 23:39:52

Descricao: Erro BASE/1132 Bound error: array access

Chamadas ao Stack

=================

CHAMADA DE CHKMOVCX(1356)

CHAMADA DE (b)MOVCAIXA(99)

CHAMADA DE (b)MOVCAIXA(99)

CHAMADA DE MOVCAIXA(99)

CHAMADA DE (b)MAIN(60)

CHAMADA DE TSBUTTON:LBUTTONDOW(1100)

CHAMADA DE TSBUTTON:HANDLEEVEN(1007)

CHAMADA DE MAIN(111)


LOCAL aFormPg := {}

LOCAL cDeb, cRcb, cDup, oResDl, lOk, lFecha, oSelect, aFormasPg, aDup, aHav

LOCAL nDin, nPg2, nPg3, nPg4, nPg5, nPg6, nPg7, nPg8, nPg9, nOut, nHav, nDvl, nSrv, nTtl, nDeb, nRcb, nDup, nNgo, nIni, nPgo, nCh1, nCh2, nCan

STORE 0 TO nDin, nPg2, nPg3, nPg4, nPg5, nPg6, nPg7, nPg8, nPg9, nOut, nHav, nDvl, nSrv, nTtl, nDeb, nRcb, nDup, nNgo, nIni, nPgo, nCh1, nCh2, nCan

PUBLIC dIni, dFim, nAten, cAten, cFilt

dIni := DATE()

dFim := DATE()

nAten:= 0

cAten:= SPACE(40)

cFilt:= "CAIXA->FECHADO = .F."

aFormasPg := {"DINHEIRO", cFpgt2, cFpgt3, cFpgt4, cFpgt5, cFpgt6, cFpgt7, cFpgt8, cFpgt9,"OUTROS"}

aDup := {0,0,0,0,0,0,0,0,0,0}

aHav := {}

lOk := .f.

lFecha := .f.

oSelect := SELECT()

IF nEnHoje = NIL

DEFINE DIALOG oResDl RESOURCE "CAIXA_INF"

REDEFINE GET oGt1 VAR dIni ID 35 OF oResDl

REDEFINE GET oGt2 VAR dFim ID 36 OF oResDl WHEN !EMPTY(DTOS(dIni)) VALID !EMPTY(DTOS(dFim))

REDEFINE GET oGt3 VAR nAten ID 38 OF oResDl VALID CxChkAtd(@nAten,@cAten,oResDl)

REDEFINE GET oGt4 VAR cAten ID 39 OF oResDl UPDATE

REDEFINE CHECKBOX oCbx VAR lFecha ID 37 OF oResDl WHEN .F.

REDEFINE BUTTON oBt1 ID 40 OF oResDl ACTION (lOk := .t., oResDl:End())

REDEFINE BUTTON oBt2 ID 41 OF oResDl ACTION (lOk := .f., oResDl:End())

ACTIVATE DIALOG oResDl CENTERED

IF ! lOk

RETURN ""

ENDIF

ENDIF

USE SALDOINI SHARED NEW

IF ! FILE("SALDOINI.CDX")

MsgMeter( { | oMeter, oText, oDlg, lEnd | ;

BuildIndex( oMeter, oText, oDlg, @lEnd, "SALDOINI->DATA", "SALDOINI" ) },;

"Classificando saldo inicial...", "Espere um momento!" )

ENDIF

ordListClear()

OrdListAdd("SALDOINI", "SALDOINI")

IF SALDOINI->(DBSEEK(dIni))

nIni := SALDOINI->VALR

ENDIF

CLOSE SALDOINI

FERASE(cPasta+"\VNDTMP.CDX")

SET SOFTSEEK ON

SELECT 2

VENDAS->(DBCLEARFIL(NIL))

VENDAS->(DBSETORDER(3))

VENDAS->(DBSEEK(dIni))

INDEX ON VENDAS->ITEM48 TAG VNDTMP01 TO "VNDTMP" WHILE( VENDAS->ITEM48 >= dIni .AND. VENDAS->ITEM48 <= dFim )

ordListClear()

OrdListAdd("VNDTMP", "VNDTMP01")

SET SOFTSEEK OFF

VENDAS->(DBGOTOP())

cFilt := "VENDAS->ITEM52 = 0"

IF ! EMPTY(DTOS(dIni))

IF ! EMPTY(cFilt) ; cFilt += " .AND. " ; ENDIF

cFilt += "VENDAS->ITEM48 >= dIni .AND. VENDAS->ITEM48 <= dFim"

ENDIF

IF nAten > 0

IF ! EMPTY(cFilt) ; cFilt += " .AND. " ; ENDIF

cFilt += "VENDAS->ITEM36 = nAten"

ENDIF

cText := "RESUMO/CAIXA: "+DTOC(dIni)+" A "+DTOC(dFim) + CRLF

IF nAten > 0

cText += "ATEND.: "+ALLTRIM(cAten) + CRLF

ENDIF

IF nIni <> 0

cText += "SALDO INICIAL.............: "+Trans(nIni,"@E 999,999.99")+ CRLF

ENDIF

cDeb := ""

cRcb := ""

cDup := ""

SET FILTER TO &cFilt

VENDAS->(dbGoTop())

IF ! VENDAS->(EOF())

WHILE ! VENDAS->(EOF())

IF ALLTRIM(VENDAS->ITEM10) $ "VENDA A VISTA & VENDA A PRAZO"

nDin += VENDAS->ITEM11

nPg2 += VENDAS->ITEM13

nPg3 += VENDAS->ITEM58

nPg4 += VENDAS->ITEM59

nPg5 += VENDAS->ITEM60

nPg6 += VENDAS->ITEM61

nPg7 += VENDAS->ITEM62

nPg8 += VENDAS->ITEM20

nPg9 += VENDAS->ITEM63

nOut += VENDAS->ITEM64

ENDIF

IF lFecha

IF VENDAS->(RLOCK())

REPLACE VENDAS->ITEM52 WITH 1

VENDAS->(DBUNLOCKALL())

ENDIF

ENDIF

VENDAS->(DBSKIP(1))

END

IF lFecha

VENDAS->(DBCOMMITALL())

ENDIF

ENDIF

// Reabrir vendas para corrigir os índices

SELECT 2

CLOSE VENDAS

SysRefresh()

SELECT 2

USE VENDAS SHARED

ordListClear()

OrdListAdd("VENDAS", "VENDCODI", "VENDCLIE", "VENDDATA", "VENDNCNT")

// PROCESSAR HAVER

cFilt := ""

IF ! EMPTY(DTOS(dIni))

IF ! EMPTY(cFilt) ; cFilt += " .AND. " ; ENDIF

cFilt += "HAVER->DATA >= dIni .AND. HAVER->DATA <= dFim"

ENDIF

IF nAten > 0

IF ! EMPTY(cFilt) ; cFilt += " .AND. " ; ENDIF

cFilt += "HAVER->DATA = nAten"

ENDIF

// Processando despesas

USE DESPESAS SHARED NEW

ordListClear()

OrdListAdd("DESPESAS", "DESPCODI", "DESPDATA", "DESPDESC")

cFilt := ""

IF ! EMPTY(DTOS(dIni))

IF ! EMPTY(cFilt) ; cFilt += " .AND. " ; ENDIF

cFilt += "DESPESAS->ITEM02 >= dIni .AND. DESPESAS->ITEM02 <= dFim"

ENDIF

IF nAten > 0

IF ! EMPTY(cFilt) ; cFilt += " .AND. " ; ENDIF

cFilt += "DESPESAS->ITEM08 = nAten"

ENDIF

SET FILTER TO &cFilt

DESPESAS->(DBGOTOP())

IF ! DESPESAS->(EOF())

WHILE ! DESPESAS->(EOF())

nDeb += DESPESAS->ITEM05

cDeb += LEFT(DESPESAS->ITEM04,28)+Trans(DESPESAS->ITEM05,"@E 999,999.99")+ CRLF

DESPESAS->(DBSKIP(1))

END

ENDIF

CLOSE DESPESAS

// Processando recebimentos

USE RECEBIME SHARED NEW

ordListClear()

OrdListAdd("RECEBIME", "RECEBCOD", "RECEBDAT", "DECEBDES")

cFilt := ""

IF ! EMPTY(DTOS(dIni))

IF ! EMPTY(cFilt) ; cFilt += " .AND. " ; ENDIF

cFilt += "RECEBIME->ITEM02 >= dIni .AND. RECEBIME->ITEM02 <= dFim"

ENDIF

IF nAten > 0

IF ! EMPTY(cFilt) ; cFilt += " .AND. " ; ENDIF

cFilt += "RECEBIME->ITEM08 = nAten"

ENDIF

SET FILTER TO &cFilt

RECEBIME->(DBGOTOP())

IF ! RECEBIME->(EOF())

WHILE ! RECEBIME->(EOF())

nRcb += RECEBIME->ITEM05

cRcb += LEFT(RECEBIME->ITEM04,28)+Trans(RECEBIME->ITEM05,"@E 999,999.99")+ CRLF

RECEBIME->(DBSKIP(1))

END

ENDIF

CLOSE RECEBIME

// Processando contas recebidas

USE RELATDIA SHARED NEW

SET FILTER TO RELATDIA->ITEM11 >= dIni .AND. RELATDIA->ITEM11 <= dFim

RELATDIA->(DBGOTOP())

IF ! RELATDIA->(EOF())

WHILE ! RELATDIA->(EOF())

nDup += RELATDIA->ITEM12

IF RELATDIA->FORMPG > 1

aDup[RELATDIA->FORMPG] += RELATDIA->ITEM12

ELSE

aDup[1] += RELATDIA->ITEM12

ENDIF

RELATDIA->(DBSKIP(1))

END

FOR nX := 1 TO LEN(aDup)

IF aDup[nX] > 0

cDup += "RECEBIDO EM "+aFormasPg[nX]+REPLICATE(".",26-LEN("RECEBIDO EM "+aFormasPg[nX]))+": "+Trans(aDup[nX],"@E 999,999.99")+ CRLF

ENDIF

NEXT

ENDIF

CLOSE RELATDIA

// Negocia‡Æo da d¡vida

IF FILE("ARECNEGO.DBF")

USE ARECNEGO SHARED NEW

SET FILTER TO ARECNEGO->ITEM03 >= dIni .AND. ARECNEGO->ITEM03 <= dFim

ARECNEGO->(DBGOTOP())

IF ! ARECNEGO->(EOF())

SUM ARECNEGO->ITEM10 TO nNgo

ENDIF

CLOSE ARECNEGO

ENDIF

// Pagamento de duplicatas

IF FILE("RELATAPG.DBF")

USE RELATAPG SHARED NEW

SET FILTER TO RELATAPG->ITEM11 >= dIni .AND. RELATAPG->ITEM11 <= dFim

RELATAPG->(DBGOTOP())

IF ! RELATAPG->(EOF())

SUM RELATAPG->ITEM12 TO nPgo

cDeb += "PAGAMENTO DE DUPLICATAS...: "+Trans(nPgo,"@E 999,999.99")+ CRLF

ENDIF

CLOSE RELATAPG

nDeb += nPgo

ENDIF

// Processar cheques

FERASE(cPasta+"\CAIXATMP.CDX")

SET SOFTSEEK ON

SELECT 5

CAIXA->(DBCLEARFIL(NIL))

CAIXA->(DBSETORDER(1))

CAIXA->(DBSEEK(dIni))

INDEX ON CAIXA->DATA TAG MOVDATA TO "CAIXATMP" WHILE(CAIXA->DATA >= dIni .AND. CAIXA->DATA <= dFim )

ordListClear()

OrdListAdd("CAIXATMP", "MOVDATA")

SET SOFTSEEK OFF

CAIXA->(DBGOTOP())

SET FILTER TO CAIXA->DATA >= dIni .AND. CAIXA->DATA <= dFim

CAIXA->(DBGOTOP())

IF ! CAIXA->(EOF())

WHILE ! CAIXA->(EOF())

IF LEFT(CAIXA->HISTOR1,10) = "CHEQUE N. "

nCh1 += CAIXA->ENTRADA

nCh2 += CAIXA->SAIDA

ENDIF

IF LEFT(CAIXA->HISTOR1,10) = "HAVER CLI:"

nHav += CAIXA->ENTRADA

nTem := ASCAN(aHav, {|nCol| ncol[1] = LEFT(CAIXA->HISTOR2,26)+": "})

IF nTem = 0

AADD(aHav, {LEFT(CAIXA->HISTOR2,26)+": ", CAIXA->ENTRADA})

ELSE

aHav[nTem,2] += CAIXA->ENTRADA

ENDIF

ENDIF

IF LEFT(CAIXA->HISTOR1,13) = "DEVOLUCAO-COD"

nDvl += CAIXA->SAIDA

ENDIF

IF LEFT(CAIXA->HISTOR1,13) = "CANC.DEV-COD."

nCan += CAIXA->ENTRADA

ENDIF

IF LEFT(CAIXA->HISTOR2,10) = "REF. OS Nº"

nSrv += CAIXA->ENTRADA

ENDIF

CAIXA->(DBSKIP(1))

END

IF nCh2 > 0

cDeb += "PAGAMENTO DE CHEQUES......: "+Trans(nCh2,"@E 999,999.99")+ CRLF

nDeb += nCh2

ENDIF

ENDIF

CLOSE CAIXA

SELECT 5

USE CAIXA SHARED

ordListClear()

OrdListAdd("CAIXA", "CAIXDATA", "CAIXCODI", "CAIXDESC")

// Determinar as formas de pagamento que somam ao caixa.

SELECT 0

USE FORMASPG SHARED NEW VIA "DBFCDX"

OrdListClear()

OrdListAdd("FORMASPG", "Fpg0001", "Fpg0002")

FORMASPG->(dbgotop())

WHILE ! FORMASPG->(EOF())

AADD(aFormPg, FORMASPG->ITEM03)

FORMASPG->(DBSKIP(1))

END

CLOSE FORMASPG

SELECT 0

nDeb += nDvl

nTtl := (nDin+nDup+nHav+nNgo+nIni+nCh1+nRcb+nSrv+nCan)

1356 if aFormPg[ 2] = .T. ; nTtl += nPg2 ; endif

if aFormPg[ 3] = .T. ; nTtl += nPg3 ; endif

if aFormPg[ 4] = .T. ; nTtl += nPg4 ; endif

if aFormPg[ 5] = .T. ; nTtl += nPg5 ; endif

if aFormPg[ 6] = .T. ; nTtl += nPg6 ; endif

if aFormPg[ 7] = .T. ; nTtl += nPg7 ; endif

if aFormPg[ 8] = .T. ; nTtl += nPg8 ; endif

if aFormPg[ 9] = .T. ; nTtl += nPg9 ; endif

if aFormPg[10] = .T. ; nTtl += nOut ; endif

cText += "--------------- VENDAS ---------------"+ CRLF

cText += "DINHEIRO..................: "+Trans(nDin,"@E 999,999.99")+ CRLF

if aFormPg[ 2] = .T. ; cText += cFpgt2+REPLICATE(".",26-LEN(cFpgt2))+": "+Trans(nPg2,"@E 999,999.99")+ CRLF ; endif

if aFormPg[ 3] = .T. ; cText += cFpgt3+REPLICATE(".",26-LEN(cFpgt3))+": "+Trans(nPg3,"@E 999,999.99")+ CRLF ; endif

if aFormPg[ 4] = .T. ; cText += cFpgt4+REPLICATE(".",26-LEN(cFpgt4))+": "+Trans(nPg4,"@E 999,999.99")+ CRLF ; endif

if aFormPg[ 5] = .T. ; cText += cFpgt5+REPLICATE(".",26-LEN(cFpgt5))+": "+Trans(nPg5,"@E 999,999.99")+ CRLF ; endif

if aFormPg[ 6] = .T. ; cText += cFpgt6+REPLICATE(".",26-LEN(cFpgt6))+": "+Trans(nPg6,"@E 999,999.99")+ CRLF ; endif

if aFormPg[ 7] = .T. ; cText += cFpgt7+REPLICATE(".",26-LEN(cFpgt7))+": "+Trans(nPg7,"@E 999,999.99")+ CRLF ; endif

if aFormPg[ 8] = .T. ; cText += cFpgt8+REPLICATE(".",26-LEN(cFpgt8))+": "+Trans(nPg8,"@E 999,999.99")+ CRLF ; endif

if aFormPg[ 9] = .T. ; cText += cFpgt9+REPLICATE(".",26-LEN(cFpgt9))+": "+Trans(nPg9,"@E 999,999.99")+ CRLF ; endif

if aFormPg[10] = .T. ; cText += "OUTROS....................: "+Trans(nOut,"@E 999,999.99")+ CRLF ; endif

IF nSrv > 0

cText += "RECEBIDO DE SERVIÇOS (OS).: "+Trans(nSrv,"@E 999,999.99")+ CRLF

ENDIF

IF nCan > 0

cText += "CANCELAMENTO DE DEVOLUCAO.: "+Trans(nCan,"@E 999,999.99")+ CRLF

ENDIF

IF nHav > 0

cText += "---------- RECEBIDO DE HAVER ---------"+ CRLF

FOR nXX := 1 TO LEN(aHav)

cText += aHav[nXX,1]+Trans(aHav[nXX,2],"@E 999,999.99")+ CRLF

NEXT

IF LEN(aHav) > 1

cText += " =========="+ CRLF

cText += "TOTAL RECEDIGO DE HAVER...: "+Trans(nHav,"@E 999,999.99")+ CRLF

ENDIF

ENDIF

IF ! EMPTY(cDup)

cText += ""+ CRLF

cText += "------- RECEBIDO DE DUPLICADAS -------"+ CRLF

cText += cDup

IF (nDup) > 0

cText += " =========="+ CRLF

cText += "TOTAL RECEBIDO DUPLICATAS: "+Trans(nDup,"@E 999,999.99")+ CRLF

ENDIF

ENDIF

IF ! EMPTY(cRcb)

cText += ""+ CRLF

cText += "--------- OUTROS RECEBIMENOTS --------"+ CRLF

cText += cRcb

ENDIF

cText += " =========="+ CRLF

cText += "TOTAL DAS ENTRADAS........: "+Trans(nTtl,"@E 999,999.99")+ CRLF

IF nDeb > 0

cText += ""+ CRLF

cText += "--------------- SAIDAS ---------------"+ CRLF

IF nDvl > 0

cText += "DEVOLUCAO DE MARCADORIA...: "+Trans(nDvl,"@E 999,999.99")+ CRLF

ENDIF

cText += cDeb

cText += " =========="+ CRLF

cText += "TOTAL DAS SAIDAS..........: "+Trans(nDeb,"@E 999,999.99")+ CRLF

ENDIF

IF (nNgo+nCh1) > 0

cText += " =========="+ CRLF

ENDIF

IF (nNgo) > 0

cText += "RECEBIDO DE NEGOCIACAO....: "+Trans(nNgo,"@E 999,999.99")+ CRLF

ENDIF

IF (nCh1) > 0

cText += "CHEQUES RECEBIDOS.........: "+Trans(nCh1,"@E 999,999.99")+ CRLF

ENDIF

cText += ""+ CRLF

cText += "--------- SALDO DO MOVIMENTO ---------"+ CRLF

cText += "DINHEIRO EM MAOS..........: "+Trans((nDin+nIni)-nDeb,"@E 999,999.99")+CRLF

cText += "SALDO DO MOVIMENTO........: "+Trans(nTtl-nDeb,"@E 999,999.99")+CRLF

IF nEnHoje <> NIL

nEnHoje := nTtl

nSaHoje := nDeb

ENDIF

SELECT(oSelect)

RETURN(cText)

id=code>id=code>id=blue>

Renato

Clipper5.3, Blinker7.0 e FWH25 p/ Clipper.

Link to comment
Share on other sites

Amigos apareceu este erro que não entendo:

Numerei a linha 1356, para os amigos saber onde dá o erro.

Aplicacao

==========

Nome e Caminho: C:\SUPERM\SUPERM.EXE

Tamanho: 2,299,904 bytes

Maximo de arquivos abertos: ( SetHandleCount() ) 250

Ocorreu erro em: 10/01/2007, 23:39:52

Descricao: Erro BASE/1132 Bound error: array access

Chamadas ao Stack

=================

CHAMADA DE CHKMOVCX(1356)

CHAMADA DE (b)MOVCAIXA(99)

CHAMADA DE (b)MOVCAIXA(99)

CHAMADA DE MOVCAIXA(99)

CHAMADA DE (b)MAIN(60)

CHAMADA DE TSBUTTON:LBUTTONDOW(1100)

CHAMADA DE TSBUTTON:HANDLEEVEN(1007)

CHAMADA DE MAIN(111)


LOCAL aFormPg := {}

LOCAL cDeb, cRcb, cDup, oResDl, lOk, lFecha, oSelect, aFormasPg, aDup, aHav

LOCAL nDin, nPg2, nPg3, nPg4, nPg5, nPg6, nPg7, nPg8, nPg9, nOut, nHav, nDvl, nSrv, nTtl, nDeb, nRcb, nDup, nNgo, nIni, nPgo, nCh1, nCh2, nCan

STORE 0 TO nDin, nPg2, nPg3, nPg4, nPg5, nPg6, nPg7, nPg8, nPg9, nOut, nHav, nDvl, nSrv, nTtl, nDeb, nRcb, nDup, nNgo, nIni, nPgo, nCh1, nCh2, nCan

PUBLIC dIni, dFim, nAten, cAten, cFilt

dIni := DATE()

dFim := DATE()

nAten:= 0

cAten:= SPACE(40)

cFilt:= "CAIXA->FECHADO = .F."

aFormasPg := {"DINHEIRO", cFpgt2, cFpgt3, cFpgt4, cFpgt5, cFpgt6, cFpgt7, cFpgt8, cFpgt9,"OUTROS"}

aDup := {0,0,0,0,0,0,0,0,0,0}

aHav := {}

lOk := .f.

lFecha := .f.

oSelect := SELECT()

IF nEnHoje = NIL

DEFINE DIALOG oResDl RESOURCE "CAIXA_INF"

REDEFINE GET oGt1 VAR dIni ID 35 OF oResDl

REDEFINE GET oGt2 VAR dFim ID 36 OF oResDl WHEN !EMPTY(DTOS(dIni)) VALID !EMPTY(DTOS(dFim))

REDEFINE GET oGt3 VAR nAten ID 38 OF oResDl VALID CxChkAtd(@nAten,@cAten,oResDl)

REDEFINE GET oGt4 VAR cAten ID 39 OF oResDl UPDATE

REDEFINE CHECKBOX oCbx VAR lFecha ID 37 OF oResDl WHEN .F.

REDEFINE BUTTON oBt1 ID 40 OF oResDl ACTION (lOk := .t., oResDl:End())

REDEFINE BUTTON oBt2 ID 41 OF oResDl ACTION (lOk := .f., oResDl:End())

ACTIVATE DIALOG oResDl CENTERED

IF ! lOk

RETURN ""

ENDIF

ENDIF

USE SALDOINI SHARED NEW

IF ! FILE("SALDOINI.CDX")

MsgMeter( { | oMeter, oText, oDlg, lEnd | ;

BuildIndex( oMeter, oText, oDlg, @lEnd, "SALDOINI->DATA", "SALDOINI" ) },;

"Classificando saldo inicial...", "Espere um momento!" )

ENDIF

ordListClear()

OrdListAdd("SALDOINI", "SALDOINI")

IF SALDOINI->(DBSEEK(dIni))

nIni := SALDOINI->VALR

ENDIF

CLOSE SALDOINI

FERASE(cPasta+"\VNDTMP.CDX")

SET SOFTSEEK ON

SELECT 2

VENDAS->(DBCLEARFIL(NIL))

VENDAS->(DBSETORDER(3))

VENDAS->(DBSEEK(dIni))

INDEX ON VENDAS->ITEM48 TAG VNDTMP01 TO "VNDTMP" WHILE( VENDAS->ITEM48 >= dIni .AND. VENDAS->ITEM48 <= dFim )

ordListClear()

OrdListAdd("VNDTMP", "VNDTMP01")

SET SOFTSEEK OFF

VENDAS->(DBGOTOP())

cFilt := "VENDAS->ITEM52 = 0"

IF ! EMPTY(DTOS(dIni))

IF ! EMPTY(cFilt) ; cFilt += " .AND. " ; ENDIF

cFilt += "VENDAS->ITEM48 >= dIni .AND. VENDAS->ITEM48 <= dFim"

ENDIF

IF nAten > 0

IF ! EMPTY(cFilt) ; cFilt += " .AND. " ; ENDIF

cFilt += "VENDAS->ITEM36 = nAten"

ENDIF

cText := "RESUMO/CAIXA: "+DTOC(dIni)+" A "+DTOC(dFim) + CRLF

IF nAten > 0

cText += "ATEND.: "+ALLTRIM(cAten) + CRLF

ENDIF

IF nIni <> 0

cText += "SALDO INICIAL.............: "+Trans(nIni,"@E 999,999.99")+ CRLF

ENDIF

cDeb := ""

cRcb := ""

cDup := ""

SET FILTER TO &cFilt

VENDAS->(dbGoTop())

IF ! VENDAS->(EOF())

WHILE ! VENDAS->(EOF())

IF ALLTRIM(VENDAS->ITEM10) $ "VENDA A VISTA & VENDA A PRAZO"

nDin += VENDAS->ITEM11

nPg2 += VENDAS->ITEM13

nPg3 += VENDAS->ITEM58

nPg4 += VENDAS->ITEM59

nPg5 += VENDAS->ITEM60

nPg6 += VENDAS->ITEM61

nPg7 += VENDAS->ITEM62

nPg8 += VENDAS->ITEM20

nPg9 += VENDAS->ITEM63

nOut += VENDAS->ITEM64

ENDIF

IF lFecha

IF VENDAS->(RLOCK())

REPLACE VENDAS->ITEM52 WITH 1

VENDAS->(DBUNLOCKALL())

ENDIF

ENDIF

VENDAS->(DBSKIP(1))

END

IF lFecha

VENDAS->(DBCOMMITALL())

ENDIF

ENDIF

// Reabrir vendas para corrigir os índices

SELECT 2

CLOSE VENDAS

SysRefresh()

SELECT 2

USE VENDAS SHARED

ordListClear()

OrdListAdd("VENDAS", "VENDCODI", "VENDCLIE", "VENDDATA", "VENDNCNT")

// PROCESSAR HAVER

cFilt := ""

IF ! EMPTY(DTOS(dIni))

IF ! EMPTY(cFilt) ; cFilt += " .AND. " ; ENDIF

cFilt += "HAVER->DATA >= dIni .AND. HAVER->DATA <= dFim"

ENDIF

IF nAten > 0

IF ! EMPTY(cFilt) ; cFilt += " .AND. " ; ENDIF

cFilt += "HAVER->DATA = nAten"

ENDIF

// Processando despesas

USE DESPESAS SHARED NEW

ordListClear()

OrdListAdd("DESPESAS", "DESPCODI", "DESPDATA", "DESPDESC")

cFilt := ""

IF ! EMPTY(DTOS(dIni))

IF ! EMPTY(cFilt) ; cFilt += " .AND. " ; ENDIF

cFilt += "DESPESAS->ITEM02 >= dIni .AND. DESPESAS->ITEM02 <= dFim"

ENDIF

IF nAten > 0

IF ! EMPTY(cFilt) ; cFilt += " .AND. " ; ENDIF

cFilt += "DESPESAS->ITEM08 = nAten"

ENDIF

SET FILTER TO &cFilt

DESPESAS->(DBGOTOP())

IF ! DESPESAS->(EOF())

WHILE ! DESPESAS->(EOF())

nDeb += DESPESAS->ITEM05

cDeb += LEFT(DESPESAS->ITEM04,28)+Trans(DESPESAS->ITEM05,"@E 999,999.99")+ CRLF

DESPESAS->(DBSKIP(1))

END

ENDIF

CLOSE DESPESAS

// Processando recebimentos

USE RECEBIME SHARED NEW

ordListClear()

OrdListAdd("RECEBIME", "RECEBCOD", "RECEBDAT", "DECEBDES")

cFilt := ""

IF ! EMPTY(DTOS(dIni))

IF ! EMPTY(cFilt) ; cFilt += " .AND. " ; ENDIF

cFilt += "RECEBIME->ITEM02 >= dIni .AND. RECEBIME->ITEM02 <= dFim"

ENDIF

IF nAten > 0

IF ! EMPTY(cFilt) ; cFilt += " .AND. " ; ENDIF

cFilt += "RECEBIME->ITEM08 = nAten"

ENDIF

SET FILTER TO &cFilt

RECEBIME->(DBGOTOP())

IF ! RECEBIME->(EOF())

WHILE ! RECEBIME->(EOF())

nRcb += RECEBIME->ITEM05

cRcb += LEFT(RECEBIME->ITEM04,28)+Trans(RECEBIME->ITEM05,"@E 999,999.99")+ CRLF

RECEBIME->(DBSKIP(1))

END

ENDIF

CLOSE RECEBIME

// Processando contas recebidas

USE RELATDIA SHARED NEW

SET FILTER TO RELATDIA->ITEM11 >= dIni .AND. RELATDIA->ITEM11 <= dFim

RELATDIA->(DBGOTOP())

IF ! RELATDIA->(EOF())

WHILE ! RELATDIA->(EOF())

nDup += RELATDIA->ITEM12

IF RELATDIA->FORMPG > 1

aDup[RELATDIA->FORMPG] += RELATDIA->ITEM12

ELSE

aDup[1] += RELATDIA->ITEM12

ENDIF

RELATDIA->(DBSKIP(1))

END

FOR nX := 1 TO LEN(aDup)

IF aDup[nX] > 0

cDup += "RECEBIDO EM "+aFormasPg[nX]+REPLICATE(".",26-LEN("RECEBIDO EM "+aFormasPg[nX]))+": "+Trans(aDup[nX],"@E 999,999.99")+ CRLF

ENDIF

NEXT

ENDIF

CLOSE RELATDIA

// Negocia‡Æo da d¡vida

IF FILE("ARECNEGO.DBF")

USE ARECNEGO SHARED NEW

SET FILTER TO ARECNEGO->ITEM03 >= dIni .AND. ARECNEGO->ITEM03 <= dFim

ARECNEGO->(DBGOTOP())

IF ! ARECNEGO->(EOF())

SUM ARECNEGO->ITEM10 TO nNgo

ENDIF

CLOSE ARECNEGO

ENDIF

// Pagamento de duplicatas

IF FILE("RELATAPG.DBF")

USE RELATAPG SHARED NEW

SET FILTER TO RELATAPG->ITEM11 >= dIni .AND. RELATAPG->ITEM11 <= dFim

RELATAPG->(DBGOTOP())

IF ! RELATAPG->(EOF())

SUM RELATAPG->ITEM12 TO nPgo

cDeb += "PAGAMENTO DE DUPLICATAS...: "+Trans(nPgo,"@E 999,999.99")+ CRLF

ENDIF

CLOSE RELATAPG

nDeb += nPgo

ENDIF

// Processar cheques

FERASE(cPasta+"\CAIXATMP.CDX")

SET SOFTSEEK ON

SELECT 5

CAIXA->(DBCLEARFIL(NIL))

CAIXA->(DBSETORDER(1))

CAIXA->(DBSEEK(dIni))

INDEX ON CAIXA->DATA TAG MOVDATA TO "CAIXATMP" WHILE(CAIXA->DATA >= dIni .AND. CAIXA->DATA <= dFim )

ordListClear()

OrdListAdd("CAIXATMP", "MOVDATA")

SET SOFTSEEK OFF

CAIXA->(DBGOTOP())

SET FILTER TO CAIXA->DATA >= dIni .AND. CAIXA->DATA <= dFim

CAIXA->(DBGOTOP())

IF ! CAIXA->(EOF())

WHILE ! CAIXA->(EOF())

IF LEFT(CAIXA->HISTOR1,10) = "CHEQUE N. "

nCh1 += CAIXA->ENTRADA

nCh2 += CAIXA->SAIDA

ENDIF

IF LEFT(CAIXA->HISTOR1,10) = "HAVER CLI:"

nHav += CAIXA->ENTRADA

nTem := ASCAN(aHav, {|nCol| ncol[1] = LEFT(CAIXA->HISTOR2,26)+": "})

IF nTem = 0

AADD(aHav, {LEFT(CAIXA->HISTOR2,26)+": ", CAIXA->ENTRADA})

ELSE

aHav[nTem,2] += CAIXA->ENTRADA

ENDIF

ENDIF

IF LEFT(CAIXA->HISTOR1,13) = "DEVOLUCAO-COD"

nDvl += CAIXA->SAIDA

ENDIF

IF LEFT(CAIXA->HISTOR1,13) = "CANC.DEV-COD."

nCan += CAIXA->ENTRADA

ENDIF

IF LEFT(CAIXA->HISTOR2,10) = "REF. OS Nº"

nSrv += CAIXA->ENTRADA

ENDIF

CAIXA->(DBSKIP(1))

END

IF nCh2 > 0

cDeb += "PAGAMENTO DE CHEQUES......: "+Trans(nCh2,"@E 999,999.99")+ CRLF

nDeb += nCh2

ENDIF

ENDIF

CLOSE CAIXA

SELECT 5

USE CAIXA SHARED

ordListClear()

OrdListAdd("CAIXA", "CAIXDATA", "CAIXCODI", "CAIXDESC")

// Determinar as formas de pagamento que somam ao caixa.

SELECT 0

USE FORMASPG SHARED NEW VIA "DBFCDX"

OrdListClear()

OrdListAdd("FORMASPG", "Fpg0001", "Fpg0002")

FORMASPG->(dbgotop())

WHILE ! FORMASPG->(EOF())

AADD(aFormPg, FORMASPG->ITEM03)

FORMASPG->(DBSKIP(1))

END

CLOSE FORMASPG

SELECT 0

nDeb += nDvl

nTtl := (nDin+nDup+nHav+nNgo+nIni+nCh1+nRcb+nSrv+nCan)

1356 if aFormPg[ 2] = .T. ; nTtl += nPg2 ; endif

if aFormPg[ 3] = .T. ; nTtl += nPg3 ; endif

if aFormPg[ 4] = .T. ; nTtl += nPg4 ; endif

if aFormPg[ 5] = .T. ; nTtl += nPg5 ; endif

if aFormPg[ 6] = .T. ; nTtl += nPg6 ; endif

if aFormPg[ 7] = .T. ; nTtl += nPg7 ; endif

if aFormPg[ 8] = .T. ; nTtl += nPg8 ; endif

if aFormPg[ 9] = .T. ; nTtl += nPg9 ; endif

if aFormPg[10] = .T. ; nTtl += nOut ; endif

cText += "--------------- VENDAS ---------------"+ CRLF

cText += "DINHEIRO..................: "+Trans(nDin,"@E 999,999.99")+ CRLF

if aFormPg[ 2] = .T. ; cText += cFpgt2+REPLICATE(".",26-LEN(cFpgt2))+": "+Trans(nPg2,"@E 999,999.99")+ CRLF ; endif

if aFormPg[ 3] = .T. ; cText += cFpgt3+REPLICATE(".",26-LEN(cFpgt3))+": "+Trans(nPg3,"@E 999,999.99")+ CRLF ; endif

if aFormPg[ 4] = .T. ; cText += cFpgt4+REPLICATE(".",26-LEN(cFpgt4))+": "+Trans(nPg4,"@E 999,999.99")+ CRLF ; endif

if aFormPg[ 5] = .T. ; cText += cFpgt5+REPLICATE(".",26-LEN(cFpgt5))+": "+Trans(nPg5,"@E 999,999.99")+ CRLF ; endif

if aFormPg[ 6] = .T. ; cText += cFpgt6+REPLICATE(".",26-LEN(cFpgt6))+": "+Trans(nPg6,"@E 999,999.99")+ CRLF ; endif

if aFormPg[ 7] = .T. ; cText += cFpgt7+REPLICATE(".",26-LEN(cFpgt7))+": "+Trans(nPg7,"@E 999,999.99")+ CRLF ; endif

if aFormPg[ 8] = .T. ; cText += cFpgt8+REPLICATE(".",26-LEN(cFpgt8))+": "+Trans(nPg8,"@E 999,999.99")+ CRLF ; endif

if aFormPg[ 9] = .T. ; cText += cFpgt9+REPLICATE(".",26-LEN(cFpgt9))+": "+Trans(nPg9,"@E 999,999.99")+ CRLF ; endif

if aFormPg[10] = .T. ; cText += "OUTROS....................: "+Trans(nOut,"@E 999,999.99")+ CRLF ; endif

IF nSrv > 0

cText += "RECEBIDO DE SERVIÇOS (OS).: "+Trans(nSrv,"@E 999,999.99")+ CRLF

ENDIF

IF nCan > 0

cText += "CANCELAMENTO DE DEVOLUCAO.: "+Trans(nCan,"@E 999,999.99")+ CRLF

ENDIF

IF nHav > 0

cText += "---------- RECEBIDO DE HAVER ---------"+ CRLF

FOR nXX := 1 TO LEN(aHav)

cText += aHav[nXX,1]+Trans(aHav[nXX,2],"@E 999,999.99")+ CRLF

NEXT

IF LEN(aHav) > 1

cText += " =========="+ CRLF

cText += "TOTAL RECEDIGO DE HAVER...: "+Trans(nHav,"@E 999,999.99")+ CRLF

ENDIF

ENDIF

IF ! EMPTY(cDup)

cText += ""+ CRLF

cText += "------- RECEBIDO DE DUPLICADAS -------"+ CRLF

cText += cDup

IF (nDup) > 0

cText += " =========="+ CRLF

cText += "TOTAL RECEBIDO DUPLICATAS: "+Trans(nDup,"@E 999,999.99")+ CRLF

ENDIF

ENDIF

IF ! EMPTY(cRcb)

cText += ""+ CRLF

cText += "--------- OUTROS RECEBIMENOTS --------"+ CRLF

cText += cRcb

ENDIF

cText += " =========="+ CRLF

cText += "TOTAL DAS ENTRADAS........: "+Trans(nTtl,"@E 999,999.99")+ CRLF

IF nDeb > 0

cText += ""+ CRLF

cText += "--------------- SAIDAS ---------------"+ CRLF

IF nDvl > 0

cText += "DEVOLUCAO DE MARCADORIA...: "+Trans(nDvl,"@E 999,999.99")+ CRLF

ENDIF

cText += cDeb

cText += " =========="+ CRLF

cText += "TOTAL DAS SAIDAS..........: "+Trans(nDeb,"@E 999,999.99")+ CRLF

ENDIF

IF (nNgo+nCh1) > 0

cText += " =========="+ CRLF

ENDIF

IF (nNgo) > 0

cText += "RECEBIDO DE NEGOCIACAO....: "+Trans(nNgo,"@E 999,999.99")+ CRLF

ENDIF

IF (nCh1) > 0

cText += "CHEQUES RECEBIDOS.........: "+Trans(nCh1,"@E 999,999.99")+ CRLF

ENDIF

cText += ""+ CRLF

cText += "--------- SALDO DO MOVIMENTO ---------"+ CRLF

cText += "DINHEIRO EM MAOS..........: "+Trans((nDin+nIni)-nDeb,"@E 999,999.99")+CRLF

cText += "SALDO DO MOVIMENTO........: "+Trans(nTtl-nDeb,"@E 999,999.99")+CRLF

IF nEnHoje <> NIL

nEnHoje := nTtl

nSaHoje := nDeb

ENDIF

SELECT(oSelect)

RETURN(cText)

id=code>id=code>id=blue>

Renato

Clipper5.3, Blinker7.0 e FWH25 p/ Clipper.

Link to comment
Share on other sites

Renato,

Se vc colocar uma posição além do tamanho do array, ele retorna Erro BASE/1132 Bound error: array access.

porque o elemento refenciado não existe (a matriz citada não existe.)

provavelmente seu banco de dados esta vazio, na função WHILE. encontrou fim de arquivo e não foi criado o array aFormPg[ 2]

Viol

E-mail :sergioviol@terra.com.br

MSN: vmprintscrpardo@hotmail.com

Santa Cruz do Rio Pardo/SP

FW2.6 + XHARBOUR 0.99.50 + BCC551 + XDEV 0.33

(workshop ou pelles "não sei qual !! não consegui entender nenhum ... hahah)

Link to comment
Share on other sites

Ola Renato

Verifique se na saída do WHILE o seu vetor tem os elementos

que você está tentando acessar.

Coloque um MsgInfo(STR(LEN(aFormPg))) e veja o resultado.

WHILE ! FORMASPG->(EOF())

AADD(aFormPg, FORMASPG->ITEM03)

FORMASPG->(DBSKIP(1))

END

MsgInfo(STR(LEN(aFormPg)))

Se você quiser forçar o vetor a ter 10 elementos na saída

do WHILE mude para:

WHILE ! FORMASPG->(EOF()) .OR. LEN(aFormPg) < 10

[]´s

Flavio

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...