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

BlackTDN :: ADVPL ~ Class TFTPClient : Combo IV (O Destrinchar Parte 2)

pergaminhos… Continuação: BlackTDN :: ADVPL ~ Class TFTPClient : Combo III (O Destrinchar Parte 1).

Diretiva #xTranslateUma mera formalidade, uma vez que poderia ter criado uma User Function. Ou uma Function U_<f>.

User Function f() é traduzida, pelo pré-processador, para  u_f(). Lembrando que uma função retorna valor e uma procedure não (demonstrado como compatibilidade histórica) na realidade, no Protheus não existe a distinção entre Função e Procedure (1).

 

Observemos o conteúdo do arquivo de cabeçalho “protheus.ch”

Detalhe #xtranslate : Protheus.ch Algumas diretivas de tradução para o pré-processador encontradas no arquivo de cabeçalho “protheus.ch”. Dentre elas:

#xtranslate USER Function <cNome> => Function U_<cNome>

Para corroborar a afirmativa em (1) observe o seguinte fragmento de código:

Protheus : IDE : Erro de Compilação

O espaço de nomes é o mesmo: Seja uma Function ou uma Procedure. Se tentarmos compilar o código ocorrerá a seguinte exceção:

Compilando arquivos...
   c:\temp\xprocname.prw...
   (no projeto FTPSample)
Erro de compilação:  XPROCNAME.PRW(5)   C2021 Redefinition of function U_XPROCNAME


Processo interrompido por erro FATAL de compilação.

Compilação finalizada - 1 arquivo(s) - 1 mensagem(s)

Tempo de duração da compilação: 3 segundos




Ao ajustarmos o código. Deixando cada uma com o seu devido nome e executarmos:

Protheus : IDE : Procedure e Function

Teremos os seguintes resultados:

User Function fProcName() User Procedure pProcName()
u_fProcName() u_pProcName()
U_FPROCNAME U_PPROCNAME




   1: #include "protheus.ch"
   2: #xtranslate USER PROCEDURE <p> => PROCEDURE U_<p>
   3: User Function fProcName()
   4: Return(ProcName())
   5: User Procedure pProcName()
   6: Return(ProcName())









… continua

[]s
иαldσ dj

Comentários

Postagens mais visitadas