Relatórios PDF com PHP (CodeIgniter), Jasper Reports e Oracle (ou MySql ou PostgreSql) .
4. Integrando o iReport e o JasperServer
Depois de criar o relatório no iReport, salve-o em uma pasta de sua preferência.
Para acessar o repositório do JasperServer no iReport, vá no menu "Janela/JasperReports Server Repository", e, na janela que se abrirá, clique no botão "Add new server" para adicionar um novo servidor.
Na janela seguinte, digite um ID de sua preferência, adeque o "JasperReports Server URL" de acordo com a sua configuração e digite o login e senha do usuário administrativo que você criou. Pressione "Save" e o atalho para o servidor aparecerá na lista. Clique no "+" ao lado do atalho e você terá acesso ao repositório. A maioria das operações no JasperServer poderão ser feitas diretamente do iReport, sem a necessidade de acessá-lo pelo navegador.
De maneira análoga ao iReport, o JasperServer necessita de uma conexão (Datasource) para acessar o banco de dados, e, também como o iReport, não vem, por padrão, com o driver do Oracle, mas este pode ser instalado facilmente: coloque o arquivo baixado (ojdbc14.jar) em <pasta de instalação do JasperServer>\apache-tomcat\lib\ e reinicie o JasperServer (Vá em Painel de Controle\Ferramentas Administrativas\Serviços, procure pelo serviço "jasperreportsTomcat", clique com o botão direito nele e depois em reiniciar. É necessário logar no Windows com um usuário administrativo para realizar esta tarefa. No Linux, na pasta de instalação do JasperServer, como root ou com o sudo, execute o comando "./ctlscript.sh restart");
Após o reinício, clique com o botão direito sobre o atalho para o servidor e em "Refresh"; clique novamente com o botão direito e depois em "Add/Data Source"; digite o "ID" e o "Name", que poderá ser o mesmo;
na aba "Data Source Details", em "Datasource Type", selecione "JDBC"; clique no botão "Import from iReport" para importar a conexão que foi criada no tópico 2, a qual já foi testada;
ao final, clique em "Save" e a conexão estará criada.
Agora que já temos a conexão com o banco de dados, iremos transferir o relatório criado no iReport para o JasperServer. Clique com o botão direito no atalho para o JasperServer, em "Add" e depois em "Folder"; digite um ID e Name de sua preferência, que podem ser o mesmo, mas evite caracteres especiais ou acentuados (relatorios, por exemplo); depois, clique com o botão direito na pasta criada, em "Add" e depois em "JasperServer Report"; na janela seguinte, digite um ID e Name e clique em próximo; na página seguinte, escolha a opção "Locally Defined"; se o relatório estiver aberto no iReport, clique no botão "Get source from current opened report" para usar o arquivo aberto, e, caso o relatório não esteja aberto, clique no botão "Browse", selecione o arquivo que você criou e depois clique em "Próximo"; na outra tela, escolha a opção "From the repository", e selecione a conexão que foi criada; por último, clique em "Finalizar". Note que foi criada uma pasta com o nome que você forneceu, e que o relatório ficou com o nome "Main jrxml". Clique com o botão direito nele, depois em "Propriedades" e dê-lhe um nome mais sugestivo. Lembre-se de que, nesse caso, você só poderá alterar o nome, e não o ID do relatório.
Com o relatório no servidor, você poderá abri-lo (clique duplo), editá-lo e depois salvá-lo. Dica: ao abrir o relatório do JasperServer, ele será aberto em uma pasta temporária; depois de editá-lo e salvá-lo, você terá que clicar com o botão direito nele (no "Repository Navigator"), depois em "Replace with current document", para que as alterações tenham efeito no arquivo que está no servidor.
Depois de criar o relatório no iReport, salve-o em uma pasta de sua preferência.
Para acessar o repositório do JasperServer no iReport, vá no menu "Janela/JasperReports Server Repository", e, na janela que se abrirá, clique no botão "Add new server" para adicionar um novo servidor.
Na janela seguinte, digite um ID de sua preferência, adeque o "JasperReports Server URL" de acordo com a sua configuração e digite o login e senha do usuário administrativo que você criou. Pressione "Save" e o atalho para o servidor aparecerá na lista. Clique no "+" ao lado do atalho e você terá acesso ao repositório. A maioria das operações no JasperServer poderão ser feitas diretamente do iReport, sem a necessidade de acessá-lo pelo navegador.
De maneira análoga ao iReport, o JasperServer necessita de uma conexão (Datasource) para acessar o banco de dados, e, também como o iReport, não vem, por padrão, com o driver do Oracle, mas este pode ser instalado facilmente: coloque o arquivo baixado (ojdbc14.jar) em <pasta de instalação do JasperServer>\apache-tomcat\lib\ e reinicie o JasperServer (Vá em Painel de Controle\Ferramentas Administrativas\Serviços, procure pelo serviço "jasperreportsTomcat", clique com o botão direito nele e depois em reiniciar. É necessário logar no Windows com um usuário administrativo para realizar esta tarefa. No Linux, na pasta de instalação do JasperServer, como root ou com o sudo, execute o comando "./ctlscript.sh restart");
Após o reinício, clique com o botão direito sobre o atalho para o servidor e em "Refresh"; clique novamente com o botão direito e depois em "Add/Data Source"; digite o "ID" e o "Name", que poderá ser o mesmo;
na aba "Data Source Details", em "Datasource Type", selecione "JDBC"; clique no botão "Import from iReport" para importar a conexão que foi criada no tópico 2, a qual já foi testada;
ao final, clique em "Save" e a conexão estará criada.
Agora que já temos a conexão com o banco de dados, iremos transferir o relatório criado no iReport para o JasperServer. Clique com o botão direito no atalho para o JasperServer, em "Add" e depois em "Folder"; digite um ID e Name de sua preferência, que podem ser o mesmo, mas evite caracteres especiais ou acentuados (relatorios, por exemplo); depois, clique com o botão direito na pasta criada, em "Add" e depois em "JasperServer Report"; na janela seguinte, digite um ID e Name e clique em próximo; na página seguinte, escolha a opção "Locally Defined"; se o relatório estiver aberto no iReport, clique no botão "Get source from current opened report" para usar o arquivo aberto, e, caso o relatório não esteja aberto, clique no botão "Browse", selecione o arquivo que você criou e depois clique em "Próximo"; na outra tela, escolha a opção "From the repository", e selecione a conexão que foi criada; por último, clique em "Finalizar". Note que foi criada uma pasta com o nome que você forneceu, e que o relatório ficou com o nome "Main jrxml". Clique com o botão direito nele, depois em "Propriedades" e dê-lhe um nome mais sugestivo. Lembre-se de que, nesse caso, você só poderá alterar o nome, e não o ID do relatório.
Com o relatório no servidor, você poderá abri-lo (clique duplo), editá-lo e depois salvá-lo. Dica: ao abrir o relatório do JasperServer, ele será aberto em uma pasta temporária; depois de editá-lo e salvá-lo, você terá que clicar com o botão direito nele (no "Repository Navigator"), depois em "Replace with current document", para que as alterações tenham efeito no arquivo que está no servidor.
Fiz um relatório no ireport 5 conseguir escrever um número por extenso (ex: 2,30) -Dois reais e trinta centavos. Tudo ok!
Mas, quando abro através de um link via php usando a classe phpjasper o relatório não abre. Sei que é problema no campo que escreve por extenso. Como resolver.
Sei que a classe phpjasper tem um monte de problemas. Conseguir contornar alguns. Mas, a escrita por extenso essa eu peço ajuda e desde já agradeço!
Mas, quando abro através de um link via php usando a classe phpjasper o relatório não abre. Sei que é problema no campo que escreve por extenso. Como resolver.
Sei que a classe phpjasper tem um monte de problemas. Conseguir contornar alguns. Mas, a escrita por extenso essa eu peço ajuda e desde já agradeço!
29/10/2014 10:09am
(~10 anos atrás)
Antonio,
Você está usando Oracle? Qual o charset? (as casas decimais estão separadas com ponto ou com vírgula?)
Que tipo de dado há nesse campo, no banco de dados?
Você está usando Oracle? Qual o charset? (as casas decimais estão separadas com ponto ou com vírgula?)
Que tipo de dado há nesse campo, no banco de dados?
25/06/2014 9:22pm
(~10 anos atrás)
Os campos de valores (double) de meu relatório saem no formato "americano" , ex.: 1,234.56 e não 1.234,56, apesar de eu configurar corretamente a propriedade "Pattern" do referido campo: #,##0.00
O que pode ser?
O que pode ser?
24/06/2014 10:19pm
(~10 anos atrás)
Parabéns Osmando...essa solução mostra a versatilidade de ser trabalhar com o PHP. Claro que existem diversas soluções possíveis, mas trabalhar com o iReport nos dá a confiabilidade de uma ferramenta gráfica já consagrada, com a flexibilidade do PHP.
Um abraço
Um abraço
02/09/2013 9:17am
(~11 anos atrás)
Você está passando este número por extenso como parâmetro para o jasper server? Caso positivo, tente usar a função do PHP utf8_encode ($parametros = array("PARAMETRO1" => utf8_encode($variavel)), por exemplo).
Se não resolver, informe mais detalhes sobre o seu problema, para que eu possa tentar resolvê-lo.
Sim, a clase phpjasper tem alguns bugs, mas, como ela atendeu às minhas necessidades, não me empenhei em tentar resolvê-los.
Osmando.