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 :: Programação Básica em Advpl “Combo XXIX”

STATIC e PUBLIC:

Estas duas instruções também declaram variáveis. PUBLIC declara variáveis que ficam visíveis durante todo o programa. Os problemas que examinamos com relação as variáveis Private também ocorrem com as variáveis Public, contudo com mais abrangência. Em vez de isolados a rotinas chamadas a partir de uma função, os problemas ocorrem na aplicação inteira.

As variáveis STATIC podem ajudar a solucionar este problema. Existem dois tipos de variáveis static: internas e externas. A diferença está na abrangência. As variáveis static em nível de arquivo abrangem o arquivo: elas ficam visíveis em qualquer função ou rotina dentro do arquivo de programa no qual estão declaradas. As variáveis static declaradas dentro de uma função ( static internas ) tem escopo local, exatamente como as variáveis local.

Obs.: No Protheus, as variáveis Static criadas à partir do menu, serão liberadas sempre que se voltar para o menu. Já as Static criadas durante a entrada do sistema serão mantidas enquanto o sistema estiver sendo usado.

A característica principal da variável Static é que ela pode sair do escopo e não conseguirmos mais acessá-la, mas, na próxima vez que em que entrarmos no programa ou função que a declarou ela terá o mesmo valor da última vez em que o programa ou função foi executado. Exemplo:

TEST1.PRG

Static nVar := 0 //Static em nível de arquivo ( externa )

User Function A()

Alert( Str( nVar ) ) //nVar será zero aqui...
nVar := 10

Return( NIL )

User Function B()

Alert( Str( nVar ) ) //nVar será 10 aqui...

Return( NIL )

User Function C()

Static nVar //Static em nível de função ( interna )

DEFAULT nVar := 0

Return( ++nVar )

TEST2.PRG

User Function Test() //nVar não está disponível em Test2()

Local nLoop
Local nLoops
Local nRetC

U_A() //aqui acessando a variável Static Externa
U_B() //aqui acessando a variável Static Externa

nLoops := 15
For nLoop := 1 To nLoops
nRetC := U_C() //aqui acessando a variável Static Interna
Alert( Str( nRetC ) )//nVar em U_C será incrementada a cada
//iteração do Loop
Next nLoop

Return( NIL )

Comentários

Postagens mais visitadas