Pular para o conteúdo
Início » Advpl GetAdvFval

Advpl GetAdvFval

Advpl GetAdvFval

Tipo: Processamento

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(cAlias,uCpo,uChave,nOrder,uDef)

Parâmetros

cAlias – Alias do arquivo.

uCpo – Nome de um campo ou array contendo os nomes dos campos

desejados.

uChave – Chave para a pesquisa.

nOrder – Ordem do indice para a pesquisa.

uDef – Valor ou array “default” para ser retornado caso a chave não seja encontrada.

Retorna

uRet – Retorna o conteúdo de um campo ou array com o conteúdo de vários campos.

Exemplo

// Exemplo de uso da funcao GetAdvFVal:

// Obtendo apenas de um campo:

cChave := SD2->D2_COD+SD2->D2_LOCAL

cDesc := GetAdvFVal(“SB1”,”B1_DESC”,cChave,1,SC6->C6_DESCRI)

// Obtendo o conteudo de mais de um campo:

cChave := SD2->D2_COD+SD2->D2_LOCAL

aCpos := {“B1_DESC”,”B1_PRV1″,”B1_UM”}

aDados := GetAdvFVal(“SB1”,aCpos,cChave,1,{SC6->C6_DESCRI,SC6->C6_PRCVEN,SC6->C6_UM})

refere-se aos Itens do Pedido de Venda) e, após pesquisar no SB1 (Cadastro de Produtos), sugerir a quantidade

vendida a partir de um campo específico:

// Colunas…

nPosCod := aScan(aHeader,{ |x| Upper(AllTrim(x[2])) == “C6_PRODUTO” })

nPosQtd := aScan(aHeader,{ |x| Upper(AllTrim(x[2])) == “C6_QTDVEN” })

// Obtém o código do produto

cCodigo := aCols[n,nPosCod]

// Pesquisa

dbSelectArea(“SB1”)

dbSetOrder(1)

dbSeek(xFilial(“SB1”)+cCod)

// Altera a quantidade no grid

aCols[n,nPosQtd] := SB1->B1_QTSUGER // Campo específico com a quantidade padrão

__Return(SB1->B1_QTSUGER)

Para uma melhor compreensão, você pode analisar os programas RDMOD2.PRX e/ou RDMOD3.PRX que acompanham

o SIGA Advanced. Eles estão no diretório principal do sistema (geralmente \SIGAADV\) e demonstram rotinas usadas

para cadastros semelhantes ao Pedido de Vendas e que trabalham com os arrays mencionados.

Estude para provas de certificações em TI com os simulados Bynem

Veja também: