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, 03:57
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 15 años, 1 mes
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, 20:49
 
Fecha de Ingreso: septiembre-2007
Mensajes: 52
Antigüedad: 12 años, 5 meses
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 05:43.