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
Naldo,
ResponderExcluirdbChangeAlias() funcionaria como a CHKFILE()?
Ver: http://tdn.totvs.com/pages/viewpage.action?pageId=6814713
abs,
Não! dbChangeAlias(cAlias,cNewAlias), função da API, altera o "apelido" da tabela enquanto que ChkFile() (Obtenha os parâmetros formais com GetFuncPrm("ChkFile")), função em ADVPL, abre uma tabela e atribui-lhe um apelido usando dbUseArea(). Um uso para dbChangeAlias(), como no exemplo, é ter a mesma tabela em memória, com Aliases diferentes de forma a não ser necessário salvar e restaurar o "ponteiro" da tabela no caso de se executar uma função do RPO que o desposicione. No exemplo alteramos o Apelido(Alias) da tabela CT1 para um apelido válido retornado pela GetNextAlias() e abrimos uma "nova instância" da mesma tabela usando ChkFile() (poderia ser dbUseArea()) ou simplesmente referenciando o alias CT1 (que seria aberta pela rotina de tratamento de erro uma vez que o Alias CT1, após dbChangeAlias(), não existir mais). No exemplo, A Função CTBCTASup necessita usar o Alias CT1 para encontrar a Conta Superior e, para evitar salvar e restaurar o "ponteiro do registro e índice da CT1) atribuimo-lhe um novo Apelido. Neste caso teremos 2x a mesma tabela em memória mas com Aliases diferentes (podendo navegar de forma independente entre os seus registros).
ExcluirNaldo,
ResponderExcluirserá que é possível manipular a mesma tabela com alias diferente com o objeto FWmBrowse()?? (setAlias)
(
estou utilizando a FWmBrowse() e estou tendo problemas.
abro uma tabela com a FWmBrowse e em seguida a mesma tabela é aberta com FWmBrowse so q com filtros diferentes.
ae quando tento manilupar os dados da conflito entre os dois FWmBrowse.
grato pela ajuda!