Boa Tarde, alguem saberia me dizer pq isto nao funciona :
Ele so considera o ultimo indice
Request dbfcdx
rddsetdefault("DBFCDX")
USE Notas.Dbf ALIAS NOTA EXCLUSIVE NEW
FOR I:=1 TO 3
INDEX ON NUM_NOTA TAG I TO Notas.cdx
INDEX ON DTOS(DT_EMISSAO)+STR(NUM_NOTA,6) TAG I TO NOTAS.CDX
INDEX ON CGC_CPF+STR(NUM_NOTA,6) TAG I TO NOTAS.CDX
NEXT
ORDSETFOCUS("1")
LIST NUM_NOTA,CGC_CPF,DT_EMISSAO
INKEY(0)
ORDSETFOCUS("2")
LIST DT_EMISSAO,NUM_NOTA,CGC_CPF
INKEY(0)
ORDSETFOCUS("3")
LIST CGC_CPF,NUM_NOTA,DT_EMISSAO
CLOSE ALL
Indice CDX
Moderador: Moderadores
Re: Indice CDX
O correto seria:Jarbas escreveu:USE Notas.Dbf ALIAS NOTA EXCLUSIVE NEW
FOR I:=1 TO 3
INDEX ON NUM_NOTA TAG I TO Notas.cdx
INDEX ON DTOS(DT_EMISSAO)+STR(NUM_NOTA,6) TAG I TO NOTAS.CDX
INDEX ON CGC_CPF+STR(NUM_NOTA,6) TAG I TO NOTAS.CDX
NEXT
INDEX ON NUM_NOTA TAG 1 TO Notas.cdx
INDEX ON DTOS(DT_EMISSAO)+STR(NUM_NOTA,6) TAG 2 TO NOTAS.CDX
INDEX ON CGC_CPF+STR(NUM_NOTA,6) TAG 3 TO NOTAS.CDX
Voce esta pondo o "FOR I" e esta criando 3 vezes o 3º tag com a mesma chave.
Faça o teste de mesa para verificar sua lógica.
Vc tem toda a razao, nao fui feliz no exemplo , uma tremenda orelhada, mudei o programa e ficou assim :
Agora o meu indice so fica no primeiro. pq ??
request dbfcdx
rddsetdefault("DBFCDX")
USE Notas.Dbf ALIAS NOTA EXCLUSIVE NEW
_ind:={"NUM_NOTA","DTOS(DT_EMISSAO)+STR(NUM_NOTA,6)","CGC_CPF+STR(NUM_NOTA,6)"}
FOR I:=1 TO 3
_campo:=_ind
INDEX ON (_campo) TAG I TO Notas.cdx
NEXT
ORDSETFOCUS("1")
LIST NUM_NOTA,CGC_CPF,DT_EMISSAO
INKEY(0)
ORDSETFOCUS("2")
LIST DT_EMISSAO,NUM_NOTA,CGC_CPF
INKEY(0)
ORDSETFOCUS("3")
LIST CGC_CPF,NUM_NOTA,DT_EMISSAO
CLOSE ALL
desde ja mto obrigado
Agora o meu indice so fica no primeiro. pq ??
request dbfcdx
rddsetdefault("DBFCDX")
USE Notas.Dbf ALIAS NOTA EXCLUSIVE NEW
_ind:={"NUM_NOTA","DTOS(DT_EMISSAO)+STR(NUM_NOTA,6)","CGC_CPF+STR(NUM_NOTA,6)"}
FOR I:=1 TO 3
_campo:=_ind
INDEX ON (_campo) TAG I TO Notas.cdx
NEXT
ORDSETFOCUS("1")
LIST NUM_NOTA,CGC_CPF,DT_EMISSAO
INKEY(0)
ORDSETFOCUS("2")
LIST DT_EMISSAO,NUM_NOTA,CGC_CPF
INKEY(0)
ORDSETFOCUS("3")
LIST CGC_CPF,NUM_NOTA,DT_EMISSAO
CLOSE ALL
desde ja mto obrigado


