Siga-nos em...
Follow us on Twitter Follow us on Facebook Watch us on YouTube
Registro

Alpha Servers
Resultados 1 a 7 de 7
  1. #1



    Avatar de Prøjë¢T
    Data de Ingresso
    Jul 2010
    Localização
    Sao Jose do Rio Preto
    Posts
    1.134
    Agradecido
    105
    Agradeceu
    40
    Peso da Avaliação
    31

    Unhappy Problema ao chamar Function que puxa uma class

    Pessoal boa noite, estou tentando gerar um relatorio em PDF pelo PHP usando a classe do FPDF.... Porem para nao ter que escrever muita coisa toda hora criei uma rotina dentro de um geraPDF.php
    e no relatorio eu dou um require no arquivo, porem ele da um erro que não estou conseguindo identificar.... Vou mostrar mais ou menos como ele esta abaixo.


    Este é o teste.php

    Código PHP:
    <?

        require_once("geraPDF.php");
        
        $caminho_pdf = CriaPDF('P'); // P (retrato) ou L (Paisagem)
        IniciaCabec();
        linhaAzul('Lista de Grupos');
        PulaLinha();    
        IniciaCorpo();
        
        linhaVermelha('Codigo do Grupo: '); linha("$codigo");
        linhaVerdeClara(' Nome do Grupo'); linha("$nome");
        PulaLinha();
        linhaAzulClara('Cadastrado em : '); linha("$transmissao"); 
        PulaLinha();
        linhaAmarela('-------------------------------------------');
        PulaLinha();
             
        IniciaRodape();
        linhaAzul('Relatorio de teste gerado pelo Douglas');
        PulaLinha();
        SalvaPDF();
        
        echo "<script type=\"text/javascript\">window.open('".$caminho_pdf."','mywindow','toolbar=yes,location=yes,directories=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes')</script>";
      
    ?>
    este é o arquivo que gerei as funções para chamar as classes

    geraPDF.php

    Código PHP:

    <?
     require_once("config.php");
     require_once("classes/fpdf/fpdf.php"); //incluindo a classe PDF 
     
    function CriaPDF($modelo) {
     $caminho_pdf = 'modulos/trab/'.$login_painel.'.pdf';
     if (file_exists($caminho_pdf) == true) {
          unlink("$caminho_pdf");  
     }
     $caminho_pdf_imprimir = $caminho_pdf;
     
     $pdf = new FPDF($modelo,'cm','A4');
     $pdf->AddPage();
     $pdf->SetAuthor('Equipe Sistemas');
     $pdf->SetTitle('Relatorio Web');
     $pdf->SetMargins(2, 2, 2);
     return $caminho_pdf_imprimir;


    function IniciaCabec() {
     $pdf->SetFont(wNomeFontCabec, wStyleCabec, wSizeCabec);   
    }

    function IniciaCorpo() {
     $pdf->SetFont(wNomeFontCorpo, wStyleCorpo, wSizeCorpo);    
    }

    function IniciaRodape() {
     $pdf->SetFont(wNomeFontRodape, wStyleRodape, wSizeRodape);   
    }

    function PulaLinha(){
      $pdf->Ln();  
    }

    function linha($linha) {    
       $pdf->SetTextColor(0,0,0); //Preto
       $pdf->Write(0.5,$linha); 
    }

    function linhaAmarela($linha) {    
       $pdf->SetTextColor(255,255,0); //Amarelo
       $pdf->Write(0.5,$linha); 
    }

    function linhaAzul($linha) {    
       $pdf->SetTextColor(0,0,255); //Azul
       $pdf->Write(0.5,$linha); 
    }

    function linhaVermelha($linha) {    
       $pdf->SetTextColor(255,0,0); //Vermelho
       $pdf->Write(0.5,$linha); 
    }

    function linhaVerde($linha) {    
       $pdf->SetTextColor(0,255,0); //Verde
       $pdf->Write(0.5,$linha); 
    }

    function linhaVerdeClara($linha) {    
       $pdf->SetTextColor(153,205,50); //Verde Claro
       $pdf->Write(0.5,$linha); 
    }

    function linhaAzulClara($linha) {    
       $pdf->SetTextColor(0,127,255); //Azul Claro
       $pdf->Write(0.5,$linha); 
    }

    function SalvaPDF() {
        $pdf->Output($caminho_pdf);
    }


    ?>
    Quando executo o o teste.php ele le a primeira função

    $caminho_pdf = CriaPDF('P'); // P (retrato) ou L (Paisagem) (aqui ele conseguer executar)

    porem a partir da segunda função ele nao executa mais, e nem uma das outras.... Ele sempre da erro.

    IniciaCabec();

    Fatal error: Call to a member function SetFont() on a non-object in D:\Projeto WEB\equipe\modulos\geraPDF.php on line 21

    Independente da função que eu execute ele da esse erro na chama da classe....Seja SetFont, Write, Ln....

    Alguem sabe se é possivel fazer isso, ou não se pode chamar uma função e dentro dela chamar outra função de uma classe;; Se alguem souber e quiser dar uma força ai agradeço desde ja.

  2. #2



    Avatar de Ayrton Ricardo
    Data de Ingresso
    May 2012
    Localização
    Joao Pessoa - PB
    Idade
    28
    Posts
    1.379
    Agradecido
    262
    Agradeceu
    171
    Peso da Avaliação
    26

    Padrão

    Creio que erro seja porque você está chamando uma classe dentro de uma função diferente.

    Tente chamar a classe fora:

    $pdf = new FPDF($modelo,'cm','A4'); <<< chame isso fora de tudo... Tenta abaixo dos requires...



    Creio que o problema seja esse, pois vendo os códigos acima, só consegui pensar nisso ^^"

    Vê ai e me diz o que houve ^^" Pois o problema só está na chamada da classe!
    Leiam, todo desenvolvedor PHP precisa conhecer: Hidden Content .




  3. #3



    Avatar de Prøjë¢T
    Data de Ingresso
    Jul 2010
    Localização
    Sao Jose do Rio Preto
    Posts
    1.134
    Agradecido
    105
    Agradeceu
    40
    Peso da Avaliação
    31

    Padrão

    Vlw, mas ainda persisti a mesma coisa...

    error: Call to a member function SetFont() on a non-object in

  4. #4

    Avatar de gneccao
    Data de Ingresso
    Aug 2010
    Localização
    11111111111111111
    Idade
    33
    Posts
    55
    Agradecido
    23
    Agradeceu
    9
    Peso da Avaliação
    14

    Padrão

    Não vai funcionar assim. Você tem que ou redeclarar a classe "$pdf" , ou fazer um global $pdf;

    Pois como você esta dentro de uma função, ela não sabe as variaveis fora dela.

    coloca um global $pdf; dentro da function, que provavelmente vai funcionar.

  5. #5



    Avatar de Prøjë¢T
    Data de Ingresso
    Jul 2010
    Localização
    Sao Jose do Rio Preto
    Posts
    1.134
    Agradecido
    105
    Agradeceu
    40
    Peso da Avaliação
    31

    Padrão

    Vou testar, depois aviso aqui o resultado, porem obrigado por enquanto. xD

  6. #6

    Avatar de Wellington R.
    Data de Ingresso
    Oct 2009
    Localização
    Lorencia
    Idade
    31
    Posts
    29
    Agradecido
    0
    Agradeceu
    0
    Peso da Avaliação
    0

    Padrão

    coloca global $pdf dentro de cada function que utiliza o $pdf!

  7. #7



    Avatar de Prøjë¢T
    Data de Ingresso
    Jul 2010
    Localização
    Sao Jose do Rio Preto
    Posts
    1.134
    Agradecido
    105
    Agradeceu
    40
    Peso da Avaliação
    31

    Padrão

    haha Vlw a dica geneccao e wellington, realmente a function nao le o que esta fora dela, pra isso precisa da variavel global.. Vlw mais um aprendizado por hoje.. Muito obrigado
    me ajudaram muito.... XD

 

 

Informações de Tópico

Usuários Navegando neste Tópico

Há 1 usuários navegando neste tópico. (0 registrados e 1 visitantes)

Tópicos Similares

  1. |Dúvida| puxa tabela MuOnline
    Por Stronda no fórum Dúvidas
    Respostas: 2
    Último Post: 21-06-2015, 12:57 PM
  2. |Suporte| Call to undefined function dl()
    Por djdiego no fórum Dúvidas|Pedidos
    Respostas: 4
    Último Post: 24-05-2015, 04:39 PM
  3. |Source| Function para obter a ID do processo (PID)
    Por Sain no fórum Delphi
    Respostas: 0
    Último Post: 26-03-2014, 11:40 AM
  4. |Suporte| Custom Respawn Function
    Por kind22 no fórum Dúvidas
    Respostas: 0
    Último Post: 12-09-2013, 11:17 PM

Marcadores

Permissões de Postagem

  • Você não pode iniciar novos tópicos
  • Você não pode enviar respostas
  • Você não pode enviar anexos
  • Você não pode editar suas mensagens
  •