Existem três blocos no designer de relatórios: Script, categoria — bloco no qual a própria consulta SQL é escrita.
Descrito na secção Trabalho com consultas ; Tabelas — bloco no qual as colunas do relatório são adicionadas e configuradas.
Descrito na secção Trabalho com colunas ; Parâmetros — bloco no qual os parâmetros variáveis são configurados para executar o relatório.
Descrito na secção Trabalho com parâmetros ; Neste bloco, o utilizador escreve uma consulta SQL que irá carregar dados das tabelas da base de dados.
As consultas são escritas em SQL. O utilizador deve ter conhecimentos básicos de programação SQL para escrever consultas.
O SQL a nível básico pode ser aprendido no mais curto espaço de tempo possível (até 1 dia).
As consultas básicas necessárias para criar relatórios básicos estão descritas na secção Consultas SQL Básicas.
Este bloco de documentação descreve as ações possíveis com um bloco de código SQL já escrito; o trabalho com consultas básicas necessárias para criar relatórios básicos está descrito na secção Consultas SQL Básicas.
O código da consulta SQL é introduzido no bloco "Script, Categoria:": Após o código do script estar escrito, são possíveis as seguintes operações: Executar para verificar — para executar o relatório, clique no botão .
Após pressionar o botão, o script começará a ser executado; pode demorar desde alguns segundos a minutos, dependendo da complexidade e quantidade de dados que estão a ser descarregados.
Se o compilador de código detetar um erro no código, irá apresentá-lo na parte inferior num bloco vermelho: Se não existirem erros, aparecerá uma mensagem na parte inferior da janela indicando que o relatório está a ser carregado e, após a conclusão do carregamento, abrirá uma janela com o resultado do pedido.
Se a consulta puder teoricamente apresentar mais de 10 000 linhas, é aconselhável usar os limites TOP 1000 ou TOP 10000 após o comando SELECT para a verificar; Parar o relatório — se o relatório demorar muito tempo a carregar, ou se simplesmente decidiu parar a execução — isto pode ser feito clicando em .
Este botão fica vermelho e ativo quando o relatório está a ser executado.
Transferência dos campos selecionados em SELECT para as colunas do relatório.
As colunas são sempre adicionadas ao relatório com um pedido. Para adicionar colunas, clique no botão .
Após clicar, o sistema irá determinar automaticamente as colunas e os seus nomes e adicioná-las ao relatório: O sistema também irá apresentar estas colunas no bloco "Tabelas", onde o utilizador pode personalizá-las.
As configurações das colunas estão descritas na secção "Trabalho com colunas".
O sistema adiciona automaticamente todas as colunas. As desnecessárias são eliminadas clicando em .
Posteriormente podem ser adicionadas a partir do bloco "Tabela".
Transferência dos parâmetros do relatório para o campo "Parâmetros" para configuração. Para transferir os parâmetros, clique em .
Após clicar, o sistema irá determinar automaticamente quais são os parâmetros e transferirá os seus nomes para o campo "Parâmetros".
Os parâmetros que não foram migrados aparecem a vermelho no editor de consultas SQL, e os que foram migrados aparecem a verde.
Cada parâmetro deve ser configurado; como configurá-los e em que formatos os parâmetros podem estar no código SQL está descrito na secção "Trabalho com parâmetros".
Todos os campos selecionados através de SELECT na consulta SQL são apresentados em dois locais — acima do construtor e no bloco "Tabelas": O sistema também irá apresentar estas colunas no bloco "Tabelas", onde o utilizador pode personalizá-las.
As configurações das colunas estão descritas na secção "Trabalho com colunas".
O sistema adiciona automaticamente todas as colunas. As desnecessárias são eliminadas clicando em .
Posteriormente podem ser adicionadas a partir do bloco "Tabela".
Transferência dos parâmetros do relatório para o campo "Parâmetros" para configuração. Para transferir os parâmetros, clique em .
Após clicar, o sistema irá determinar automaticamente quais são os parâmetros e transferirá os seus nomes para o campo "Parâmetros".
Os parâmetros que não foram migrados aparecem a vermelho no editor de consultas SQL, e os que foram migrados aparecem a verde.
Cada parâmetro deve ser configurado; como configurá-los e em que formatos os parâmetros podem estar no código SQL está descrito na secção "Trabalho com parâmetros".
Todos os campos selecionados através de SELECT na consulta SQL são apresentados em dois locais — acima do construtor e no bloco "Tabelas": Inicialmente, todos os campos são adicionados automaticamente ao relatório após clicar no botão na janela de consulta SQL, e são apresentados acima do construtor e no bloco "Tabelas".
Após eliminar qualquer campo, pode adicioná-lo novamente clicando no + junto ao seu nome no bloco "Tabelas".
O utilizador pode alterar a ordem na qual os campos são apresentados — simplesmente arrastando e largando os seus nomes no bloco superior.
O utilizador também pode alterar o tamanho das colunas esticando-as.
O aspeto das colunas no bloco superior corresponde exatamente à forma como serão apresentadas no relatório.
Para alterar os parâmetros de um campo, clique no seu nome — após isso, abrirá uma janela com os seguintes parâmetros: Style All — edição do estilo geral do relatório.
O processo é semelhante à edição em qualquer outro editor de texto; Expand by — este campo está descrito em detalhe na secção Expand By e Group By ; Group by — este campo está descrito em detalhe na secção Expand By e Group By ; Nome — o utilizador define o nome desta coluna no relatório; Chave — indica que dados devem ser puxados para a coluna.
Por exemplo, existe um pedido: SELECT SKU_ID SKU, STORE_ID LOJA FROM SALES_SKU Se o utilizador colocar o código do campo LOJA nas configurações da coluna SKU, os dados da coluna LOJA serão apresentados na coluna SKU no relatório.
Mas isto só é possível se apenas uma coluna SKU for apresentada; se ambas as colunas SKU e LOJA forem apresentadas — então adicionar o código de campo não funcionará.
Não é possível adicionar um código de campo ao mesmo campo. Tipo de dados — seleção do tipo de dados a apresentar no campo.
São suportados os seguintes tipos de dados: Texto — para campos de texto — por exemplo, "Nome do artigo"; Número — para campos numéricos — por exemplo, "Volume de vendas"; Data — para campos com qualquer formato de data — por exemplo, "Semana de vendas" ou "Data de vendas"; Formato — este campo aparece se selecionar o tipo de dados "Número" ou "Data".
Ligação — permite ao utilizador adicionar uma ligação a outra página, dados ou outra coisa.
Por exemplo, existe um pedido: SELECT SKU_ID SKU, SITE_LINK LIGACAO FROM MONITORING A coluna SKU apresenta códigos de produtos, e a coluna LIGACAO apresenta ligações para o site.
Neste caso, se o utilizador selecionar uma ligação para LIGACAO no campo "Ligação" nas configurações da coluna SKU, no relatório, ao clicar no número na coluna SKU, abrirá uma ligação da coluna LIGACAO.
A ligação só pode ser adicionada a outras colunas; Largura — o utilizador pode limitar a largura possível do campo no relatório.
O valor deve ser introduzido em pixels. Se a largura for automática, o campo será esticado para caber no texto.
Style Cell — edição de um estilo separado para apresentar informação no relatório.
O processo é semelhante à edição em qualquer outro editor de texto; Estes dois campos de configuração de colunas são sempre definidos em conjunto.
Estes parâmetros permitem implementar colunas cruzadas — quando múltiplos dados de outras colunas são apresentados numa única coluna.
Por exemplo, isto permite ao utilizador apresentar dados sobre vendas de produtos para várias semanas numa só linha, sem adicionar manualmente uma coluna separada para cada semana.
Esta funcionalidade será explicada com mais detalhe no exemplo abaixo.
O utilizador criou um pedido para apresentar vendas da primeira semana dos últimos 5 anos para o item 56 selecionado em todas as lojas (Loja 1 e Loja 2): Como resultado, obteve o seguinte relatório: Pode ver-se que o relatório apresentou 10 linhas, mas num formato pouco conveniente.
Seria muito mais conveniente se todas as semanas e vendas fossem apresentadas numa só linha com o produto, ficando apenas duas linhas por cada loja.
Neste formato: Para tais transformações, utiliza-se o Expand By.
Primeiro, o utilizador precisa de remover da visualização a coluna cujos dados precisam de ser expandidos e inseridos noutra coluna.
Neste exemplo, é a coluna com semanas — WEEK WK.
Por isso, é necessário clicar em no topo na linha de colunas junto à coluna WEEK; O passo seguinte é clicar em junto à coluna na qual se pretende apresentar outra coluna.
No nosso caso, são as colunas Vendas e Stock — por isso, clique no botão junto a ambas as colunas — após clicar, qual coluna deve ser apresentada internamente — no nosso caso é WK (Semana); Depois disso, WK também é apresentado no campo Expand By nas configurações das colunas correspondentes.
Para o Expand by, o utilizador pode usar quaisquer colunas que não estejam apresentadas no relatório, mas que estejam presentes na consulta.
De seguida, o utilizador precisa de configurar em qual coluna os dados serão agrupados.
Neste exemplo, é necessário que os dados sejam agrupados por lojas — ou seja, no campo Group by, selecionar STR (o nome da coluna que puxa os dados por lojas na consulta SQL).
O utilizador pode selecionar Group by apenas para uma coluna; nas outras colunas com Expand by esta seleção será automaticamente puxada.
Após completar todas as configurações, o utilizador pode clicar em e ver como os dados são apresentados: Os parâmetros são valores que o utilizador seleciona ao executar um relatório.
Isto permite ao utilizador selecionar apenas os dados que satisfazem os seus critérios.
Os parâmetros são automaticamente transferidos do código no editor SQL para o bloco "Parâmetros" após clicar no botão .
Após os parâmetros aparecerem no bloco "Parâmetros", podem ser configurados.
Existem dois tipos de parâmetros: :parâmetro - tais parâmetros passam um valor específico e devem ser especificados no código como: where variável = :parâmetro; [lista_parâmetros] - tais parâmetros passam um conjunto de valores e devem ser especificados no código como: where variável [lista_parâmetros]; Por exemplo, se o utilizador precisar de passar o número "5" como parâmetro, utiliza o formato :parâmetro após o sinal de igual.
Como resultado, após iniciar o relatório, o parâmetro funcionará no código como: where valor = 5.
Se o utilizador precisar de transferir um conjunto — por exemplo (1,3,8), utiliza o formato [lista_parâmetros] sem sinal de igual.
Como resultado, após iniciar o relatório, o parâmetro funcionará no código como: where valor in (1,3,8).
O utilizador pode usar quaisquer nomes de parâmetros convenientes; o mais importante é usar o formato correto.
Para configurar um parâmetro, clique no nome do parâmetro no bloco "Parâmetros".
Após clicar, abre-se uma janela com as seguintes configurações de parâmetro: ID — identificador do parâmetro — é puxado automaticamente de acordo com o campo a que se aplica; não pode ser alterado; Nome — nome do parâmetro — deve ser igual ao nome do parâmetro no código; Exibição — nome do parâmetro que será apresentado quando o relatório for executado; Tipo — seleção do tipo de parâmetro — é muito importante especificar o tipo correto para o correto funcionamento do parâmetro e evitar erros.
São suportados os seguintes tipos de parâmetros: Texto — o parâmetro irá passar um valor de texto; só pode ser utilizado com o formato de parâmetro :parâmetro; Número — o parâmetro irá passar um valor numérico; só pode ser utilizado com o formato de parâmetro :parâmetro; Data — o parâmetro irá transmitir a data no formato AAAA-MM-DD; só pode ser utilizado com o formato de parâmetro :parâmetro; Semana — o parâmetro irá transmitir a data no formato de semana ISO — AAAASS; só pode ser utilizado com o formato de parâmetro :parâmetro; Mês — o parâmetro irá transmitir a data no formato de mês ISO — AAAAMM; só pode ser utilizado com o formato de parâmetro :parâmetro; Lista — o parâmetro irá passar um conjunto de valores em qualquer formato.
É utilizado quando é necessário passar mais de um valor. Por exemplo (1, 3, 8) ou (loja, armazém) ou (202015, 202025).
Só pode ser utilizado com o formato de parâmetro [lista_parâmetros]; Selecionar — o parâmetro irá passar um conjunto de valores selecionados por um pedido especial, indicado no campo "Consulta".
Só pode ser utilizado com o formato de parâmetro :parâmetro; Mín — valor mínimo do parâmetro.
Pode ser utilizado para números, datas, semanas, meses; Máx — valor máximo do parâmetro.
Pode ser utilizado para números, datas, semanas, meses; Consulta — preenchido apenas para o formato "Selecionar".
Para apresentar as consultas possíveis, o utilizador deve introduzir o texto 'select' no campo; as consultas disponíveis aparecerão automaticamente numa lista.
Quando o relatório é executado, a informação obtida do pedido será apresentada numa lista suspensa ao selecionar o valor do parâmetro.
As seguintes consultas são agora suportadas automaticamente (mas também podem ser criadas consultas adicionais): report_select_stores — utilizado para selecionar uma loja da lista para o valor do parâmetro; report_select_groups — utilizado para selecionar um grupo da lista para o valor do parâmetro; report_select_managers — utilizado para selecionar um gestor da lista para o valor do parâmetro; report_select_contracts — utilizado para selecionar um contrato da lista para o valor do parâmetro; report_select_suppliers — utilizado para selecionar um fornecedor da lista para o valor do parâmetro; report_select_whs — utilizado para selecionar um armazém da lista para o valor do parâmetro; report_select_fcst — utilizado para selecionar um número de previsão da lista para o valor do parâmetro; Índice — pode ser introduzido apenas para parâmetros como Data, Semana, Mês.
O índice permite ao utilizador subtrair ou adicionar automaticamente um valor ao parâmetro.
Portanto, se o utilizador definir o parâmetro Data e o Índice como -10, por defeito quando o relatório for executado, o valor da data será apresentado 10 dias a menos do que a data predefinida indicada no campo "Valor".
Se o campo de valor for deixado em branco, a data será subtraída à data atual; Valor — é introduzido um valor predefinido que será apresentado ao selecionar opções antes de executar o relatório.
Abaixo são apresentadas variantes de definição de parâmetros na consulta SQL para diferentes tipos de dados: where sku_id = :sku_id - utilizado para selecionar um SKU específico pelo código MySales.
Quando o relatório é executado, um número de SKU é passado ao parâmetro.
O tipo de parâmetro deve ser "Número"; where sku_id [sku_id_list] - utilizado para selecionar múltiplos SKUs pelo código MySales.
Quando o relatório é executado, um conjunto de números de SKU separados por vírgulas é passado ao parâmetro.
O tipo de parâmetro deve ser "Lista"; where item_code = :item_code - utilizado para selecionar um SKU específico usando o código interno.
Quando o relatório é executado, um código de texto é passado ao parâmetro.
O tipo de parâmetro deve ser "Texto"; where item_code [item_code_list] - utilizado para selecionar vários SKUs pelo código interno.
Quando o relatório é executado, um conjunto de códigos de texto SKU separados por vírgulas é passado ao parâmetro.
O tipo de parâmetro deve ser "Lista"; where ((sku_id = :sku_id) or (:sku_id = 0)) - parâmetro complexo — utilizado para poder apresentar todos os SKUs ou apenas um específico.
Neste caso, para apresentar todos os SKUs, o valor 0 é definido para o parâmetro ao iniciar o relatório, ou o número de um SKU específico para apresentar um único SKU; Os exemplos acima de definição de parâmetros no código são relevantes para todos os tipos de parâmetros e campos.
Para trabalhar com o compositor de relatórios, é muito importante compreender a estrutura da base de dados, de forma a perceber que dados obter de quais tabelas, quais são os nomes dos campos e como relacionar dados de diferentes tabelas.
O utilizador pode consultar a estrutura da base de dados clicando em e escolhendo "Show DB".
Após a seleção, abrirá uma janela na qual serão apresentadas todas as tabelas e todos os campos nas mesmas.
Uma função de pesquisa funciona na janela da base de dados, permitindo ao utilizador encontrar tabelas e colunas.