Jump to content
Remazela

PHP + CodeIgniter - Não Gera Relatório no Google Chrome

Recommended Posts

Caros amantes da informática.

 

Saudações

 

Amigos, primeiramente peço desculpa por recorrer ao auxílio dos amigos. Estou estudando CodeIgniter e já me deparei com um problema que não entendo.

 

Quando gero relatório no Chrome aparece um erro: FALHA AO TENTAR CARREGAR O DOCUMENTO.

Obs.: no Mozila não dá esse erro e o Relatório é gerado.

 

Instalei no mPdf na seguinte pasta: application/helpers/mpdf  <-não sei se o caminho seria o correto.

 

Caso alguém possa me indicar algum vídeo ou tutorial para entender melhor, ficarei muito grato.

 

Os Código estão assim:

mpdf_helper.php

<?php

    if (!defined('BASEPATH')) { exit('No direct script access allowed'); }

    function pdf_create($html, $filename, $stream = TRUE, $landscape = FALSE) {
       
        require_once(APPPATH) . 'helpers/mpdf/mpdf.php';

        if($landscape){
            $mpdf = new mPDF('c', 'A4-L');
        }else{
            $mpdf = new mPDF('c', 'A4');
        }

        $mpdf->WriteHTML($html);

        if ($stream) {
            $mpdf->Output($filename . '.pdf', 'I');
        } else {
            $mpdf->Output('./uploads/temp/' . $filename . '.pdf', 'F');

            return './uploads/temp/' . $filename . '.pdf';
        }


    }

?>

 

no controller está assim:

<?php if (!defined('BASEPATH')) { exit('No direct script access allowed'); }

class Relatorios extends CI_Controller{

    public function __construct(){
        parent::__construct();
        if ((!session_id()) || (!$this->session->userdata('logado'))) {
            redirect('siscota/login');
        }
        
        $this->load->model('Relatorios_model', '', true);
        $this->load->model('Usuarios_model', '', true);
        $this->load->model('Mapos_model', '', true);
        $this->data['menuRelatorios'] = 'Relatórios';

    }
    
    public function index()
    {
        header('Location: ./');
    } 

    public function clientes()
    {

        if (!$this->permission->checkPermission($this->session->userdata('permissao'), 'rCliente')) {
            $this->session->set_flashdata('error', 'Você não tem permissão para gerar relatórios de clientes.');
            redirect(base_url());
        }
        $this->data['view'] = 'relatorios/rel_clientes';
        $this->load->view('layout/topo', $this->data);
    }

    public function clientesCustom()
    {
        if (!$this->permission->checkPermission($this->session->userdata('permissao'), 'rCliente')) {
            $this->session->set_flashdata('error', 'Você não tem permissão para gerar relatórios de clientes.');
            redirect(base_url());
        }

        $dataInicial = $this->input->get('dataInicial');
        $dataFinal = $this->input->get('dataFinal');

        $data['clientes'] = $this->Relatorios_model->clientesCustom($dataInicial, $dataFinal);

        $this->load->helper('mpdf');
        $html = $this->load->view('relatorios/imprimir/imprimirClientes', $data, true);
        pdf_create($html, 'relatorio_clientes' . date('d/m/y'), true);
    
    }

    public function clientesRapid()
    {
        if (!$this->permission->checkPermission($this->session->userdata('permissao'), 'rCliente')) {
            $this->session->set_flashdata('error', 'Você não tem permissão para gerar relatórios de clientes.');
            redirect(base_url());
        }

        $data['clientes'] = $this->Relatorios_model->clientesRapid();

        $this->load->helper('mpdf');
        $html = $this->load->view('relatorios/imprimir/imprimirClientes', $data, true);
        pdf_create($html, 'relatorio_clientes' . date('d/m/y'), TRUE);
    }



}

 

no model está assim:

<?php

class Relatorios_model extends CI_Model {

