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>« 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?
– gmsantos
Do you want PHP or Java? Your question tags mix everything into one thing.
– Victor Stafusa
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
– hulckb