Pular para o conteúdo principal

Postagem em destaque

BlackTDN :: Como Criar Relatórios de Cotações com Dados Agrupados Usando SQL

img: DALL·E 2024-08-09 07.00.00 - A high-quality image showcasing a detailed SQL query being written in a code editor, such as VS Code, on a dark theme background. ... ## Como Criar Relatórios de Cotações com Dados Agrupados Usando SQL Quando trabalhamos com sistemas ERP e precisamos gerar relatórios de cotações que apresentam dados de múltiplos fornecedores, é comum encontrarmos a necessidade de pivotar registros que, originalmente, são apresentados de forma vertical. Isso é especialmente útil quando o objetivo é comparar preços ou condições de diferentes fornecedores para um mesmo produto em uma única linha do relatório. Neste artigo, vamos explorar uma abordagem para transformar registros verticais em colunas, facilitando a impressão de relatórios que consolidam informações de vários fornecedores em uma única linha. Vamos utilizar SQL com técnicas de pivotagem, e ao final, mostraremos como estender essa técnica para um número variável de fornecedores. ### Estrutura do Relatór

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.

  1. Crie um campo na tabela SA6 – Cadastro de Bancos; 
    • A6_CONTRAT – tipo caractere, tamanho 50; 
    • Crie uma consulta SXB da seguinte forma:

    sxb_1

    • Clique no botão Avançar e preencha a próxima tela da seguinte forma:

    sxb_2

    • 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.
  2. Abra o DevStudio (IDE)
  3. Abra um novo arquivo e digite o seguinte programa:

    sxb_3

    • Salve este arquivo.
    • Anexe a um gerente de projetos do DevStudio.
    • Compile este programa.
  4. 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”

Comentários

  1. vlw a dica.
    estava 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???

    ResponderExcluir
    Respostas
    1. ..confusa é a mente dos que se confundem com novidades!

      Open Your Mind!

      Excluir
  2. Totalmente Arrogante o comentário do colega acima, ainda posta anônimo que mostra a falta de coragem de expor suas opiniões...

    ResponderExcluir
  3. Realmente Evandro, totalmente arrogante, mas infelizmente exitem muitas pessoas assim, enfim, vamos seguir em frente.
    Kelven, 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).

    ResponderExcluir
  4. 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

    Exe.: 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.

    ResponderExcluir
  5. Pessoal, alguém tentou essa solução (do Robson) com MVC?
    a 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!!!

    ResponderExcluir
  6. Muchas gracias por tu conocimiento,

    Quede gratamente sorprendido como es que se puede manejar una consulta de está manera.

    Mil gracias!!!!

    ResponderExcluir

Postar um comentário

Postagens mais visitadas