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