Help to Generate this report in ireport

Asked

Viewed 175 times

1

I have following report in FPDF, I need a help to generate it in ireport format

        <?php session_start();

    // Classe suporte para geração de relatório - Relação de Escolas
    class PDF extends ImaPdf
    {
        // var $data_relatorio;         // data do relatorio
        // var $numero_colunas=0;           // define o numero de colunas a ser impresso numa linha do relatorio

        //>>>> Cabeçalho
        function Header() 
        {
            $sistema_acesso = $this->sistema_acesso;
            $orgao = $this->orgao;
            $ano = $this->ano;
            $sem_descr = $this->sem_descr;
            $md_periodo = $this->md_periodo;
            $periodo_descr = $this->periodo_descr;
            $md_serie = $this->md_serie;



        ////////// DEFINE POSIÇÃO E IMPRIME CABEÇALHO       
            $this->Image('../../imagens/'.$mant_logo,10,10,15,15);
            $this->SetFont('Arial','B',10);
            $this->SetX(25);
            $this->Cell(0,5,$mant_nome,0,1,'L');
            $this->SetX(25);
            $this->Cell(0,5,$mant_orgao,0,1,'L');
            $this->SetX(25);
            $this->Cell(0,5,$mant_orgao2,0,1,'L');
            $this->SetX(25);
            $this->ln(10);
            $this->SetFont('Arial','B',11);
            $this->Cell(0,5,'RELATÓRIO DE MATRIZ CURRICULAR',0,1,'C');
            $this->SetX(25);
            $this->ln(2);
            $this->SetFont('Arial','B',9);
            $this->Cell(0,5,'ESCOLA:  '.mostrar_nome_escola($orgao),0,1,'C');
            $this->ln(2);
            $this->Cell(60,5,'ANO:  '.$ano,0,0,'L');
            $this->Cell(80,5,'SEMESTRE:  '.$sem_descr,0,0,'L');
            $this->Cell(60,5,'PERÍODO:  '.$periodo_descr,0,1,'L');
            $this->ln(7);
            // $this->Cell(80,5,'TIPO DE ENSINO:  '.$ensino,0,0,'L');
            // $this->Cell(80,5,'MODALIDADE:  '.$modalidade,0,1,'R');
            // $this->Cell(0,5,'SÉRIE:  '.$ser_descr,0,1,'L');

        }
        //<<<< Cabeçalho
        //>>>> Rodapé
        function Footer()
        {
            $this->SetY(-18.5);
            $this->SetY(-18);
            $this->SetFont('Arial','B',8);
        ////// Define posição 1,5CM de baixo para cima
            $this->SetY(-10);
            $this->SetFont('Arial','BI',8);
        ////// Número da página
            $this->Cell(0,8,'Página:'.$this->PageNo().'/{nb}',0,0,'R');
        }
        //<<<< Fim do Rodapé
    } //<<<< FIM CLASSE

    //BUSCANDO DESCRIÇÃO DO SEMESTRE
    $sql = "SELECT sem_descr FROM semestre WHERE sem_cod = '$semestre'";
    $rst = mysql_query($sql) or die ("<h5>ERRO NA CONSULTA DO SEMESTRE</h5>");
    $linha = mysql_fetch_array($rst);
    $sem_descr = $linha['sem_descr'];


    ////// Criação do documento
    $pdf=new PDF("P");
    $pdf->sistema_acesso = $sistema_acesso;
    $pdf->orgao = $orgao;
    $pdf->ano = $ano;
    $pdf->sem_descr = $sem_descr;
    $pdf->AliasNbPages();
    $pdf->ln(0.5);

    //>>>>>>>>>EFETUA A PRIMEIRA QUEBRA (POR PERIODO)
    // echo "<br>".
    $sql_per = "SELECT DISTINCT md_periodo, periodo_descr 
                    FROM esc_matriz_disc, periodo 
                WHERE 
                    loc_cod = '$orgao' AND 
                    md_ano = '$ano' AND 
                    md_sem = '$semestre' AND
                    periodo_cod = '$periodo_descr' AND 
                    periodo_cod = md_periodo 
                ORDER BY periodo_cod";
    $rst_per = mysql_query($sql_per) or die ("<h5>ERRO NA CONSULTA DO PERÍODO</h5>");
    $tot_per = mysql_num_rows($rst_per);
    //SE NÃO ENCONTRAR PERIODO EXIBE MENSAGEM  
    if ($tot_per == 0) {
        include('../../header.php');
        echo "<h5 class='erro'>Não existem informações a serem exibidas no relatório com os parâmetros informados.</h5>";
        echo "<h5 class='erro'><a href=javascript:window.close() class=red>&#171; Fechar e alterar parâmentos</a></h5>";
        exit;
    } else {

        while ($ln_per = mysql_fetch_array($rst_per)) {
            $md_periodo = $ln_per['md_periodo'];
            $periodo_descr = $ln_per['periodo_descr'];

            //envia periodo para o cabeçalho 
            $pdf->md_periodo = $md_periodo;
            $pdf->periodo_descr = $periodo_descr;
            $pdf->AddPage();

            //>>>>>EFETUA A SEGUNDA QUEBRA (POR SERIE)
            $sql_serie = "SELECT DISTINCT md_serie, ser_descr FROM esc_matriz_disc, serie 
                                WHERE loc_cod = '$orgao' 
                                AND md_ano = '$ano' 
                                AND md_sem = '$semestre' 
                                AND md_periodo = '$md_periodo' 
                                AND ser_cod = md_serie 
                                ORDER BY ser_ordem";
            $rst_serie = mysql_query($sql_serie) or die ("<h5>ERRO NA CONSULTA DA SERIE</h5>");
            $tot_serie = mysql_num_rows($rst_serie);

        $cont_ser = 0;
            $localizacao_y = 70;


            while ($ln_serie = mysql_fetch_array($rst_serie)) {


                $md_serie = $ln_serie['md_serie'];
                $ser_descr = $ln_serie['ser_descr'];

                //BUSCA MODALIDADE E TIPO DE ENSINO REFERENTE A SERIE 
                 $sql_mod = "SELECT ensino_descr, modalidade_descr, curso_abrev,curso_descr, curso_cod
                                    FROM serie, curso, ensino, modalidade
                                    WHERE ser_cod = '$md_serie' 
                                    AND ser_curso = curso_cod 
                                    AND curso_ensino = ensino_cod 
                                    AND ensino_modalidade = modalidade_cod
                                    ORDER BY curso_descr,ser_descr,ensino_descr ASC


                ";
                $rst_mod = mysql_query($sql_mod) or die ("<h5>ERRO NA CONSULTA DA MODALIDADE</h5>");
                $ln_mod = mysql_fetch_array($rst_mod);
                $ensino = $ln_mod['ensino_descr'];
                $modalidade = $ln_mod['modalidade_descr'];
                $curso_abrev = $ln_mod['curso_abrev'];
                $curso_descr = $ln_mod['curso_descr'];
                $curso_cod = $ln_mod['curso_cod'];




                if ($serie_pdf != $ser_descr) {
                    $serie_pdf = $ser_descr;

                    // $pdf->SetY($localizacao_y-10);
                    $pdf->SetFont('Arial','B',7);
                    $pdf->Cell(70,5,'TIPO DE ENSINO:  '.$ensino,0,1,'L');
                    $pdf->Cell(60,5,'CURSO:  '.$curso_descr,0,1,'L');


                }


                //INSERE AS SERIE

                $sqlSeries = "SELECT  s.ser_descr, s.ser_cod  
                FROM  serie s
                WHERE  s.ser_curso = '$curso_cod'
                ORDER BY s.ser_ordem";
                $rs_series = mysql_query($sqlSeries) or die ("<h5>ERRO NA CONSULTA DA SERIE</h5>");

                while ($ln_series = mysql_fetch_array($rs_series)) {
                    // echo "<BR>".
                    $serie_descr = $ln_series['ser_descr'];
                    $ser_cod = $ln_series['ser_cod'];


                    $pdf->Cell(60,5,'MODULO:  '.$serie_descr,0,1,'L');


                    //preenche o codigo da disciplina e da descrição

                    // echo "<BR>".
                        $sqlDesc = "SELECT 
                                    e.md_disciplina, d.disciplina_descr, e.md_carga
                                FROM 
                                    esc_matriz_disc e, disciplina d
                                WHERE
                                    e.md_ano = '$ano'  AND 
                                e.md_sem = '$semestre' AND
                                e.md_periodo = '$md_periodo' AND
                                e.md_serie = '$ser_cod' AND
                                e.md_disciplina = d.disciplina_cod";

                    $rs_desc = mysql_query ($sqlDesc)  or die ("<h5>ERRO NA CONSULTA DA SqlDesc</h5>");

                        $pdf->SetFillColor(224,224,224);
                        $pdf->Cell(50,5,'Codigo',1,0,'C',1);
                        $pdf->Cell(90,5,'Disciplina',1,0,'C',1);
                        $pdf->Cell(20,5,'Carga Horária',1,1,'C',1);
                        // $pdf->Cell(20,5,'(Aulas/Semana)',1,1,'C',1);
                    while($ln_bases = mysql_fetch_array($rs_desc)) {

                        $md_disciplina = $ln_bases['md_disciplina'];
                        $disciplina_descr = $ln_bases['disciplina_descr'];
                        $md_carga = $ln_bases['md_carga'];



                        $pdf->SetFont('Arial','B',7);
                        $pdf->SetFillColor(204,204,204);
                        $pdf->SetFont('Arial','B',6);
                        $pdf->Cell(50,5,$md_disciplina,1,0,'L');
                        $pdf->Cell(90,5,$disciplina_descr,1,0,'L');
                        $pdf->SetFont('Arial','B',7);
                        $pdf->Cell(20,5,$md_carga,1,1,'C');




                    }

                $pdf->Cell(60,5,''.'',0,1,'L');

                }//LOOPING BASES    

                // $cont_ser ++;
                // $localizacao_y += 70;
                // $pdf->ln(5);
            } //LOPPING SERIE

        }// looping periodo     


    }//FIM ELSE
    $pdf->Output('rel.pdf','I');
    ?>
  • And what have you tried so far? What is your difficulty?

  • Do you want PHP or Java? Your question tags mix everything into one thing.

  • I managed to solve this problem, gathering some tables in SELECT and using two sub-reports, follow the hint, if someone has another better suggestion, will be very welcome . thank you

No answers

Browser other questions tagged

You are not signed in. Login or sign up in order to post.