Protheus :: Advpl :: Dicas do Robson :: Como criar uma consulta específica utilizando os recursos do dicionário SXB
Robson Luiz nos passou mais uma dica:
“Como criar uma consulta específica utilizando os recursos do dicionário SXB – Consulta padrão.
O exemplo descrito abaixo é apenas para se ter uma idéia de como unir os mecanismos disponíveis. Neste exemplo será demonstrado como gravar o endereço lógico de um arquivo tipo MS-Word ou Adobe em um campo da tabela em questão.
- Crie um campo na tabela SA6 – Cadastro de Bancos;
- A6_CONTRAT – tipo caractere, tamanho 50;
- Crie uma consulta SXB da seguinte forma:
- Clique no botão Avançar e preencha a próxima tela da seguinte forma:
- Repare que no campo retorno há a menção somente da função U_SA6_01().
- Clique no botão Finalizar para salvar os dados e vamos programar.
- Abra o DevStudio (IDE)
- Abra um novo arquivo e digite o seguinte programa:
- Salve este arquivo.
- Anexe a um gerente de projetos do DevStudio.
- Compile este programa.
- Coloque o ALIAS da consulta SXB no campo X3_F3 do campo SA6_CONTRAT.
É possível construir diversas soluções utilizando este recurso, porém o mais importante ressaltar que a consulta deverá ter sempre um retorno lógico, e se possível atribua valor ao campo dentro da rotina construída.
p/ Robson Luiz”
vlw a dica.
ResponderExcluirestava precisando desta solução.
o Fato de utilizar uma variável STATIC não torna esta soução um pouco confusa para dar manutenção mais tarde???
..confusa é a mente dos que se confundem com novidades!
ExcluirOpen Your Mind!
Totalmente Arrogante o comentário do colega acima, ainda posta anônimo que mostra a falta de coragem de expor suas opiniões...
ResponderExcluirRealmente Evandro, totalmente arrogante, mas infelizmente exitem muitas pessoas assim, enfim, vamos seguir em frente.
ResponderExcluirKelven, a fato de utilizar uma variável com escopo STATIC no arquivo de programa e não nas funções é para atender as duas Function, pois assim é possível trabalhar com ela em momentos diferentes quando as funçõs forem acionadas. Boa Sorte! Robson Luiz (rleg).
Muito obrigado Robson.
ResponderExcluirSalvou o dia.
Muito obrigado Robson.
ResponderExcluirSalvou o dia.
Bom Dia, mas sua solução apesar de Excelente pode ser Melhorada, ao invés de criar uma Variavel Static, faça como eu sempre fiz na Expressão coloque .T. e em Retorno coloque a Função u_SA6CONTRATO() entretanto com uma pequena modificação ao inves de retornar .T. coloque-a para Retornar o Valor Solicitado
ResponderExcluirExe.: Return SA6->A6_CONTRATO
Posteriormente ficará muito mais fácil possíveis Manutenções e por experiencia própria o Protheus tem Problema em Respeita Escopo de Variáveis.
PS. Outro Detalhe interessante e que quando se utiliza uma consulta especifica e você coloca uma Função independe da Tabela que esta sedo Utilizada em Tabela.
Exemplo: Nesta Consulta Acima o Resultado de se Colocar SA6 será o Mesmo se Colocarmos AAA.
Pessoal, alguém tentou essa solução (do Robson) com MVC?
ResponderExcluira Mesma tela funcionou em um mbrowse normal, mas no MVC da erro!!!!
até o momento não consegui resolver o problema, acho q vou colocar um evento em uma tecla para ativar a janela!
Se alguém tiver uma dica posta ae!
vlw!!!
Muchas gracias por tu conocimiento,
ResponderExcluirQuede gratamente sorprendido como es que se puede manejar una consulta de está manera.
Mil gracias!!!!