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


HGIDC
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.143
    Agradecido
    99
    Agradeceu
    39
    Peso da Avaliação
    25

    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(222);
     return 
    $caminho_pdf_imprimir;


    function 
    IniciaCabec() {
     
    $pdf->SetFont(wNomeFontCabecwStyleCabecwSizeCabec);   
    }

    function 
    IniciaCorpo() {
     
    $pdf->SetFont(wNomeFontCorpowStyleCorpowSizeCorpo);    
    }

    function 
    IniciaRodape() {
     
    $pdf->SetFont(wNomeFontRodapewStyleRodapewSizeRodape);   
    }

    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
    22
    Posts
    1.388
    Agradecido
    253
    Agradeceu
    167
    Peso da Avaliação
    20

    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 .
    Hidden Content
    Intel core I3-4130@3.4 | Blizzard T2 | GAB85M-D3H | 8 GB 1333 | R9 280x Vapor X OC | AOC 23" 3D | NZXT Phantom | Corsair CX 750

  3. #3



    Avatar de Prøjë¢T
    Data de Ingresso
    Jul 2010
    Localização
    Sao Jose do Rio Preto
    Posts
    1.143
    Agradecido
    99
    Agradeceu
    39
    Peso da Avaliação
    25

    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
    26
    Posts
    57
    Agradecido
    24
    Agradeceu
    11
    Peso da Avaliação
    8

    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.143
    Agradecido
    99
    Agradeceu
    39
    Peso da Avaliação
    25

    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
    25
    Posts
    30
    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.143
    Agradecido
    99
    Agradeceu
    39
    Peso da Avaliação
    25

    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
  •