Parametros e Imagem no JASPER - APEX

Dicas e truques sobre Oracle Reports Builder - modo gráfico ou modo caractere, ascii, arquivo .PRT, etc
Responder
carlynhos77
Rank: Analista Sênior
Rank: Analista Sênior
Mensagens: 172
Registrado em: Seg, 24 Out 2016 7:20 pm

Ola, boa noite... estou criando alguns relatórios no JASPER REPORTS, e estou inicialmente com dois problemas, minha aplicação está em nuvem, por isso crio o relatório, subo o arquivo .jasper para meu repositório, para minha aplicação APEX fazer a chamada do relatorio...

MEU RELATORIO
Criei uma query ( select sequencial, nome, ... from MINHA_TABELA where sequencial = '1' ), após isso, organizei os campos no relatório, fiz os testes, filtrei o registro nr 1, deu tudo certo, conforme o esperado...

Compilei e subi o arquivo .jasper para meu repositório.


MINHA APLICAÇÃO APEX
Estou utilizando o apex 19.2, criei uma pagina, num botão eu add o seguinte código para chamar o relatório:

Selecionar tudo

var report_server = "http://jasper.maxapex.net:8090/JasperReportsIntegration/report?_repName=INFO-ADMINISTRATIVO/rel2&_repFormat=html&_dataSource=INFO-ADMINISTRATIVO_1394"

var report_name = "rel2";
var report_format = "pdf";
var data_source = "default";
    
var run_report = ""+report_server+"&_repName="+report_name+"&_repFormat="+report_format+"&_dataSource="+data_source+"";

window.open(run_report);
O código acima, está chamando o relatório, sem o filtro...

No momento que eu compilei o relatório eu precisei tirar o WHERE, senão iria ficar travado no CODIGO = 1, conforme meu teste.

Minha dúvida é: como eu insiro o WHERE na minha select, no relatório, e no codigo acima, preciso passar o parametro para o select do relatorio??

achei um exemplo, como entre parenteses ( SEQUENCIAL = $P{CODIGO} ), queria uma ajuda de como fazer isso, tanto no relatório e la no apex, na chamada passar o parametro...


No mesmo relatório, eu preciso inserir uma imagem que esta salva no cadastro, como BLOB... sempre que eu informo o campo blob no SELECT do relatório, dá uma mensagem de erro, assisti alguns videos sobre inserir imagem "blob" no jasper, porém, não aparece o mesmo caminho e não consigo visualizar a imagem no relatório, alguém tem uma dica??

Poderia ter duas saída, eu utilizar essa imagem salva no banco de dados, ou eu usar a imagem estatica, pois subi ela pro meu repositorio... qualquer uma, serve pra mim

agradeço
carlynhos77
Rank: Analista Sênior
Rank: Analista Sênior
Mensagens: 172
Registrado em: Seg, 24 Out 2016 7:20 pm

so mais um detalhe, a imagem que preciso apresentar no relatório, caso a dica for estatico, a imagem esta no mesmo local que o relatorio .jasper.
carlynhos77
Rank: Analista Sênior
Rank: Analista Sênior
Mensagens: 172
Registrado em: Seg, 24 Out 2016 7:20 pm

Ola, bom dia...

As dúvidas sobre a passagem de parâmetro e o chamado do relatório, foram resolvidos... resta somente o problema em carregar a imagem

Vou postar a solução para o relatório, parâmetro e chamada

No select do meu relatório jasper, eu criei um PARÂMETRO, com a descrição CODIGO, tipo string

Selecionar tudo

[color=#0000FF][b] select sequencial, nome, ... from MINHA_TABELA where sequencial = $P{CODIGO} [/b][/color]
Feito isso ele está pronto para receber o critério que APEX irá passar, para filtrar dados determinados

Na minha aplicação apex, eu criei um processamento, ativado ao submeter a pagina (pode ter outra forma a não ser submeter), após submeter a pagina, é passado o parâmetro do filtro e um PDF é baixado

Selecionar tudo

[color=#FF0040][b]begin
  xlib_jasperreports.set_report_url('http://jasper.maxapex.net:8090/JasperReportsIntegration/report');
  xlib_jasperreports.show_report (p_rep_name => 'INFO-ADMINISTRATIVO/holerite/rel2',
                                  p_rep_format => 'pdf',
                                  p_data_source => 'INFO-ADMINISTRATIVO_1394',
                                  p_out_filename => 'Holerite.pdf',
                                  p_rep_locale => 'en-BR',
                                  p_additional_params => 'CODIGO=' || apex_util.url_encode(:p18_COD_FUNCIONARIO));
                              
  -- stop rendering of the current APEX page 
  apex_application.g_unrecoverable_error := true;
end;[/b][/color]
Percebe que no parâmentro adicional eu menciono 'CODIGO', é o campo/parâmentro que eu criei la no relatório, dai passo o critério para ele

Aproveitando, vou passar uns links que trata sobre essa configuração e sobre sub-relatório

http://oracle-apex-book.blogspot.com/20 ... ts-in.html
https://clients.maxapex.com/index.php?r ... asics.html (utilizei essa)
https://community.jaspersoft.com/wiki/subreports

Espero que isso ajude alguém

Agora é tentar desvendar essa questão da imagem
carlynhos77
Rank: Analista Sênior
Rank: Analista Sênior
Mensagens: 172
Registrado em: Seg, 24 Out 2016 7:20 pm

Voltando para informar que achei o caminho para exibir a imagem, gravada no banco dedados, no relatório jasper...

No meu select do jasper

Selecionar tudo

select sequencial, nome, LOGO_EMPRESA ... from MINHA_TABELA where sequencial = $P{CODIGO}
No dataset query, eu alterei a CLASS TYPE, de JAVA.LONG.STRING para JAVA.AWT.IMAGE (no meu caso, precisei instalar o pacote JAVA.AWT.IMAGEM, opção de instalar o pacote esta nesta mesma tela/linha)

Depois, na estrutura do relatorio, eu adicionei um ELEMENTO IMAGEM, e ajustei na EXPRESSÃO, colocando a referencia do meu campo, que no caso é:

Selecionar tudo

$F{LOGO_EMPRESA}
... salvei, rodei e 100%

So para constar, estou criando um HOLERITE, com logo da empresa, 2 sub-reports (lado esquerdo VENCIMENTOS, lado direito DESCONTOS) e totalizações.

Unidos, temos mais força!
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 14 visitantes