Totvs AdvPL função GetAdvFVal uma alternativa ao Posicione()

Totvs Advpl funcao GetAdvFVal

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

One thought on “Totvs AdvPL função GetAdvFVal uma alternativa ao Posicione()

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *