Foros del Web » Programando para Internet » PHP »

Class R&OS - Listar en dos columnas

Estas en el tema de Class R&OS - Listar en dos columnas en el foro de PHP en Foros del Web. Hola, utilizo la classe R&OS para crear pdf. Tengo listados q a mesura q ha pasado el tiempo han crecido un poco y al ser ...
  #1 (permalink)  
Antiguo 20/09/2007, 02:57
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 21 años, 9 meses
Puntos: 10
Class R&OS - Listar en dos columnas

Hola, utilizo la classe R&OS para crear pdf.

Tengo listados q a mesura q ha pasado el tiempo han crecido un poco y al ser un listado q muestra 4 registros se desaprovecha mucho papel y me gustaria saber si se puede listar en dos columnas en la misma hoja.

El codigo q uso es el siguiente:

Código PHP:
<?
error_reporting
(E_ALL); 
include(
'../../class/class.ezpdf.php'); 
$pdf = & new Cezpdf('a4','portrait'); 
$pdf->selectFont('../../class/fonts/Helvetica'); 
$pdf->ezStartPageNumbers(580,18,10,'','{PAGENUM} de {TOTALPAGENUM}',1); 

//--Nom Tenda
$id_tenda = $_GET['id_tenda'];
$str_tendes = "SELECT codi_tenda, nom_tenda FROM tendes 
               WHERE nivell_acces = 5 AND codi_tenda = $id_tenda
               ORDER BY nom_tenda"
;
$sql_tendes = mysql_query($str_tendes) or die("Error SQL Tenda: ".mysql_error()); 
$res_tendes = mysql_fetch_row($sql_tendes);
$nomtenda    = $res_tendes[1];
mysql_free_result($sql_tendes);
//---------------------------------------------------

// coloca una linia a dalt i baix a totes les pagines 
$all = $pdf->openObject(); 
$pdf->saveState(); 
$pdf->setStrokeColor(0,0,0,1); 
$pdf->line(20,30,585,30); 
$pdf->line(20,825,585,825); 
$pdf->addText(20,830,10,'INVENTARI - '.$nomtenda); 
$pdf->addText(510,18,10,'Pagina'); 
$pdf->restoreState(); 
$pdf->closeObject(); 
// acaba les lineas 
$pdf->addObject($all,'all'); 
//-------- 
////////////////////
$str_familia  = "SELECT codi_familia, nom_familia
                 FROM familia 
                 ORDER BY codi_familia"
; 
$sql_familia  = mysql_query($str_familia) or die("Error SQL Familia: ".mysql_error()); 
$nreg_familia = mysql_num_rows($sql_familia);
if(
$nreg_familia != 0){
    while (
$res_familia = mysql_fetch_row($sql_familia)) { 
    
        
$id_familia  = $res_familia[0];
        
$nom_familia = $res_familia[1];
        
//---------
        
        // SQL -> Articles
        
$str_article = "SELECT DISTINCT articles.codi_article, nom_article, ufactura, ordre
                        FROM articles,articles_tenda
                        WHERE articles.codi_article=articles_tenda.codi_article
                        AND articles.codi_familia = "
.$id_familia."
                        AND articles_tenda.codi_tenda = "
.$_GET['id_tenda']."
                        ORDER BY articles.nom_article"
;
        
        
//inicialitza array - Preventius
        
$data = array(); 
        
//Fem la query _ Article
        
$sql_article  = mysql_query($str_article) or die (mysql_error()); 
        
$nreg_article = mysql_num_rows($sql_article);
        if(
$nreg_article!=0){
        
//Familia
        
$pdf->ezText($nom_familia,8,array('justification' => 'center'));
        
$pdf->ezText('',2);
        
//----------
        
$cols = array(
                        
'idarticle'      =>' ID',
                        
'article'        => 'ARTICLE',
                        
'quantitat'      => 'QUANTITAT',
                        
'unitat'            => 'UNITAT');   
        while (
$res_article = mysql_fetch_row($sql_article)) { 
            
            
$idarticle = $res_article[0];
            
$article   = $res_article[1];
            
$unitat    = $res_article[2];                
            
// Aqui agreguem els camps - Article
            
$data[] = array(
                            
'idarticle'      => $idarticle,
                            
'article'        => $article,
                            
'quantitat'      => '              ',
                            
'unitat'            => $unitat);   
        } 
//fi article
    
        
$pdf->ezTable($data,$cols,'',array('fontSize'=>6, 
              
'cols'=>array(
                            
'idarticle'   => array('justification' => 'left'),
                            
'article'     => array('justification' => 'left'),
                            
'quantitat'   => array('justification' => 'left'),
                            
'unitat'      => array('justification' => 'center')) 
        ));
// sortida
        
$pdf->ezText('',2);
        }
//fi nreg article
    
}//Fi Familia
}

if (isset(
$d) && $d){ 
    
$pdfcode = $pdf->ezOutput();  //Necesari xq funcioni ezStartPageNumbers 
    
$pdfcode = str_replace('\n','\n<br>',htmlspecialchars($pdfcode)); 
    echo 
'<html><body>'; 
    echo 
trim($pdfcode); 
    echo 
trim($pdfcode2); 
    echo 
'</body></html>'; 
} else { 
    
$pdf->ezStream();  //Necesari xq funcioni ezStartPageNumbers 
} 
?>
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier
  #2 (permalink)  
Antiguo 23/09/2007, 19:49
 
Fecha de Ingreso: septiembre-2007
Mensajes: 52
Antigüedad: 19 años, 1 mes
Puntos: 2
Re: Class R&OS - Listar en dos columnas

Cita:
Iniciado por sergi_climent Ver Mensaje
Hola, utilizo la classe R&OS para crear pdf.
(..)
me gustaria saber si se puede listar en dos columnas en la misma hoja
Muy interesante esta clase que mencionas. Estaba mirando en la documentación, y ciertamente (al menos con la versión más reciente) puedes configurar el flujo de datos en el PDF en un número de columnas. Para esto puedes usar el método ezColumnsStart(). Por ejemplo, puedes probar agregando una línea como esta al comienzo de tu programa (pero después de definir $pdf):

Código PHP:
$pdf->ezColumnsStart (); 
El número predeterminado de columnas al usar ezColumnsStart() es 2, pero puedes definir otros valores. P. ej.:

Código PHP:
$pdf->ezColumnsStart (array ('num' => 3)); 
Para más detalles, la documentación que viene con el software (readme.pdf) es bastante completa. He hecho algunas pruebas tomando como base el código que has publicado, y la verdad quedé gratamente sorprendido con el resultado, así que te agradezco por el dato :).
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:48.