Nesse vídeo será demonstrado a utilização da função AToHM que converte um array para um objeto HashMap.
Abaixo o código fonte desenvolvido para o exemplo em vídeo acima:
//Bibliotecas #Include "TOTVS.ch" /*/{Protheus.doc} User Function zExe050 Exemplo de função que converte um Array para um objeto HashMap @type Function @author Atilio @since 01/12/2022 @see https://tdn.totvs.com/display/tec/AToHM @obs Função AToHM Parâmetros + aMatriz , Array , Indica o nome do array que será transformado em objeto + nColuna_1 , Numérico , Indica o número da coluna que será a chave da pesquisa + nTrim_1 , Numérico , Indica o tipo de trim que será aplicado em dados caractere (0 = mantém; 1 = tira espaços a esquerda; 2 = tira espaços a direita; 3 = tira espaços de ambos os lados) + nColuna_2 , Numérico , Indica o número da coluna que será a chave da pesquisa + nTrim_2 , Numérico , Indica o tipo de trim que será aplicado em dados caractere (0 = mantém; 1 = tira espaços a esquerda; 2 = tira espaços a direita; 3 = tira espaços de ambos os lados) + nColuna_3 , Numérico , Indica o número da coluna que será a chave da pesquisa + nTrim_3 , Numérico , Indica o tipo de trim que será aplicado em dados caractere (0 = mantém; 1 = tira espaços a esquerda; 2 = tira espaços a direita; 3 = tira espaços de ambos os lados) + nColuna_4 , Numérico , Indica o número da coluna que será a chave da pesquisa + nTrim_4 , Numérico , Indica o tipo de trim que será aplicado em dados caractere (0 = mantém; 1 = tira espaços a esquerda; 2 = tira espaços a direita; 3 = tira espaços de ambos os lados) + nColuna_5 , Numérico , Indica o número da coluna que será a chave da pesquisa + nTrim_5 , Numérico , Indica o tipo de trim que será aplicado em dados caractere (0 = mantém; 1 = tira espaços a esquerda; 2 = tira espaços a direita; 3 = tira espaços de ambos os lados) + nColuna_6 , Numérico , Indica o número da coluna que será a chave da pesquisa + nTrim_6 , Numérico , Indica o tipo de trim que será aplicado em dados caractere (0 = mantém; 1 = tira espaços a esquerda; 2 = tira espaços a direita; 3 = tira espaços de ambos os lados) + nColuna_7 , Numérico , Indica o número da coluna que será a chave da pesquisa + nTrim_7 , Numérico , Indica o tipo de trim que será aplicado em dados caractere (0 = mantém; 1 = tira espaços a esquerda; 2 = tira espaços a direita; 3 = tira espaços de ambos os lados) + nColuna_8 , Numérico , Indica o número da coluna que será a chave da pesquisa + nTrim_8 , Numérico , Indica o tipo de trim que será aplicado em dados caractere (0 = mantém; 1 = tira espaços a esquerda; 2 = tira espaços a direita; 3 = tira espaços de ambos os lados) Retorno + oHash , Objeto , Objeto instanciado da classe THashMap **** Apoie nosso projeto, se inscreva em https://www.youtube.com/TerminalDeInformacao **** /*/ User Function zExe050() Local aArea := FWGetArea() Local aDadosMult := {} Local oHashTst Local cBusca := "" Local lEncontrou := .F. Local aLinha := {} //Adicionando elementos no Array (código, nome e idade) aAdd(aDadosMult, {"0001", "Daniel", 23}) aAdd(aDadosMult, {"0002", "Atilio", 33}) aAdd(aDadosMult, {"0003", "João", 43}) aAdd(aDadosMult, {"0004", "Maria", 53}) aAdd(aDadosMult, {"0005", "José", 63}) //Converte o Array para um THashMap, colocando como chave a coluna 1 e sem tirar espaços do conteúdo caractere oHashTst := AToHM(aDadosMult, 1, 0) //Efetua a busca do código via HMGet, se encontrou vai colocar na variável aLinha cBusca := "0003" lEncontrou := HMGet(oHashTst, cBusca, aLinha) //Se encontrou, iremos verificar o conteúdo do aLinha If lEncontrou ShowLog( ; VarInfo("aLinha", aLinha, , .F.) ; ) EndIf //Limpa o Hash da memória e libera o objeto HMClean(oHashTst) FreeObj(oHashTst) FWRestArea(aArea) Return
Bom pessoal, por hoje é só.
Abraços e até a próxima.