O objetivo deste guia rápido é auxiliar a utilização da função Posicione() na criação de colunas no browse das rotinas e nos relatórios do sistema.
A função:
O propósito da função POSICIONE() é buscar o conteúdo de um campo em uma determinada tabela do sistema, através de uma chave de pesquisa.
A sintaxe da função é a seguinte:
POSICIONE(cAlias, nOrdem, cChave, cCampo) , onde:
cAlias: Tabela onde está sendo buscado o valor.
nOrdem: Índice utilizado para a pesquisa.
cChave: Chave com as informações necessárias para se localizar na cAlias o registro onde o conteúdo (campo) que será retornado se encontra.
cCampo: Nome do campo onde se encontra do conteúdo que se deseja retornar.
Utilização no Browse:
Para exemplificar a função mostrada acima, vamos utilizá-la para preencher o conteúdo de uma nova coluna que será criada na rotina de Contas a Receber. O conteúdo desta coluna será o telefone da pessoa.
1 - Para criar uma nova coluna, clique em “Configurar” no browse da rotina (No exemplo, contas a receber).
2 - Em seguida Clique em “Colunas > Incluir” e preencha os dados à direita.
Sobre as informações que serão preenchidas:
Título - Nome da coluna a ser inserida, no exemplo será “Telefone”.
Dados - Fórmula utilizando o posicione (será explicada no passo 3).
Tipo - Tipo do campo. No exemplo será tipo Função.
Máscara - Máscara do campo retornado na fórmula, no exemplo a máscara será “@!”.
Alinhamento - Alinhamento do conteúdo na coluna. No exemplo, será alinhamento à esquerda.
Largura: Largura da coluna. No exemplo, largura 10.
Título - Nome da coluna a ser inserida, no exemplo será “Telefone”.
Dados - Fórmula utilizando o posicione (será explicada no passo 3).
Tipo - Tipo do campo. No exemplo será tipo Função.
Máscara - Máscara do campo retornado na fórmula, no exemplo a máscara será “@!”.
Alinhamento - Alinhamento do conteúdo na coluna. No exemplo, será alinhamento à esquerda.
Largura: Largura da coluna. No exemplo, largura 10.
3 - Preencheremos o campo “Dados” com a função “Posicione()”, citada acima, para que ela retorne o telefone cadastrado na rotina de Cadastro de Pessoas.
Criação da fórmula:
Sabemos que o cadastro da pessoa está na tabela SA1, portanto este será o nosso cAlias.
POSICIONE(“SA1”, ...
O próximo passo é informar o índice utilizado para a realização da busca, para isso, imprima os índices da tabela SA1 na rotina de Impressão de dicionário.
Observe que são apresentados todos os índices da tabela SA1 e suas respectivas chaves de busca:
Para o exemplo, utilizaremos o índice 1, que contém a chave A1_FILIAL + A1_PESSOA. Desta forma, nossa fórmula já possui o cAlias e o nOrdem preenchidos:
POSICIONE(“SA1”, 1, ...
Sabemos que estamos procurando o telefone da pessoa informada na rotina de contas a receber, portanto, passaremos no próximo parâmetro uma informação que possuímos (SE1->E1_PESSOA) para a realização da busca. O índice 1 solicita a filial + pessoa, porém, iremos informar apenas a pessoa, visto que em posiciones realizados dentro do sistema, não é necessário informar a filial.
Sendo assim, nossa fórmula fica da seguinte maneira:
POSICIONE(“SA1”, 1, SE1->E1_PESSOA, ...
Por último, devemos preencher o parâmetro cCampo, que é o conteúdo da SA1 que queremos que o posicione() retorne, o campo “A1_FONE”.
Desta forma, finalizamos a nossa fórmula, com todos os parâmetros preenchidos:
POSICIONE(“SA1”, 1, SE1->E1_PESSOA, “A1_FONE”)
4 - A fórmula criada, será informada no campo “Dados”, na criação do browse.
5 - Em seguida, clique em confirmar.
6 - No passo seguinte clique em Salvar e confirme.
7 - Observe que a coluna foi criada e o seu conteúdo retorna exatamente o número de telefone informado no cadastro da pessoa:
Browse (SE1):
Cadastro da pessoa (SA1):
Utilização em relatórios:
Agora mostraremos outro exemplo de utilização da rotina, desta vez em um relatório. Vamos utilizar o mesmo POSICIONE() criado no exemplo acima para imprimir uma coluna com o telefone da pessoa no relatório de Títulos a receber.
1 - O relatório alterado neste exemplo se encontra no seguinte caminho: Financeiro\Consulta\Títulos a receber.
2 - Ao acessar o relatório (personalizável – Treport), acesse Ações relacionadas\Personalizar.
3- Em seguida, selecione a seção em que será criada uma nova coluna (no exemplo, a seção títulos) e clique em Células.
A fórmula utilizada para criar uma nova coluna será a mesma que criamos anteriormente:
POSICIONE(“SA1”, 1, SE1->E1_PESSOA, “A1_FONE”)
Lembrando que a chave que estamos informando, poderá mudar, de acordo com a área em que estamos trabalhando no momento, ou seja, se este fosse um relatório de títulos a pagar, o parâmetro passado na chave seria SE2->E2_PESSOA.
Para saber em qual área o relatório é trabalhado, verifique na seção Células:
4 - Para incluirmos a fórmula, selecionaremos a opção fórmula e avançaremos.
5 - Na tela seguinte, informe o seu POSICIONE() e confirme.
6 - Em seguida, verifique que a coluna foi adicionada, bastando apenas preencher as suas informações à direita.
7 - Verifique que o preenchimento dessas informações é igual ao preenchimento que fizemos no exemplo anterior, ao incluir uma coluna no browse:
8 - Em seguida, clique em Salvar e dê um nome para este seu novo layout.
9 - Após criar o novo modelo, clique em OK, selecione o modelo antes da impressão e imprima o relatório.
10 - Verifique que a coluna foi criada e o conteúdo retornado está correto:
Relatório:
Cadastro de Pessoa (SA1):