Luiz Fernando Posted July 24, 2017 Report Share Posted July 24, 2017 Colegas veja a situação abaixo nPos := ascan( aSql_e, { |x| x[1] == aSql_c[i,1] } ) if nPos > 0 Abatimento+= aSql_e[nPos,3] endif dentro da array aSql_e existe mais de um resultado , mais neste caso acima pega somente o primeiro que localizar como dar um WHILE ou algo do tipo, para pegar todos elementos que aSql_e[xx,1] seja igual a aSql_c[xx,1] Obrigado Quote Link to comment Share on other sites More sharing options...
fladimir Posted July 24, 2017 Report Share Posted July 24, 2017 Não poderia ser com aEval? Quote Link to comment Share on other sites More sharing options...
Luiz Fernando Posted July 24, 2017 Author Report Share Posted July 24, 2017 Não poderia ser com aEval? Fladimir nunca tinha usado o Aeval com uma condição, vou fazer os teste aqui, obrigado. Obs: o Marcelo(marca) tb me deu outra solução em usar um FOR NEXT da posição atual da localização do primeiro elemento encontrado. Obrigado a todos. Quote Link to comment Share on other sites More sharing options...
fladimir Posted July 24, 2017 Report Share Posted July 24, 2017 Segue como ficaria dentro do q vc passou, não cheguei a testar, mas acredito q esteja ok. (partindo do pressuposto q aSql_c[i,1] esteja previamente alimentada corretamente) Não sei se vc conhecia o Harbour trabalha com CodeBlocks extendidos, digamos assim, conforme abaixo, para tal precisa ter o RETURN NIL no final AEVAL( aSql_e, { |x| if x[1] == aSql_c[i, 1] Abatimento += x[3] endif RETURN NIL } ) Theotokos 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.