Artigo que tem como objetivo instruir a criação de relatórios bem como a migração de relatórios da plataforma antiga.
Planilha do projeto de migração (precisa da aprovação do Rodrigo Oliveira para o acesso)
https://docs.google.com/spreadsheets/d/1WxIYQoPmHnG8PccoOTcCYXt3vhoBmEtN/edit#gid=1298578454
Artigo em construção!
\uD83D\uDCD8 Instruções
Na migração de relatórios, mantenha uma aba do antigo (no silverlight) e outra aba com o novo portal de relatórios:
Primeiro verifique como esta o relatório na plataforma antiga
Abra Dicionário > Variáveis você deverá replicar essas variáveis para a nova versão.
Após isso, deve conferir o data source que precisa utilizar no relatório em questão, deve estar na planilha identificado uma sugestão, com isso deve validar a query no relatório antigo e criar um select novo para o relatório sobre o data-source, mantendo apenas os campos necessários, assim ‘economiza’ processamento de dados do banco.
É necessário utilizar o DS para não utilizar sintaxe específica de um banco, assim tanto faz se o report for para sqlServer ou Oracle
Os filtros sobre o Data-source não podem utilizar comandos da sintaxe específica do banco de dados, por isso é aconselhável utilizar de forma programática as queries com o stilmulsoft
Outros Exemplos:
Variável relatório | Exemplo do filtro no oracle | Comando no Stimulsoft,Nesta coluna não pode ser utilizado comando específicos de um sql (oracl/sqlServer) | Observação |
NumeroPedido : string | c.NumeroPedido = case when length ('{NumeroPedido}') > 0 then '{NumeroPedido}' else c.NumeroPedido end | NumeroPedido = {NumeroPedido == "" ? "NumeroPedido" : NumeroPedido} | Utilizar apenas quando o campo NumeroPedido da tabela nunca retornar Null, para este caso é necessário usar outro método |
Setor : string | coalesce(cs.nome,'-') like case when length ('{Setor}') > 0 then UPPER('%{Setor}%') else coalesce(cs.nome,'-') end | (Setor = {Setor == "" ? "Setor" : "'"+Setor+"'"} or Setor is {Setor == "" ? "null" : "not null"}) | Valida campo da tabela sendo vazio ou nulo |
Destinatario : string | (d.CNPJ like case when length ('{Destinatario}') > 0 then UPPER('%{Destinatario}%') else d.CNPJ end OR d.RazaoSocial like case when length ('{Destinatario}') > 0 then UPPER('%{Destinatario}%') else d.RazaoSocial end) | (CNPJDestinatario like '%{Destinatario}%' or Destinatario like '%{Destinatario}%') | |
DataInicio : string no formato dd/mm/aaaa | c.DataPedido >= case when length ('{DataInicio}') > 0 then TO_DATE('{DataInicio} 00:00:01', 'dd/mm/yyyy hh24:mi:ss') else c.DataPedido end | DataPedido >= {DataInicio == "" ? "DataPedido" : "'"+DataInicio | para o fim do periodo apenas inverter >= para <= |
Somentependentes : bool | b.nome = case when '{Somentependentes}'='true' then 'Aberta' else b.nome end | STATUSOCORRENCIA = {Somentependentes == true ? "'Aberta'" : "STATUSOCORRENCIA"} | a váriavel é apenas true / false, para casos de "três estados" para possibilitar ambas, precisa outro método |
A partir disso o trabalho é sobre o novo relatório, onde você precisará criar o arquivo e desenhar com base no relatório antigo, na sequência há a seção que descreve como criar o relatório.
🆕 Design de um novo relatório
Acesse o ambiente de testes no portal de relatórios
Conforme o Relatório/Documento que deseja criar clique na aba referente, e em Novo
Em propriedades selecione o “ReportTemplate” e preencha:
o Nome do Relatório: “relExemplo” que é a chave única do relatório;
Apelido do Relatório: é o título, que ficará visível na primeira linha do relatório;
Descrição do Relatório: uma descrição simples e objetiva referente o que é.
Como dito anteriormente adicione as variáveis,
Adicione o data-source com o filtro stimulsoft
Desenhe o relatório
no padrão há três páginas “Capa”, “Dados_retrato” e “Dados_paisagem”, analise o que mais se encaixa com o relatório a ser migrado em questão e remova as demais páginas, a capa a ideia seria apresentar os dados em gráficas ou algumas forma já processada, caso faça sentido.
Realize testes em pré-visualização
Opcional - Lembre de remover as configurações de ‘pedido de usuário’ das variáveis de teste, caso não estavam marcadas para isso.
Exportar Relatório, vai gerar um arquivo Json
Importar no projeto 'Relatorios' Ou “Documentos”
Commitar o relatório (e possíveis alterações em DS) na branch “dev/epic-445”
Por padrão com a mensagem no commit, ex: “Task-1234 - relArtigoDeExemplo“
💡 Solução de problemas ou auxílios no Design de relatórios
Tabela com cores intercaladas
Para fazer uma tabela com sombreamento, como por exemplo
Selecione a tabela desejada e clique em Condições
Adicione uma “Condição”
configure como “Expressão” no dropdown
Coloque na expressão “Line % 2 == 0” isso significa que a linha da tabela quando for “Par” será aplicada esta condição,
Configure como deve ser alterado, para o exemplo anterior, configurei apenas a cor de fundo.
Destaque informações importantes em um painel como este. Para editar a cor ou o estilo desse painel, selecione uma das opções no menu.