{"id":15024028,"url":"https://github.com/suspecie/relatorio-php","last_synced_at":"2026-03-17T13:02:20.409Z","repository":{"id":120188531,"uuid":"62744326","full_name":"suspecie/relatorio-php","owner":"suspecie","description":"Projeto para estudar relatórios em php","archived":false,"fork":false,"pushed_at":"2016-07-18T15:56:39.000Z","size":16462,"stargazers_count":8,"open_issues_count":1,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-09T20:02:00.467Z","etag":null,"topics":["ireport","php","php56","phpjasperxml"],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/suspecie.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-07-06T18:30:54.000Z","updated_at":"2025-03-11T17:02:06.000Z","dependencies_parsed_at":null,"dependency_job_id":"d9087915-e7bd-419d-ba04-d05f321c0507","html_url":"https://github.com/suspecie/relatorio-php","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/suspecie%2Frelatorio-php","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/suspecie%2Frelatorio-php/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/suspecie%2Frelatorio-php/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/suspecie%2Frelatorio-php/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/suspecie","download_url":"https://codeload.github.com/suspecie/relatorio-php/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248103864,"owners_count":21048245,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ireport","php","php56","phpjasperxml"],"created_at":"2024-09-24T19:59:43.372Z","updated_at":"2026-03-17T13:02:20.332Z","avatar_url":"https://github.com/suspecie.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# relatorio-php\nProjeto para estudar relatórios em php\n\n\n# RESUMÃO SOBRE iREPORT e PHPJASPERXML\n\n    O iReport é um desenhador de layouts para JasperReports.\n    Além de ser muito intuitivo e de fácil uso, é útil em praticamente\n    todas as necessidades na confecção de um relatório. Traz diversas\n    opções como uso de código de barras, sub-relatórios e etc. O\n    iReport permite que os relatórios sejam gerados em XML, PDF, HTML,\n    DOCX, ODT, dentre outros formatos.  \n    Ao inserir as informações de conexão com o banco de dados (o iReport\n    traz diversas opções como JDBC, Conexão com Hibernate, XML e etc) \n    é gerado um arquivo de extensão jrxml. \n    Ao ser compilado, um arquivo de extensão jasper também é gerado \n    (arquivo executável do relatório). Faz analogia à linguagem Java, \n    que tem o código residente nos arquivos de extensão JAVA \n    (no caso do iReport, extensão jrxml). Depois de compilados são gerados\n    arquivos de extensão CLASS (no iReport, jasper).\n    \n    O PHPJasperXML possibilita a leitura de arquivos jrxml, feitos\n    utilizando o iReport, para transformá-los em relatórios no formato\n    PDF, com o auxílio da classe TCPDF. É escrito em PHP e muito fácil\n    de ser configurado. É também uma solução alternativa ao PHP/Java Bridge.\n    Para seu uso é necessário basicamente editar o arquivo setting.php, que\n    contém as variáveis indicativas da conexão com banco de dados.\n    O arquivo PHPJasperXML.inc.php contém a classe PHPJasperXML, que faz todo\n    o “trabalho pesado” de conectar com o banco de dados (vem\n    configurada para MySQL), ler o conteúdo arquivo jrxml e junto com a\n    classe tcpdf, gerar o relatório em PDF.\n\n    \n\n\n# ENTENDENDO O QUE FOI USADO NO PROJETO\n\nDistro utilizada: Debian 8\n\n1- Instalação do iReport Designer:\n\n    a) Acessar o link http://community.jaspersoft.com/project/ireport-designer/releases \n    b) Baixar o arquivo iReport-5.6.0.tar.gz\n    c) Deverá ter conta no jasper community para poder fazer o download. \n    d) Descompactar o arquivo: # tar -xvf iReport-5.6.0.tar.gz\n    e) Mover a pasta para opt: # mv iReport-5.6.0 /opt\n    f) Tentar executar o programa: sh /opt/iReport-5.6.0/bin/ireport\n    g) Caso não funcione e mostre o erro:\n       \"Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=512m; support was removed in 8.0\"\n        \n    h) Acesse o link para baixar a jdk7 http://www.oracle.com/technetwork/pt/java/javase/downloads/jdk7-downloads-1880260.html \n    i) Descompacte o arquivo: # tar -xvf jdk-7u79-linux-x64.tar.gz\n    j) Mova para: # mv jdk1.7.0_79/ /opt/\n    k) Acessar a pasta iReport-5.6.0/etc  dentro de opt\n    l) Alterar o arquivo ireport.conf: nano ireport.conf\n    m) Alterar a variável para: jdkhome=\"/opt/jdk1.7.0_79\" (ctrl + o para salvar enter e ctrl x para fechar ; não esquecer de tirar o comentário do parametro (#jdkhome))\n    n) Execute novamente o programa: sh /opt/iReport-5.6.0/bin/ireport\n    \n    - Para colocar ícone do iReport no Debian: \n        a) Clicar com o botão direito no menu \u003e \"Editar Aplicativos\" \n        b) Escolher uma arvore onde você quer colocar\n        c) Clicar em \"Novo Item\"\n        d) Dar um nome, colocar o comando sh /opt/iReport-5.6.0/bin/ireport e um ícone \u003e Salvar\n\n\n2- Colocando o PHPJasperXML (Já esta no projeto, é somente para ensinar)\n    \n    a) Acessar o link http://www.simitgroup.com/?q=PHPJasperXML\n    b) Criar uma pasta chamada PHPJasperXML e entrar nela: cd PHPJasperXML\n    c) Descompactar o arquivo: ../ unzip phpjasperxml_0.9d.zip\n\n\n\n3- Criar banco de dados \n\n    a) Fazer git clone do projeto \n    b) Rodar o script: banco/db_relatorio_php.sql\n\n\n4- Criando o Report no iReport (Já esta no projeto, é somente para ensinar)\n\n    a) Abrir iReport\n    b) No menu Arquivo \u003e Clicar em New \u003e Escolher a Sessão Report \u003e Escolher o modelo Blank A4 \u003e Clicar no botão \"Open This Template\"\n    \n![alt text](docs/images/novo_relatorio.png \"Novo Relatorio\")\n\n    c) No campo \"Report Name\" colocar um nome para o seu relatório\n    d) No campo \"Location\" selecionar um caminho para o arquivo \u003e Clique em Próximo \u003e Clique em Finalizar\n\n![alt text](docs/images/novo_relatorio2.png \"Novo Relatorio\")\n![alt text](docs/images/novo_relatorio3.png \"Novo Relatorio\")\n\n    e) Clicar no ícone Report Datasources para criar uma nova conexão com o banco de dados\n\n![alt text](docs/images/nova_conexao_db.png \"Nova Conexão DB\")\n\n    f) Na nova janela que irá aparecer clicar em New\n    g) Em seguida escolher a opção \"Database JDBC connection\" \u003e Clicar no botão Next \n\n![alt text](docs/images/nova_conexao_db2.png \"Nova Conexão DB\")\n![alt text](docs/images/nova_conexao_db3.png \"Nova Conexão DB\")\n\n    h) No campo nome colocar um nome para a conexão (é somente um nome para identificar a conexão no iReport) \u003e No campo JDBC Driver escolher o drive, no meu caso utilizei o MySQL (com.mysql.jdbc.Driver) \u003e No campo JDBC URL colocar o url da conexao com o banco.\n        \n    - Exemplo: jdbc:mysql://localhost/db_relatorio_php\n                    Endereço da maquina onde o banco de encontra. Ex: 192.168.0.1;\n                    Porta de conexão do banco; Default 1521;\n                    A instancia do banco. Ex: oradata;\n\n    i) No campo \"Username\" colocar nome do usuário do banco e no campo \"Password\" colocar senha do banco \u003e Clicar no botão \"Test\" para testar conexão \u003e Clicar no botão Save\n\n![alt text](docs/images/nova_conexao_db4.png \"Nova Conexão DB\")\n\n    j) Selecionar a conexão que foi criada.\n\n![alt text](docs/images/nova_conexao_db5.png \"Nova Conexão DB\")\n\n    k) Para poder visualizar o relatório no próprio iReport no menu Preview \u003e Selecionar a opção PDF Preview\n\n![alt text](docs/images/preview_pdf.png \"PDF Preview\")\n\n    l) Clicar no icone de DB do relatório para adicionar a query\n\n![alt text](docs/images/query.png \"Query\")\n\n    m) Na aba \"Report\" colocar a query: SELECT * FROM usuarios;\n    n) Clicar em Save query\n\n![alt text](docs/images/query2.png \"Query\")\n\n \n    o) No panel \"Report Inspector\" \u003e Clicar em fields para ver se as colunas do select estão lá.\n\n![alt text](docs/images/fields.png \"Fields\")\n\n    p) No panel \"Report Inspection\" \u003e Clique com o botão direito em Parameters \u003e Clicar em Adicionar Parameter\n\n![alt text](docs/images/parameters.png \"Parameters\")\n\n    q) Será criado um parameter com nome parameter1, poré é necessário alterar o nome. \n    r) Clique com o botão direito em cima do parametro criado \u003e Em seguida clique em renomear e de um novo nome para o parametro\n\n![alt text](docs/images/parameters1.png \"Parameters\")\n\n    s) Clique em cada field ou parametro e arraste-os para a área de designer\n    t) Posicione os fields em Detail\n    u) Posicione os parametros em Column Header\n\n![alt text](docs/images/designer.png \"Designer\")\n\n    v) Na área de designer clique em cada field e no painel Propriedades clique em \"Text Field Expression\"\n\n![alt text](docs/images/propriedades.png \"Propriedades\")\n\n    w) Na tela \"Text Field Expression\" selecionar na primeira coluna a opção Fields e na segunda coluna selecionar a coluna do banco que pertence aquele field \u003e Clicar em OK\n\n\n![alt text](docs/images/propriedades2.png \"Propriedades\")\n\n    x) Na área de designer clique em cada parametro e no painel Propriedades clique em \"Text Field Expression\"\n\n![alt text](docs/images/propriedades3.png \"Propriedades\")\n\n    y) Na tela \"Text Field Expression\" selecionar na primeira coluna a opção Parameters e na segunda coluna selecionar o parametro a que pertence aquele parametro \u003e Clicar em OK\n\n![alt text](docs/images/propriedades4.png \"Propriedades\")\n\n    z)Obs: Nas propriedades \"Text Field Expression\" quando são fields do banco, eles tem que ficar na cor verde, pois significa que não esta com erro. Os parametros continuam vermelhos mesmo estando certos.\n    aa) Para verificar se o seu relatório esta mostrando os dados correatamente clique na aba Preview para visualizar a prévia do PDF.\n    ab) Caso não mostre o Preview signifca que o relatório esta com erro e precisa corrigir.\n\n![alt text](docs/images/preview_pdf2.png \"Preview PDF\")\n\n\n5- Preparando o projeto (Somente para ensinar)\n\n    a) Criar uma pasta para o projeto e colocá-la em html. Ex.: relatorio-php\n    b) Criar uma pasta PHPJasperXML. Ex.: relatorio-php/PHPJasperXML\n    c) Criar uma pasta banco. Ex.: relatorio-php/banco\n    d) Criar uma pasta relatorio. Ex.: relatorio-php/relatorio\n    e) Criar um arquivo php que irá instanciar a classe PHPJasperXML. Ex.: exemplorelatorio.php\n    f) Criar um arquivo index que poderá receber os dados e após o submit enviar para o exemplorelatorio.php. Ex: index.php\n    g) Dentro da pasta PHPJasperXML coloque a pasta class e o arquivo setting.php do PHPJasperXML, que foi baixado no passo \"2\".\n    h) Dentro da pasta banco coloque o script que será utilizado para criação do banco de dados, somente para organização.\n    i) Somente por organização, coloque também dentro da pasta banco a query que foi salva no iReport, no passo \"4- i)\"\n    j) Dentro da pasta relatorio salve o arquivo .jrxml criado pelo iReport.\n    k) Altere o arquivo relatorio-php/PHPJasperXML/setting.php informando a conexão com o banco de dados. Ver exemplo: relatorio-php/PHPJasperXML/setting.php\n    l) Altere o arquivo index para criar um formulario que passa as informações por get ou post. Ver exemplo: relatorio-php/index.php\n    m) Altere o arquivo exemplorelatorio.php para instanciar a classe PHPJasperXML e passar as informações para a geração do PDF. Ver exemplo: relatorio-php/exemplorelatorio.php\n    o) Acessar no navegador o endereco http://localhost/relatorio-php/\n    p) Preencha as informações e clique em ENVIAR, o PDF deverá ser mostrado\n\n\n![alt text](docs/images/estruturaprojeto.png \"Projeto\")\n\n![alt text](docs/images/visaoireport.png \"Projeto no iReport\")\n\n![alt text](docs/images/visaoireport2.png \"Projeto no iReport\")\n\n![alt text](docs/images/testeproj.png \"Projeto\")\n\n![alt text](docs/images/testeproj2.png \"Projeto\")\n\n![alt text](docs/images/testeproj3.png \"Projeto\")\n\n![alt text](docs/images/testeproj4.png \"Projeto\")\n\n\n\n# DICAS SOBRE BANDAS DO IREPORT\n\n\n    1) Title: o que é colocado dentro desta band, só aparece na primeira página de um relatório, ou seja, é o titulo do relatório.\n    2) Page Header: é o cabeçalho do relatório, tudo o que fica nesta band, se repete no inicio de cada página.\n    3) Column Header: geralmente é utilizada para definir quais são as colunas do nosso relatório.\n    4) Column Footer: utilizada para mostrar o final da listagem da band detail 1.\n    5) Page Footer: é o rodapé da página, tudo o que é definido nesta band se repete como rodapé por todas as páginas.\n    6) Summary: geralmente esta band é usada para mostrar cálculos de relatórios que tenham valores numéricos, por exemplo mostrar um total geral. Em um relatório ela é mostrada logo após que acaba a listagem do Detail 1.\n    7) Detail 1: é nela que os dados são listados, como se essa band fizesse um laço de repetição, e os dados fossem listados.\n\n\n# INSTALANDO O PROJETO DO GIT\n\n    1) Fazer git clone \n    2) Rodar script  banco/db_relatorio_php.sql\n    3) Dar permissão: # chmod 777 relatorio-php/ -R\n    4) Acessar o link: http://localhost/relatorio-php/\n    5) Preencher os campos \n    6) Clicar no botão Enviar\n    7) Pronto! :) você deverá ver o PDF\n\n\n\n# FONTES UTILIZADAS NO PROJETO\n\n    http://imasters.com.br/artigo/15736/php/usando-o-ireport-como-gerador-de-relatorios-para-php/?trace=1519021197\u0026source=single\n    https://www.vivaolinux.com.br/dica/Relatorios-do-iReport-no-PHP-com-PHPJasperXML\n    http://chathurangat.blogspot.com.br/2012/03/jasperreports-with-php.html\n    http://blog.ibusplus.com/2013/06/instalacion-de-ireport-en-linux-la.html\n    http://javafree.uol.com.br/artigo/3154/Tutorial-de-IREPORT.html\n    http://www.fpdf.org/\n    http://community.jaspersoft.com/project/ireport-designer/releases \n    http://www.oracle.com/technetwork/pt/java/javase/downloads/jdk7-downloads-1880260.html\n    http://www.simitgroup.com/?q=PHPJasperXML\n    http://javasemcafe.blogspot.com.br/2011/05/jasperreports-401-conhecendo-o-ireport.html","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsuspecie%2Frelatorio-php","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsuspecie%2Frelatorio-php","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsuspecie%2Frelatorio-php/lists"}