Skip to content

Instantly share code, notes, and snippets.

@carolinesalib
Last active August 16, 2018 23:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save carolinesalib/6ddb7fa2d1e51b9371deedc929a0d163 to your computer and use it in GitHub Desktop.
Save carolinesalib/6ddb7fa2d1e51b9371deedc929a0d163 to your computer and use it in GitHub Desktop.
Como criar novo relatório no i-Educar

Primeiro de tudo criar uma migração para inserir o novo menu no i-educar, geralmente eu olho os outros menus existentes pra ter uma base de quais valores colocar nos inserts, mas um exemplo seria assim:

no terminal:

php ieducar/vendor/bin/phinx create AddMenuRelatorioExemplo

execute esta query no banco para pegar o proximo id de relatorio

select max(cod_menu_submenu)+1 from portal.menu_submenu

editar o codigo da migração para ficar assim:

<?php

use Phinx\Migration\AbstractMigration;

class AddMenuRelatorioExemplo extends AbstractMigration
{
    public function change()
    {
        $this->execute("INSERT INTO portal.menu_submenu VALUES (9998880, 25, 2,'Relatorio de exemplo', 'module/Reports/RelatorioExemplo', null, 3);");

        $this->execute("INSERT INTO pmicontrolesis.menu VALUES (9998880, 9998880, 21126, 'Relatorio de exemplo', 0, 'module/Reports/RelatorioExemplo', '_self', 1, 15);");

        $this->execute("INSERT INTO pmieducar.menu_tipo_usuario VALUES (1,9998880,1,1,1);");
    }
}

O numero 9998880 é o id do proximo relatorio pego na query, o numero 21126 é o codigo do menu, neste caso de relatorios, e o caminho é o caminho que o formulario do relatorio vai estar no codigo.

no terminal:

php ieducar/vendor/bin/phinx migrate -e development

Agora que o menu já foi inserido, deve ser criado os arquivos correpondente ao relatorio.

Caminho: ieducar/modules/Reports/Views/RelatorioExemploController.php

<?php

require_once "lib/Portabilis/Controller/ReportCoreController.php";
require_once "Reports/Reports/RelatorioExemploReport.php";

class RelatorioExemploController extends Portabilis_Controller_ReportCoreController
{

  protected $_titulo = 'RelatorioExemplo';

  protected function _preRender(){

    parent::_preRender();

    Portabilis_View_Helper_Application::loadStylesheet($this, 'intranet/styles/localizacaoSistema.css');

    $localizacao = new LocalizacaoSistema();

    $localizacao->entradaCaminhos( array(
         $_SERVER['SERVER_NAME']."/intranet" => "In&iacute;cio",
         "educar_index.php"                  => "i-Educar - Escola",
         ""                                  => "RelatorioExemplo"
    ));
    $this->enviaLocalizacao($localizacao->montar());
  }

	function form() {
    $this->inputsHelper()->dynamic(array('ano', 'instituicao', 'escola', 'curso', 'serie'));
    $this->campoTexto('aluno','Aluno','',40,255,true);
  }

	function report() {
	  return new RelatorioExemploReport();
	}

  function beforeValidation() {
    $this->report->addArg('ano',          (int)$this->getRequest()->ano);
    $this->report->addArg('instituicao',  (int)$this->getRequest()->ref_cod_instituicao);
    $this->report->addArg('escola',       (int)$this->getRequest()->ref_cod_escola);
    $this->report->addArg('curso',        (int)$this->getRequest()->ref_cod_curso);
    $this->report->addArg('serie',        (int)$this->getRequest()->ref_cod_serie);
    $this->report->addArg('aluno',        $this->getRequest()->aluno);
  }
}

?>

O segundo arquivo: ieducar/modules/Reports/Reports/RelatorioExemploReport.php

<?php

require_once "lib/Portabilis/Report/ReportCore.php";
require_once "App/Model/IedFinder.php";

class RelatorioExemploReport extends Portabilis_Report_ReportCore
{

  function templateName() {
    return 'nome_arquivo_jasper_relatorio_exemplo';
  }

	function requiredArgs() {
    $this->addRequiredArg('ano');
    $this->addRequiredArg('instituicao');
    $this->addRequiredArg('escola');
    $this->addRequiredArg('matricula');

	}
}

?>

Agora no ireport 4.7, criar um arquivo com onome nome_arquivo_jasper_relatorio_exemplo e salvar na pasta ReportSources/Portabilis, tanto o jasper quanto o jrxml.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment