Problema com eval ?
Enviado: 17 Out 2010 20:49
Senhores,
O problema eu verifiquei com o harbour (atualizado pelo svn) com a indexação: DBFNTX
Vejam o seguinte código:
O dbf deste indice tem 32 registros. Quando é feita a indexação usando o eval, só é mostrado 1 registro.
INDEX ON CNPJ TO CLIENTEA EVAL Barra()
A função Barra(): Baixei da secção downloads.
O problema eu verifiquei com o harbour (atualizado pelo svn) com a indexação: DBFNTX
Vejam o seguinte código:
O dbf deste indice tem 32 registros. Quando é feita a indexação usando o eval, só é mostrado 1 registro.
INDEX ON CNPJ TO CLIENTEA EVAL Barra()
A função Barra(): Baixei da secção downloads.
Código: Selecionar todos
function barra // Fun‡Æo que exibe a barra de rolagem.
xxxxx:=savescreen(00,00,23,79)
cor01()
Sombrear( 21 , 06 , 24 , 76)
//box3d( 24 , 04 , 29 , 75 , .f. , "Caixa" )
//box3d( 26 , 05 , 28 , 74 , .t. , "Caixa" )
box3d( 18 , 04 , 23 , 75 , .f. , "Caixa" )
box3d( 20 , 05 , 22 , 74 , .t. , "Caixa" )
cor02()
InitBar(21, 06, 65)
lLoopCount = reccount()
@19,06 say 'Indexando arquivo: '+dbf()+' Garando ¡ndice: '+Field(1)
for I = 1 to lLoopCount
@ 21, 70 say integer(I/lLoopCount * 100) pict '999'
@ 21, 73 say '%'
AdvanceBar(I/lLoopCount)
skip
next
restscreen(00,00,23,79)
return (.t.)
procedure InitBar // Criando a barra de rolagem.
parameters lRow, lCol, lWidth, lScaleColr, lBarColor
public pBarRow, pBarCol, pBarWidth, pScaleColr, pBarColor, pBarStep
private lOrigColor
pBarRow = lRow
pBarCol = lCol
pBarWidth = lWidth
pScaleColr = if(pcount() > 3, lScaleColr, "r/N")
pBarColor = if(pcount() > 4, lBarColor, "gr+/N")
pBarStep = 100 / pBarWidth / 100
lOrigColor = setcolor(pScaleColr)
@ pBarRow, pBarCol say replicate('Û', pBarWidth)
setcolor(lOrigColor)
return
procedure AdvanceBar
parameters lPercent
private lOrigColor
lOrigColor = setcolor(pBarColor)
if lPercent < 1
@ pBarRow, pBarCol say replicate('Û', integer(lPercent/pBarStep))
else
@ pBarRow, pBarCol say replicate('Û', pBarWidth)
endif
setcolor(lOrigColor)
return
function Integer
*--------------*
parameters lNum
return val(left(str(lNum, 21, 10), 10))
func cor01
setcolor('w+/bg+,w+/b,gb,,gr+/bg')
func cor02
setcolor('w+/bg+,w+/b,gb,,gr+/bg')
func cor03
setcolor('bg+/n,bg+/r,,,w+/b')
func cor04
setcolor('bg+*/bg+,bg+/r,,,w+/b')
Function box3d
Parameters nLinTop, nColEsq, nLinBot, nColDir, lTipoBorda
caixas := ( Chr( 218 ) + Chr( 196 ) + Chr( 191 ) + Chr( 179 ) + ;
Chr( 217 ) + Chr( 196 ) + Chr( 192 ) + Chr( 179 ) )
lTipoBorda := IIf( PCOUNT() < 6 , .F. , lTipoBorda )
cCorAtual := SubStr( SetColor(), 1, (At( ",", SetColor() ) - 1) )
cCorFundo := SubStr( cCorAtual, (At( "/", cCorAtual ) + 1) )
If lTipoBorda = .F.
If CodCor( , cCorFundo ) = 15
SetColor( "W/" + cCorFundo )
ElseIf CodCor( , cCorFundo ) > 7
SetColor( "W+/" + cCorFundo )
Else
SetColor( cCorFundo + "+/" + cCorFundo )
EndIf
M->cor := SetColor()
Else
SetColor( "N/" + cCorFundo )
EndIf
Scroll( nLinTop , nColEsq , nLinBot , nColDir , 0 )
DispBox( nLinTop , nColEsq , nLinBot , nColDir , caixas )
If lTipoBorda = .F.
SetColor( "N/" + cCorFundo )
Else
If CodCor( , cCorFundo ) = 15
SetColor( "W/" + cCorFundo )
ElseIf CodCor( , cCorFundo ) > 7
SetColor( "W+/" + cCorFundo )
Else
SetColor( cCorFundo + "+/" + cCorFundo )
EndIf
M->cor := SetColor()
EndIf
@ nLinTop, nColDir Say "¿"
* DispBox( ( nLinBot - nLinTop - 1 ) , nColDir , ( nLinBot - nLinTop - 1 ) , nColDir )
DispBox( nLinTop +1 , nColDir , nLinBot , nColDir , caixas )
** SayDown( Replicate( "³" , ( nLinBot - nLinTop - 1 ) ), 0, nLinTop + 1, nColDir )
@ nLinBot, nColDir Say "Ù"
@ nLinBot, nColEsq+1 Say Replicate( "Ä", ( nColDir - nColEsq - 1 ) )
Return
Function CodCor
Parameters numero, scor
M->aCores := { "N" , "B" , "G" , "BG" , "R" , "RB" , "GR" , "W" , "N+" , "G+" , "BG+" , "R+" , "RB+" , "GR+" , "W+" }
If scor # nil
nRetorno := aScan( M->aCores , sCor )
If nRetorno == 0
M->aCores := { "N" , "B" , "G" , "BG" , "R" , "RB" , "GR" , "W" , "N*" , "G*" , "B*" , "R*" , "R*" , "G*" , "W*" }
nRetorno := aScan( M->aCores , sCor )
EndIf
Return nRetorno
EndIf
Return M->aCores[ Val( M->Numero ) ]
Function Sombrear()
Para wR,wC,wR1,wC1
cCol = SaveScreen(wR,wC,wR1,wC1)
For nA = 2 to Len( cCol ) Step 2
cCol = Stuff(cCol, nA, 1 , CHR(8) )
Next
RestScreen(wR,wC,wR1,wC1,cCol)
DispBox(cCol)