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!
Table of Contents | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
|
...
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
...
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
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”
💡 Solução de problemas ou auxílios no Design de relatórios
...