Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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


(warning) Artigo em construção!(warning)

Table of Contents
minLevel1
maxLevel6
outlinefalse
stylenone
typelist
printablefalse

...

  1. Primeiro verifique como esta o relatório na plataforma antiga

    image-20240409-151928.png

    image-20240409-151950.png

  2. Abra Dicionário > Variáveis você deverá replicar essas variáveis para a nova versão.

    image-20240409-152048.png

  3. 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.

    image-20240521-120132.pngImage Added

    É 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

  4. 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

    image-20240521-122029.pngImage Added

    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

  1. 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

  1. Acesse o ambiente de testes no portal de relatórios

    1. http://forlog-teste.viasoftcloud.com.br:16000/login

  2. Conforme o Relatório/Documento que deseja criar clique na aba referente, e em Novo

...

  1. Em propriedades selecione o “ReportTemplate” e preencha:

    1. o Nome do Relatório: “relExemplo” que é a chave única do relatório;

    2. Apelido do Relatório: é o título, que ficará visível na primeira linha do relatório;

    3. Descrição do Relatório: uma descrição simples e objetiva referente o que é.

      image-20240409-195900.pngImage Added

  2. Como dito anteriormente adicione as variáveis,

  3. Adicione o data-source com o filtro stimulsoft

  4. Desenhe o relatório

    1. 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.

  5. Realize testes em pré-visualização

  6. Opcional - Lembre de remover as configurações de ‘pedido de usuário’ das variáveis de teste, caso não estavam marcadas para isso.

  7. Exportar Relatório, vai gerar um arquivo Json

  8. Importar no projeto 'Relatorios' Ou “Documentos”

    image-20240521-122559.pngImage Added

  9. Commitar o relatório (e possíveis alterações em DS) na branch “dev/epic-445

    1. Por padrão com a mensagem no commit, ex: “Task-1234 - relArtigoDeExemplo“


Utilizando variável de banco

Por padrão o sistema vai inserir a variável ‘bd’ que refere-se ao banco de dados principal em uso, no caso o conteúdo dessa variável será ‘ORACLE’ ou ‘SQL’ e será atualizado com o valor de forma automática, sem nenhuma ação do usuário ou do dev.

...

Caso seja necessário em seu relatório diferenciar as queries, ao criar um relatório, é possível criar expressões:

...

No caso, está organizado em uma pasta, que não interfere em nada, apenas para ficar mais organizado.
Cada uma dessas expressões deve ser configurada da seguinte forma:

...

Deve ser marcado “Somente Leitura” e “Permite utilizando como parâmetro de SQL” isso se DEVE para que o Stimulsoft entenda que deve executar essa expressão e utilizar seu resultado para então ser executado a query de banco que veremos mais a frente.
Dentro do campo de expressão estará a query, lembrando que neste ponto o sistema entende como uma expressão, portanto, a query DEVE estar entre “ “ e pode ser feito concatenação com o filtro.

...

Após criar as duas queries (Oracle e Sql) deve ser editado a fonte de dados, utilizando a variável bd para definir qual query deve ser aplicada.

...

Pronto, agora você tem um relatório que funciona para ambos os bancos!

Este relatório de exemplo está disponível no ambiente de testes para auxílio, o nome do relatório é: exemploVariavelBD.

💡 Solução de problemas ou auxílios no Design de relatórios

...

  1. Adicione uma “Condição”

    1. configure como “Expressão” no dropdown

    2. Coloque na expressão “Line % 2 == 0” isso significa que a linha da tabela quando for “Par” será aplicada esta condição,

    3. Configure como deve ser alterado, para o exemplo anterior, configurei apenas a cor de fundo.

      image-20240409-194732.png

Configurar relatório para Operador informar filtros antes de realizar a busca

Para evitar que o sistema dispare um filtro muito grande, é possível configurar para que ao abrir o relatório o sistema não dispare a geração do relatório de forma automática, esperando o operador informar os filtros antes.

...

Info

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.

...