Função: GetAdvFVal – Execução de pesquisa em arquivo, é uma alternativa ao Posicione()
Esta função permite executar uma pesquisa em um arquivo, pela chave especificada e na ordem especificada, retornando o conteúdo de um ou mais campos.
Sintaxe:
GetAdvFVal – ( < cKeyAlias>, < uCpo>, [ uChave], [ nOrder], [ uDef] ) –> uRet
Parâmetros:
Nome | Tipo | Descrição
cKeyAlias | Caracter | Alias do arquivo (Obrigatório)
uCpo | Qualquer | Nome de um campo ou array contendo os nomes dos campos desejados. (Obrigatório)
uChave | Qualquer | Chave para pesquisa.
nOrder | Numérico | Ordem do índice para pesquisa.
uDef | Qualquer | Valor ou array “default” para ser retornado caso a chave não seja encontrada.
Retorno:
uRet() – Retorna o conteúdo de um campo ou array com o conteúdo de vários campos.
Exemplo via programa AdvPL
#include "protheus.ch" #include "tbiconn.ch" #include "topconn.ch" #DEFINE cEOF Chr(13)+Chr(10) /*-------------------------------------------------------------------------------------------* {Protheus.doc} User Function fGetADV() @type: User Function @author: Jose Moura @site: https://academiaprotheus.com.br @desc.: Programa fGetADV para demonstrar o uso da função GetAdvFVal *-------------------------------------------------------------------------------------------*/ User Function fGetADV() Local cCidOri as Character Local cPassAer as Character Local aDados := {} DbSelectArea('SA1') DbSelectArea('SC5') // Exemplo de uso da funcao GetAdvFVal: // Obtendo dados de apenas um campo: // Buscar dados da rotina de Viagens - Modulo 06-Financeiro // cCidOri := GetAdvFVal('FL5','FL5_DESORI', xFilial('FL5') + QUERC->FLE_PRESTA,1,'') // cPassAer := GetAdvFVal('FLE','FLE_DESPES', xFilial('FLE') + QUERC->FLE_PRESTA+QUERC->FLE_PARTIC+'10',2,'') cCidOri := GetAdvFVal('FL5','FL5_DESORI', xFilial('FL5') + '0000000061',1,'') cPassAer := GetAdvFVal('FLE','FLE_DESPES', xFilial('FLE') + '0000000061'+'007719'+'10',2,'') FWAlertSuccess('Cidade Origem: '+cCidOri+cEOF+; 'Cod. Pass.Aerea: '+cPassAer,'Info!') // Obtendo o conteudo de mais de um campo (Array): // Buscando Nome e Tipo de cliente com base no Cliente/Loja do PV (SC5) // aDados := GetAdvFVal('SA1',{'A1_NOME','A1_TIPO'},xFilial('SA1')+C5_CLIENTE+C5_LOJACLI,1,{'',''}) aDados := GetAdvFVal('SA1',{'A1_NOME','A1_TIPO'},xFilial('SA1')+'056107'+'00',1,{'',''}) FWAlertInfo('Nome Cliente: '+aDados[1]+cEOF+; 'Tipo de cliente: '+aDados[2],'AlertInfo!') Return
Academia Protheus
Sua academia para uma carreira de Sucesso!
Treinamento que Recomendo 👇
Pensando no Mercado de Trabalho com Totvs Protheus, especialmente para ser um Consultor de Negócios e Implantações ? Aqui está o Treinamento que você precisa: https://go.hotmart.com/Q88839526S
Aproveita e acessa nosso conteúdo no YouTube. Inscreva-se no Canal e ative as notificações: https://bit.ly/36keSmP
Usando a função GetAdvFVal em Gatilhos (triggers) – SX7
Analista de sistemas, programador com mais de 18 anos de experiência no sistema Totvs Protheus, administrador, suporte e customizações, idealizador da Academia Protheus, já ajudou centenas de pessoas a programar em AdvPL/Tlpp.
One thought on “Totvs AdvPL função GetAdvFVal uma alternativa ao Posicione()”