cAliasAlias da tabela em que a pesquisa será realizada.
AdvPL GuiaPosicione( <cAlias>, <nOrdem>, <cSeek>, <cField>, [cNickName] ) → xRetBusca um registro por índice e retorna diretamente o conteúdo de um campo.
Posicione() combina a seleção de uma tabela, a definição da ordem, a busca de uma chave e a leitura de um campo em uma única chamada. É útil para recuperar uma informação relacionada sem escrever a sequência DbSelectArea(), DbSetOrder(), DbSeek() e acesso ao campo a cada uso. A função altera a área de trabalho e o ponteiro do alias consultado; portanto, use-a conscientemente em rotinas que trabalham com mais de uma tabela.
Posicione( <cAlias>, <nOrdem>, <cSeek>, <cField>, [cNickName] ) → xRetcAliasAlias da tabela em que a pesquisa será realizada.
nOrdemNúmero da ordem de índice a ser usada. É desconsiderado quando cNickName é informado.
cSeekChave de busca montada conforme a expressão do índice selecionado.
cFieldNome do campo cujo valor será retornado.
cNickNameNickname da ordem de índice. Quando informado, substitui a escolha por nOrdem.
Retorna o conteúdo do campo informado em cField, em seu tipo AdvPL. Quando a chave não é localizada, trate o retorno de acordo com a regra de negócio e com o tipo esperado do campo.
User Function ExPosicioneCliente()
Local cNomeCliente := ""
// Índice 1 de SA1: A1_FILIAL + A1_COD + A1_LOJA
cNomeCliente := Posicione( ;
"SA1", ;
1, ;
xFilial("SA1") + SF2->F2_CLIENTE + SF2->F2_LOJA, ;
"A1_NOME" ;
)
MsgInfo(cNomeCliente, "Cliente")
ReturnA função procura o cliente de SF2 na ordem informada e devolve o valor de A1_NOME.
User Function ExPosicioneProduto()
Local aArea := GetArea()
Local cDescricao := ""
// Índice 1 de SB1: B1_FILIAL + B1_COD
cDescricao := Posicione( ;
"SB1", ;
1, ;
xFilial("SB1") + "000001", ;
"B1_DESC" ;
)
RestArea(aArea)
MsgInfo(cDescricao, "Produto")
ReturnA busca posiciona SB1 temporariamente. RestArea() restaura a área e o ponteiro existentes antes da consulta.
User Function ExPosicionePorNick()
Local cNome := ""
cNome := Posicione( ;
"SA1", ;
0, ;
xFilial("SA1") + "000001" + "01", ;
"A1_NOME", ;
"A1_FILIAL+A1_COD+A1_LOJA" ;
)
ConOut(cNome)
ReturnQuando o nickname é informado, a função utiliza essa identificação da ordem e ignora nOrdem.
© 2026 Usina.BR. Todos os direitos reservados. TOTVS, Protheus, Microsiga e seus respectivos logotipos são marcas de seus titulares. O AdvPL Guia é independente e utiliza citações limitadas, atribuídas e justificadas por finalidade educativa. Consulte os Termos de Uso. Termos de Uso