Uso addindex índice selecionado

Apesar de criado o índice 01 com a ordem UNIBOR+SALDO, a rotina não mantém os dados da tabela temporário ordenado. Qual será o problema?

aCampos:={}

AADD(aCampos,{"UNIBOR","C",06,0})
AADD(aCampos,{"SALDO ","N",14,2})

cAliasBrw := GetNextAlias()
oTempTable := FWTemporaryTable():New( cAliasBrw )

oTemptable:SetFields( aCampos)
oTempTable:AddIndex("01", {"UNIBOR"},{STR("SALDO")})
oTempTable:Create()

cAlUNI := oTempTable:GetAlias()

Leio a tabela SEA e gravo o conteúdo na tabela temporária criado acima.

While SEA->(!Eof()) .And. xFilial("SEA") == SEA->EA_FILIAL .And. SEA->EA_NUMBOR <= mv_par02
   RecLock((cAlUNI),.T.)
   (cAlUNI)->UNIBOR:=SEA->EA_NUMBOR
   (cAlUNI)->SALDO :=SE2->E2_SALDO-SE2->E2_SDDECRE
   MsUnLock()
   SEA->(dbSkip())
End

Quando leio a tabela temporária (cAlUNI), não mantem ordenado com o índice criado UNIBOR+SALDO.

(cAlUNI)->(dbGotop())

While (cAlUNI)->(!Eof())
   (cAlUNI)->(dbSkip( ))
End

Agradeço desde já.

compartilhar
  • Consegui resolver, o erro estava na função addindex, informei separado e ordenou corretamente. oTempTable:AddIndex("01", {"UNIBOR", "SALDO"})

    RODRIGO HORTA VILELA   07 de Oct de 2019
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do TOTVS DevForum!

3 respostas

Não é a resposta que estava procurando? Procure outras perguntas com as tags addindex advpl protheus ou faça a sua própria pergunta.