    function __construct() {
        parent::__construct();
    }

    
    function get($table,$fields,$where='',$perpage=0,$start=0,$one=false,$array='array'){
        $this->db->select($fields);
        $this->db->from($table);
        $this->db->limit($perpage,$start);
        if($where){
            $this->db->where($where);
        }
        
        $query = $this->db->get();        
        $result =  !$one  ? $query->result() : $query->row();
        return $result;
    }

    
    function add($table,$data){
        $this->db->insert($table, $data);         
        if ($this->db->affected_rows() == '1')
		{
			return TRUE;
		}
		
		return FALSE;       
    }
    
    function edit($table,$data,$fieldID,$ID){
        $this->db->where($fieldID,$ID);
        $this->db->update($table, $data);

        if ($this->db->affected_rows() >= 0)
		{
			return TRUE;
		}
		
		return FALSE;       
    }
    
    function delete($table,$fieldID,$ID){
        $this->db->where($fieldID,$ID);
        $this->db->delete($table);
        if ($this->db->affected_rows() == '1')
		{
			return TRUE;
		}
		
		return FALSE;        
    }

    function count($table) {
        return $this->db->count_all($table);
    }
    
    //Imprimir com mais detalhes
    public function clientesCustom($dataInicial = null,$dataFinal = null){        
        if($dataInicial == null || $dataFinal == null){
            $dataInicial = date('Y-m-d');
            $dataFinal = date('Y-m-d');
        }
        $query = "SELECT * FROM clientes WHERE dataCadastro BETWEEN ? AND ?";
        return $this->db->query($query, array($dataInicial,$dataFinal))->result();
    }
    
    //Impressão modo rápido
    public function clientesRapid(){
        $this->db->order_by('nomeCliente','asc');
        return $this->db->get('clientes')->result();
    }

}

 

Como faço para corrigir este erro ?

 

Grato a todos,

 

Renato

 

 

 

Share this post


Link to post
Share on other sites

Caro amigo

 

Ygor

 

Conforme mencionado para acrescentar as linhas dentro do __construct:

    public function __construct() {

        ini_set('display_errors',1);
        ini_set('display_startup_erros',1);
        error_reporting(E_ALL);

        parent::__construct();
        if ((!session_id()) || (!$this->session->userdata('logado'))) {
            redirect('siscota/login');
        }     
        
        $this->load->model('Relatorios_model', '', true);
        $this->load->model('Usuarios_model', '', true);
        $this->load->model('Mapos_model', '', true);

        $this->data['menuRelatorios'] = 'Relatórios';

    }

 

Infelizmente o erro de: Falha ao carregar o Documento. <- ainda continua e não mostrou mais nada além desse erro.

 

Grato,

 

