Autor Tema: ayuda php y la clase class.ezpdf.php  (Leído 10368 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado froilan

  • Trade Count: (0)
  • Sv Member
  • ***
  • Thank You
  • -Given: 3
  • -Receive: 2
  • Mensajes: 333
ayuda php y la clase class.ezpdf.php
« : febrero 04, 2013, 08:59:25 pm »
buen dia! tengo un problema y quisiera pedirles su ayuda! tengo que pasar el contenido de una tabla mysq a pdf pero no solo eso en esta tabla existen dos campos los cuales tengo que multiplicar entre si (cantidad * precio), lugo de tener todos los hilos ya multiplicados sumar todos los totales, todo esto ya lo tengo pero al momento de exportar a pdf solo me pasa la tabla mysql sin la multiplicacion y los totales

este es el codigo de la convercion del pdf con la clase class.ezpdf.php

generarpdf.php
<?php

//DomPDF

require_once('class.ezpdf.php');
include ('conexionmysql.php');
$pdf =& new Cezpdf('LETTER');
$pdf->selectFont('../fonts/courier.afm');
$pdf->ezSetCmMargins(1,1,1.5,1.5);

    $direccion1="localhost";
    $usuario1="root";
    $password1="";
    $basededatos1="amanco";

conectar_mysql("$direccion1","$usuario1","$password1","$basededatos1");


$Presta = "SELECT * FROM cotiza1";
$resPres = mysql_query($Presta);
$total_presta = mysql_num_rows($resPres);


$ixx = 0;
$totalvalor=0;
$total=0;
$totaliva=0;

while($datatmp = mysql_fetch_assoc($resPres)){
    $ixx = $ixx 1;
    $data[] = array_merge($datatmp, array('num'=>$ixx));     
}
$titles = array(
                 
                'codigo'=>'<b>codigo</b>',
                'nombre'=>'<b>nombre</b>',
                'tipo'=>'<b>tipo</b>',
                'diametro'=>'<b>medida</b>',
                'precio'=>'<b>precio</b>',
                'cantidad'=>'<b>cantidad</b>',
                'total'=>'<b>total</b>',
            );
             
             
$options = array(
                'shadeCol'=>array(0.9,0.9,0.9),
                'xOrientation'=>'center',
                'width'=>580,
                 
            );
$txttit = "<b>AMANCO</b>\n";


$pdf->ezimage("AMANCO.jpg",0,150,'none','center');
$pdf->ezText($txttit, 12);
$pdf->ezTable($data, $titles, '', $options);
$pdf->ezText("\n\n\n", 10);
$pdf->ezText("<b>Fecha:</b> ".date("d/m/Y"), 10);
$pdf->ezText("<b>Hora:</b> ".date("H:i:s")."\n\n", 10);
ob_end_clean();
$pdf->ezStream();
?>


la coneccion a la base de datos la tengo a parte

<?php


function conectar_mysql($direccion,$usuario,$password,$basededatos)
    {
    global $enlace;
    if(!($enlace=mysql_connect($direccion,$usuario,$password)))
        {
        echo "<script> alert('error de conexion')</script>";
        exit();
        }
    if(!(mysql_select_db($basededatos,$enlace)))
        {
        echo "<script> alert('error al conectar con la base de datos')</script>";
        exit();
        }
    return $enlace;
    }
     
function desconectar()
    {
    mysql_close($enlace);
    }
?>

esta es la imprecion del pdf, aqui solo me imprime la tabla mysql tal y como es


esto es lo que quiero que imprima sin la columna eliminar y sin los botones, lo de la multiplicacion de cantidad * precio y la suma total de la col.mna lo he hecho todo a nivel de php

Desconectado ~

  • Trade Count: (0)
  • The Communiter-
  • *
  • Thank You
  • -Given: 0
  • -Receive: 156
  • Mensajes: 1408
    • Ciencia de Computación, OSes y Herramientas
Re:ayuda php y la clase class.ezpdf.php
« Respuesta #1 : febrero 04, 2013, 09:20:07 pm »
Tal vez agregar, después de esto:

Código: [Seleccionar]
while($datatmp = mysql_fetch_assoc($resPres)){
    $ixx = $ixx 1;
    $data[] = array_merge($datatmp, array('num'=>$ixx));     
}



Este otro código:


Código: [Seleccionar]
$cc=count($data);
for($y=0; $y<$cc; $y++)
{
 $data[$y][6]=$data[$y][4]*$data[$y][5];
}



Esa tendría que ser la idea principal (agregar el elemento 6 de cada sub-arreglo, y que este sea la multiplicación de la cuarta y quinta fila, contando las filas desde 0).

Código: [Seleccionar]
<?php

//DomPDF

require_once('class.ezpdf.php');
include (
'conexionmysql.php');
$pdf =& new Cezpdf('LETTER');
$pdf->selectFont('../fonts/courier.afm');
$pdf->ezSetCmMargins(1,1,1.5,1.5);

    
$direccion1="localhost";
    
$usuario1="root";
    
$password1="";
    
$basededatos1="amanco";

conectar_mysql("$direccion1","$usuario1","$password1","$basededatos1");


$Presta "SELECT * FROM cotiza1";
$resPres mysql_query($Presta);
$total_presta mysql_num_rows($resPres);


$ixx 0;
$totalvalor=0;
$total=0;
$totaliva=0;

while(
$datatmp mysql_fetch_assoc($resPres)){
    
$ixx $ixx+1;
    
$data[] = array_merge($datatmp, array('num'=>$ixx));     
}

$cc=count($data);
for(
$y=0$y<$cc$y++)
{
 
$data[$y][6]=$data[$y][4]*$data[$y][5];
}

$titles = array(
                 
                
'codigo'=>'<b>codigo</b>',
                
'nombre'=>'<b>nombre</b>',
                
'tipo'=>'<b>tipo</b>',
                
'diametro'=>'<b>medida</b>',
                
'precio'=>'<b>precio</b>',
                
'cantidad'=>'<b>cantidad</b>',
                
'total'=>'<b>total</b>',
            );
             
             
$options = array(
                
'shadeCol'=>array(0.9,0.9,0.9),
                
'xOrientation'=>'center',
                
'width'=>580,
                 
            );
$txttit "<b>AMANCO</b>\n";


$pdf->ezimage("AMANCO.jpg",0,150,'none','center');
$pdf->ezText($txttit12);
$pdf->ezTable($data$titles''$options);
$pdf->ezText("\n\n\n"10);
$pdf->ezText("<b>Fecha:</b> ".date("d/m/Y"), 10);
$pdf->ezText("<b>Hora:</b> ".date("H:i:s")."\n\n"10);
ob_end_clean();
$pdf->ezStream();
?>




« Última Modificación: febrero 04, 2013, 10:15:57 pm por ~ »
Mi sitio web:
---- IP para archivo hosts (todos mis subdominios):
190.150.9.244 archefire.org

Desconectado froilan

  • Trade Count: (0)
  • Sv Member
  • ***
  • Thank You
  • -Given: 3
  • -Receive: 2
  • Mensajes: 333
Re:ayuda php y la clase class.ezpdf.php
« Respuesta #2 : febrero 04, 2013, 10:13:46 pm »
fíjate que intente hacerlo como me dijiste solo le quite el $ al for por que me daba error, pero no me imprime nada!

Desconectado ~

  • Trade Count: (0)
  • The Communiter-
  • *
  • Thank You
  • -Given: 0
  • -Receive: 156
  • Mensajes: 1408
    • Ciencia de Computación, OSes y Herramientas
Re:ayuda php y la clase class.ezpdf.php
« Respuesta #3 : febrero 04, 2013, 10:38:17 pm »
Hay algún problema con usar el arreglo. Necesitaría ver qué contiene exactamente, ejecutando después de esto:

Código: [Seleccionar]
while($datatmp = mysql_fetch_assoc($resPres)){
    $ixx = $ixx+1;
    $data[] = array_merge($datatmp, array('num'=>$ixx));     
}

Esta línea de código:

Código: [Seleccionar]
print_r("<pre>".$data."</p>");
Entonces necesito ver la salida de esa línea de código para ver cómo manejar el arreglo de mejor forma.
Mi sitio web:
---- IP para archivo hosts (todos mis subdominios):
190.150.9.244 archefire.org

Desconectado froilan

  • Trade Count: (0)
  • Sv Member
  • ***
  • Thank You
  • -Given: 3
  • -Receive: 2
  • Mensajes: 333
Re:ayuda php y la clase class.ezpdf.php
« Respuesta #4 : febrero 04, 2013, 11:00:24 pm »
igual sigue imprimiendome solo la tabla!

Desconectado ~

  • Trade Count: (0)
  • The Communiter-
  • *
  • Thank You
  • -Given: 0
  • -Receive: 156
  • Mensajes: 1408
    • Ciencia de Computación, OSes y Herramientas
Re:ayuda php y la clase class.ezpdf.php
« Respuesta #5 : febrero 04, 2013, 11:37:14 pm »
Había que dejar el código como al principio y eliminar lo que dije al principio, y esa línea del segundo post era porque quería ver qué contiene exactamente el arreglo de datos para ver si es cuestión de insertar los datos de no estar presentes.

Con las últimas 2 filas para los resultados de totales grandes parece que es solo de agregar filas con 2 columnas, pero hay que estudiar las funciones o experimentar. Pero se necesita saber qué tiene el arreglo de datos y cómo usar las funciones de ezPDF.
Mi sitio web:
---- IP para archivo hosts (todos mis subdominios):
190.150.9.244 archefire.org

Desconectado froilan

  • Trade Count: (0)
  • Sv Member
  • ***
  • Thank You
  • -Given: 3
  • -Receive: 2
  • Mensajes: 333
Re:ayuda php y la clase class.ezpdf.php
« Respuesta #6 : febrero 05, 2013, 12:07:08 am »
umm! acabo de intentar asi 

Código: [Seleccionar]
while($datatmp = mysql_fetch_assoc($resPres)){
    $ixx = $ixx+1;
    $data[] = array_merge($datatmp, array('num'=>$ixx));     
}


print_r("<pre>".$data."</p>");

y tambien intente asi

Código: [Seleccionar]
while($datatmp = mysql_fetch_assoc($resPres)){
    $ixx = $ixx+1;
    $data[] = array_merge($datatmp, array('num'=>$ixx)); 

print_r("<pre>".$data."</p>");
}
   

igual solo imprime la tabla!  :cry:



Desconectado ~

  • Trade Count: (0)
  • The Communiter-
  • *
  • Thank You
  • -Given: 0
  • -Receive: 156
  • Mensajes: 1408
    • Ciencia de Computación, OSes y Herramientas
Re:ayuda php y la clase class.ezpdf.php
« Respuesta #7 : febrero 05, 2013, 06:47:02 am »
Ya descifré lo que contiene el arreglo, y aquí está una muestra del nuevo PDF corriendo:

Clic en la imagen para ver: PDF con Todos los TotalesClic en la imagen para ver: PDF con Todos los Totales


El código con datos estáticos (sin SQL):
Código: [Seleccionar]
<?php

  date_default_timezone_set
("America/El_Salvador");


//DomPDF

require_once('class.ezpdf.php');
$pdf =& new Cezpdf('LETTER');
$pdf->selectFont('../fonts/courier.afm');
$pdf->ezSetCmMargins(1,1,1.5,1.5);


$ixx 0;
$totalvalor=0;
$total=0;
$totaliva=0;

$data=array(
            array(
                  
'codigo'=>909542,
                  
'nombre'=>"Canal",
                  
'tipo'=>"Alto",
                  
'diametro'=>"3",
                  
'precio'=>"20.00",
                  
'cantidad'=>381,
                  
'total'=>''
                 
),
            array(
                  
'codigo'=>909542,
                  
'nombre'=>"Canal PVC liso alto caudal",
                  
'tipo'=>"Alto caudal",
                  
'diametro'=>"3 mts.",
                  
'precio'=>"20.00",
                  
'cantidad'=>381,
                  
'total'=>''
                 
),
            array(
                  
'codigo'=>909544,
                  
'nombre'=>"Canal PVC Alto Caudal",
                  
'tipo'=>"Alto Caudal",
                  
'diametro'=>"6 mts.",
                  
'precio'=>"40.00",
                  
'cantidad'=>129,
                  
'total'=>''
                 
),
            array(
                  
'codigo'=>914011,
                  
'nombre'=>"Tapa Izquierda de PVC con Empaque",
                  
'tipo'=>"Canal PVC Español J-R",
                  
'diametro'=>'3 "',
                  
'precio'=>"2.54",
                  
'cantidad'=>2,
                  
'total'=>''
                 
),
            array(
                  
'codigo'=>915535,
                  
'nombre'=>"Unión PVC Cementada",
                  
'tipo'=>"Canal PVC Colonial Junta Cementada",
                  
'diametro'=>'3 "',
                  
'precio'=>"1.79",
                  
'cantidad'=>12,
                  
'total'=>''
                 
),
            array(
                  
'codigo'=>914876,
                  
'nombre'=>"Bajantes Redondos Blancos 3 mt",
                  
'tipo'=>"Accesorio de Canal PVC",
                  
'diametro'=>'3 "',
                  
'precio'=>"14.56",
                  
'cantidad'=>246,
                  
'total'=>''
                 
),
            array(
                  
'codigo'=>913996,
                  
'nombre'=>"Tapa Derecha PVC con Empaque",
                  
'tipo'=>"Canal PVC Español J-R",
                  
'diametro'=>'3 "',
                  
'precio'=>"2.54",
                  
'cantidad'=>1,
                  
'total'=>''
                 
),
            array(
                  
'codigo'=>909543,
                  
'nombre'=>"Canal PVC Alto Caudal",
                  
'tipo'=>"Alto Caudal",
                  
'diametro'=>"4 mts.",
                  
'precio'=>"26.61",
                  
'cantidad'=>246,
                  
'total'=>''
                 
),
            array(
                  
'codigo'=>909546,
                  
'nombre'=>"Canal PVC Colonial",
                  
'tipo'=>"Canal PVC Colonial Junta Cementada",
                  
'diametro'=>"3 mts.",
                  
'precio'=>"26.61",
                  
'cantidad'=>1,
                  
'total'=>''
                 
)
           );


$cc=count($data);
for(
$y=0$y<$cc$y++)
{
 
$data[$y]['total']=$data[$y]['precio']*$data[$y]['cantidad'];
 
$totalvalor+=$data[$y]['total'];
 
$totaliva+=$data[$y]['total']*0.13;
}




$totales=array(
               array(
                     
'concepto'=>"El Resultado de su Cotización sin IVA",
                     
'total'=>$totalvalor
                    
),
               array(
                     
'concepto'=>"El Resultado de su Cotización con IVA",
                     
'total'=>$totalvalor+$totaliva
                    
)
              );


$totalestitulos=array(
                      
'concepto'=>'Concepto',
                      
'total'=>'Total'
                     
);




$titles = array(
                 
                
'codigo'=>'<b>Código</b>',
                
'nombre'=>'<b>Nombre</b>',
                
'tipo'=>'<b>Tipo</b>',
                
'diametro'=>'<b>Medida</b>',
                
'precio'=>'<b>Precio</b>',
                
'cantidad'=>'<b>Cantidad</b>',
                
'total'=>'<b>Total</b>',
            );
             
             
$options = array(
                
'shadeCol'=>array(0.9,0.9,0.9),
                
'xOrientation'=>'center',
                
'width'=>580
            
);

$optotal = array(
                
'shadeCol'=>array(0.9,0.9,0.9),
                
'xOrientation'=>'center',
                
'width'=>580,
                
'cols'=>array(
                              
'concepto'=>array('justification'=>'left','width'=>500),
                              
'total'=>array('justification'=>'left','width'=>80)
                             )
            );


$txttit "<b>AMANCO</b>\n";


$pdf->ezimage("AMANCO.jpg",0,150,'none','center');
$pdf->ezText($txttit12);
$pdf->ezTable($data$titles''$options);

$pdf->ezText("\n"1);
$pdf->ezTable($totales$totalestitulos''$optotal);


$pdf->ezText("\n\n\n"10);
$pdf->ezText("<b>Fecha:</b> ".date("d/m/Y"), 10);
$pdf->ezText("<b>Hora:</b> ".date("H:i:s")."\n\n"10);
ob_end_clean();
$pdf->ezStream();
?>


El código que usa SQL (tal vez tenga errores de sintaxis, pero simples de corregir):
Código: [Seleccionar]
<?php

  date_default_timezone_set
("America/El_Salvador");


//DomPDF

require_once('class.ezpdf.php');
include (
'conexionmysql.php');
$pdf =& new Cezpdf('LETTER');
$pdf->selectFont('../fonts/courier.afm');
$pdf->ezSetCmMargins(1,1,1.5,1.5);

    
$direccion1="localhost";
    
$usuario1="root";
    
$password1="";
    
$basededatos1="amanco";

conectar_mysql("$direccion1","$usuario1","$password1","$basededatos1");


$Presta "SELECT * FROM cotiza1";
$resPres mysql_query($Presta);
$total_presta mysql_num_rows($resPres);


$ixx 0;
$totalvalor=0;
$total=0;
$totaliva=0;

while(
$datatmp mysql_fetch_assoc($resPres)){
    
$ixx $ixx+1;
    
$data[] = array_merge($datatmp, array('num'=>$ixx));     
}

$cc=count($data);
for(
$y=0$y<$cc$y++)
{
 
$data[$y]['total']=$data[$y]['precio']*$data[$y]['cantidad'];
 
$totalvalor+=$data[$y]['total'];
 
$totaliva+=$data[$y]['total']*0.13;
}




$totales=array(
               array(
                     
'concepto'=>"El Resultado de su Cotización sin IVA",
                     
'total'=>$totalvalor
                    
),
               array(
                     
'concepto'=>"El Resultado de su Cotización con IVA",
                     
'total'=>$totalvalor+$totaliva
                    
)
              );


$totalestitulos=array(
                      
'concepto'=>'Concepto',
                      
'total'=>'Total'
                     
);







$titles = array(
                 
                
'codigo'=>'<b>codigo</b>',
                
'nombre'=>'<b>nombre</b>',
                
'tipo'=>'<b>tipo</b>',
                
'diametro'=>'<b>medida</b>',
                
'precio'=>'<b>precio</b>',
                
'cantidad'=>'<b>cantidad</b>',
                
'total'=>'<b>total</b>',
            );
             
             
$options = array(
                
'shadeCol'=>array(0.9,0.9,0.9),
                
'xOrientation'=>'center',
                
'width'=>580
            
);

$optotal = array(
                
'shadeCol'=>array(0.9,0.9,0.9),
                
'xOrientation'=>'center',
                
'width'=>580,
                
'cols'=>array(
                              
'concepto'=>array('justification'=>'left','width'=>500),
                              
'total'=>array('justification'=>'left','width'=>80)
                             )
            );


$txttit "<b>AMANCO</b>\n";


$pdf->ezimage("AMANCO.jpg",0,150,'none','center');
$pdf->ezText($txttit12);
$pdf->ezTable($data$titles''$options);

$pdf->ezText("\n"1);
$pdf->ezTable($totales$totalestitulos''$optotal);


$pdf->ezText("\n\n\n"10);
$pdf->ezText("<b>Fecha:</b> ".date("d/m/Y"), 10);
$pdf->ezText("<b>Hora:</b> ".date("H:i:s")."\n\n"10);
ob_end_clean();
$pdf->ezStream();
?>


Follow members gave a thank to your post:
« Última Modificación: febrero 05, 2013, 08:13:02 am por ~ »
Mi sitio web:
---- IP para archivo hosts (todos mis subdominios):
190.150.9.244 archefire.org

Desconectado froilan

  • Trade Count: (0)
  • Sv Member
  • ***
  • Thank You
  • -Given: 3
  • -Receive: 2
  • Mensajes: 333
Re:ayuda php y la clase class.ezpdf.php
« Respuesta #8 : febrero 05, 2013, 11:40:12 am »
viejo salio perfecto!! muchas gracias!! bendiciones!