Renato

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By emmanuelsiqueira30
      Estou tentando inserir os valores de uma matrícula e gerar já as parcelas das mensalidades.
      Agradeço toda ajuda possível.
       
      cadMatriculaModel.php
      <?php include("../Controller/conexao.php"); include("../Controller/util.php"); header('Content-Type: text/html; charset=utf-8'); $id_aluno = $_POST['id_aluno']; $id_curso = $_POST['id_curso']; $data_matricula = date("Y-m-d"); $codunico_matricula = bin2hex(random_bytes(8)); $tipo_pag_matricula = $_POST['tipo_pag_matricula']; $dia_venc_matricula = $_POST['dia_venc_matricula']; $n_parc_matricula = $_POST['n_parc_matricula']; $sql_valor_curso = "SELECT * FROM curso WHERE id_curso = $id_curso"; $result_valor_curso = mysqli_query($con,$sql_valor_curso); $row_valor_curso = mysqli_fetch_assoc($result_valor_curso); $valor_curso = $row_valor_curso['valor_curso']; $dt_curso_ini = $row_valor_curso['data_inicio_curso']; $dt_curso_fim = $row_valor_curso['data_fim_curso']; $dif = strtotime($dt_curso_fim) - strtotime($dt_curso_ini); $periodo_curso_meses = floor($dif / (60 * 60 * 24 * 30)); $valor_parc = intval($valor_curso) / $periodo_curso_meses; $sqlmatricula = "INSERT INTO matricula (id_aluno,id_curso,data_matricula,codunico_matricula,tipo_pag_matricula,dia_venc_matricula,n_parc_matricula) VALUES ('$id_aluno','$id_curso','$data_matricula','$codunico_matricula','$tipo_pag_matricula','$dia_venc_matricula','$n_parc_matricula')"; $resultmatricula = mysqli_query($con,$sqlmatricula); $ultimamatricula = mysqli_insert_id($con); if($resultmatricula == true){ //echo "<script>alert('Matrícula realizada com sucesso.');</script>"; $x = 1; while($x >= $n_parc_matricula){ //for ($x = 0; $x == $n_parc_matricula; $x++) { /* $dia = date("d"); $mes = date("m"); $ano = date("Y"); $dt_venc_pr = date("Y/m/d",strtotime("+".$x." month",mktime(0, 0, 0,$dia,$mes,$ano))); echo $dt_venc_pr; */ $sqlpr = "INSERT INTO parcelareceber (id_matricula,id_aluno,id_curso,valor_parc_pr,dt_pag_pr) VALUES ('$ultimamatricula','$id_aluno','$id_curso','$valor_parc','$data_matricula')"; $resultpr = mysqli_query($con,$sqlpr); echo $sqlpr; if($resultpr == true){ echo "<script>alert('Parcelas geradas com sucesso.');</script>"; }else { echo "<script>alert('Erro na inserção das parcelas.');</script>"; echo $resultpr; } } echo $x; echo $n_parc_matricula; }else{ } cadMatriculaView.php
      <!DOCTYPE html> <html> <title>Matrícula do aluno</title> <head> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script> </head> <body> <?php include 'menuView.php'; ?></br></br> <?php ini_set( 'default_charset', 'UTF-8' ); ini_set( 'mbstring.http_output', 'UTF-8' ); ini_set( 'mbstring.internal_encoding', 'UTF-8' ); header("Content-Type: text/html; charset=UTF-8",true); ?> <font face="verdana" size="4"> <form action="../Model/cadMatriculaModel.php" method="POST"> <fieldset> <legend>CONSULTA DE ALUNO</legend> <label for="proprietario_id_prop">Digite o CPF do aluno: </label> <input type="text" class="form-control" name="textbox" id="textbox" placeholder="Digite CPF do aluno"></br> ALUNO: <select class="form-control" name="id_aluno" id="select" style="width: 400px"> <?php include ("../Controller/conexao.php"); $query = "SELECT * FROM aluno"; $consulta = mysqli_query($con,$query); while ($dados = mysqli_fetch_assoc($consulta)) { ?> <option value="<?php echo $dados['idaluno']; ?>"><?php echo $dados['cpfaluno'] . " - " . $dados['nomealuno']; ?></option> <?php } ?> </select></br> </fieldset> <fieldset> <legend>ESCOLHA DO CURSO</legend> CURSO: <select class="form-control" name="id_curso" id="select"> <?php include ("../Controller/conexao.php"); $query = "SELECT * FROM curso"; $consulta = mysqli_query($con,$query); while ($dados = mysqli_fetch_assoc($consulta)) { ?> <option value="<?php echo $dados['id_curso']; ?>"><?php echo $dados['nome_curso'] . " - " . $dados['turno_curso']; ?></option> <?php } ?> </select></br> </fieldset> TIPO DE PAGAMENTO: <select name="tipo_pag_matricula"> <option value="1">A PRAZO</option> </select></br> DIA DO VENCIMENTO: <input type="text" name="dia_venc_matricula" maxlength="2"> NÚMERO DE PARCELAS: <input type="text" name="n_parc_matricula" maxlength="2"><br> <span style="color: red; font-size: 8pt">* Campos obrigatórios.</span></br> <button type="submit" name="btninserir">INSERIR MATRÍCULA</button> </form> </font> <script> jQuery.fn.filterByText = function(textbox, selectSingleMatch) { return this.each(function() { var select = this; var options = []; $(select).find('option').each(function() { options.push({value: $(this).val(), text: $(this).text()}); }); $(select).data('options', options); $(textbox).bind('change keyup', function() { var options = $(select).empty().data('options'); var search = $(this).val().trim(); var regex = new RegExp(search,"gi"); $.each(options, function(i) { var option = options[i]; if(option.text.match(regex) !== null) { $(select).append( $('<option>').text(option.text).val(option.value) ); } }); if (selectSingleMatch === true && $(select).children().length === 1) { $(select).children().get(0).selected = true; } }); }); }; $(function() { $('#select').filterByText($('#textbox'), false); $("select option").click(function(){ alert(1); }); }); </script> </body> </html> E também est[a dando esse erro Notice: Undefined index: dia_venc_matricula in C:\xampp\htdocs\curso\Model\cadMatriculaModel.php on line 15 mas já verifiquei a variávewl e está correta.
    • By luigiferrari
      Boa Tarde, sou iniciante no php, mas acho q isso seria coisa simples de se fazer. Porem não estou conseguindo...
      Se puderem me ajudar. 
      Agradeço desde já!


    • By winter2018
      Boa tarde galera 
       
      Preciso por favor de uma ajuda.
      Estou a criar um sistema de cadastro de currículos em php.
       
      Preciso que ao escolher  as línguas que o usuário falar, essas informações sejam armazenadas num array para depois serem inseridas  no  mysql junto com outros campos, como  nome,  idade, etc.
       
       
      Sei programar em php mas não  tenho ideia de como fazer isso.
       
      Por favor me ajudem 
       
       
      Winter 2018
    • By SECONDSS
      boa noite, preciso entregar algumas questões até daqui a pouco,meu tempo está corrido e gostaria da ajuda de vocês para resolver essa questão. obrigado desde já!

      QUESTÃO 16 -

      Desenvolva um programa utilizando PHP e exibir os resultados desse programa que tenha todas as classes suficientes para que:
      Represente o nome completo de uma pessoa, composto de três strings (nome próprio, nome do meio e nome da família). 
      ATENÇÃO - 
      Escreva nessa classe o método rubrica que retorna somente as iniciais do nome completo em caracteres minúsculos, Escreva nessa classe o método assinatura que retorna as iniciais dos nomes próprio e do meio (com pontos) Escreva nessa classe um método que retorne o nome de família completo. Por exemplo, se o nome da pessoa representado por essa classe for “Jack Mill Dam”, o método rubrica deve retornar ”jmd” e o método assinatura deve retornar ”J.M. Dam”. Para facilitar, considere armazenar os três nomes em strings separadas.
    • By duarte.php
      Boa noite, pessoal, estou fazendo meu tcc (nível técnico kkk) e preciso de ajuda com uma conexão com o banco.
       
      Fiz um formulário para consultar empréstimos em uma biblioteca através do rm (id) e exibir os dados que estão cadastrados neste rm. 
      Estou com dificuldades para que os dados sejam puxados e exibidos na página. 
       
      Esta é a parte que pede o RM no html
      <h4 class="title">Insira o seu RM: </h4> <input type="text" name="rm" class="form-control" required/>  
      Este é o código php
      <?php $rm = $_POST['rm']; include("conecta.php"); $busca = mysql_query("SELECT * FROM tb_locador WHERE rm='$rm'"); $dado = mysql_fetch_array($busca); $nome = $dado['nome']; $ano = $dado['ano']; $curso = $dado['curso']; $tel = $dado['tel']; echo "RM: " . $rm . "<br>"; echo "Nome do locador: ".$nome. "<br>"; echo "Curso do locador: ".$curso. "<br>"; echo "Ano de início do curso: ".$ano. "<br>"; echo "Telefone do locador: ".$tel. "<br>"; ?> Até então, o único dado exibido é o RM, como faço para exibir o nome, curso, ano e telefone? 
       
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.