Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > PHP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-04-2008
lakers lakers is offline
Miembro
 
Registrado: abr 2007
Posts: 47
Poder: 0
lakers Va por buen camino
¿ llamar a la EZnewpage() de la clase R&OS ¿

hola
muy wenas a td@s.
haber si me podéis hechar la mano en este tema yak me ase falta urgentemente.
pues mi intención de generar nuevos informes(facturas en pdf) a cada vez que se cambie
el nombre del cliente,con el total de compra de éste último.estuve mirando manual R&OS precisamente viene la función EZnewpage() para generar
nuevas páginas,pero no viene ningun ejemplo,ni cómo usarla ni para para llamarla¿
este es el script que hice
Código PHP:
$c=mysql_connect("localhost","","hosting") or die(" problemas al establecer la conexión");
mysql_select_db("pruebas") or die ("problemas al seleccionar la base de datos");
$consulta="select cliente.nombre as nombre,
producto.descrip,
producto.precio,
sum(compra.cantidad),
sum(producto.precio * compra.cantidad) AS total 
from cliente,producto,compra 
where compra.id_cliente = cliente.id 
and compra.id_prod = producto.id
group by cliente.nombre,
producto.descrip,
producto.precio"
;
$r=mysql_query($consulta,$c) or die ("error al ejecutar la query ");
$cont=0;
$num_res=mysql_num_rows($r);
 
$row=mysql_fetch_array($r);
/*aqui lo que hago es el resultado del query que son 5 columnas 
guardo solamente  lo que es la primera columna que es el nombre
de cada cliente y lo meto en un array para que posteriormente 
mediante do while puedo recorrerlo e ir preguntando si el 
nombre es distinto o no 
*/ 
$nombre $row["nombre"];
$total 0;
do {
/*lo que me falta para implementar
k nosé cómo meterle mano entonces una vez 
que se cambia el nombre habrá que mostrar un nuevo pdf con el total 
de su compra asi sucesivmente*/ 
if($nombre != $row["nombre"]) {
echo 
"Salto de pagina pdf-- "
$total 0
$nombre $row["nombre"];

echo 
$nombre." -- ";
$total++;
echo 
$total;
} while(
$row=mysql_fetch_array($r));
mysql_free_result($r); 
mysql_close($c); 
exit; 
maestro lucasarts y compañia si tenéis otra solución alternativa o habéis utilizado dicha función estaré agradecido si me la podéis facilitar.
espero vuestra colaboración.
saludos
Responder Con Cita
  #2  
Antiguo 17-04-2008
Avatar de lucasarts_18
lucasarts_18 lucasarts_18 is offline
Miembro
 
Registrado: mar 2005
Ubicación: Villa Alemana,Chile
Posts: 1.087
Poder: 21
lucasarts_18 Va por buen camino
Hola:

Tengo un ejemplo completo de algo similar a lo que quieres, el reporte que tengo lo que hace es que cuando cambia el número de un registro me suma los totales y me crea una nueva página, sim embargo, está implementada con las librerias FPDF.

Si quereís echar un vistazo al algoritmo en sí (se trata de darse cuenta cuando el cambio de registro se produce) y de esta forma crear una nueva página. Puedes sacar la idea de ahí, estudiar su código, tratar de asimilarlo (esto puede ser un poco complejo, entender código de terceros siempre es complicado ), en fin lo demás depende de ti, quizás utilizar las mismas librerias o migrar la lógica a la librería que tienes tú.

Por ahora no lo tengo a mano, a la noche te subo el código fuente completo de ese reporte.

Hasta Luego .-
__________________
No todo es como parece ser...
Responder Con Cita
  #3  
Antiguo 18-04-2008
lakers lakers is offline
Miembro
 
Registrado: abr 2007
Posts: 47
Poder: 0
lakers Va por buen camino
muchisima gracias maestro lucasarts
si la libreria fpdf me permite ejecutar lo que quiero puedo cambiar al fpdf
me da = io ,solamente lo que quiero que me funciona el salto de página a cada vez que se cambie el nombre con el total de compra de cada uno.
muchisima gracias
saludos
Responder Con Cita
  #4  
Antiguo 18-04-2008
Avatar de lucasarts_18
lucasarts_18 lucasarts_18 is offline
Miembro
 
Registrado: mar 2005
Ubicación: Villa Alemana,Chile
Posts: 1.087
Poder: 21
lucasarts_18 Va por buen camino
Hola:

Aquí tienes el código:

Código PHP:
<?php
/*
* @Autor: Aarón García A
* @Fecha: 26 de Febrero de 2008
* @Descripción: Permite mostrar reporte detallado de cajones.
*/

session_start();
include (
'../../../libs_php/fpdf/fpdf.php');
include (
'../../includes/funciones.php');
include (
'../../includes/informes.inc.php');


class 
PDF extends FPDF {
    function 
Footer() {
       
//Go to 1.5 cm from bottom
       
$this->SetY(-15);
       
//Select Arial italic 8
       
$this->SetFont('Arial','I',8);
       
//Print centered page number
       
$this->Cell(0,10,'Página '.$this->PageNo(),0,0,'C');
}
}

$pdf = new PDF();
$pdf->AddPage();


$despNum $_GET['despnum'];

$cajones listarReporteCajonesDetallado($despNum);
$nroCajon = -999;
$i 0;

for (
$j 0$j count($cajones); $j++){

    if (
$j == 0) {
       
$pdf->SetFont('Arial','B',10);
        
$pdf->Text(11,30,'Número de Despacho: ');
      
$pdf->Text(120,30,'Fecha de Despacho: ');

        
$pdf->SetFont('Arial','',10);
      
$pdf->Text(50,30,$cajones[$j]['DespNum']);
      
$pdf->Text(155,30,$cajones[$j]['DespFec']);
    }

    
//si cambia de cajón y no es el primer registro genero resumen de cajón
    //en caso contrario sigo llenando los datos del producto que contiene el cajón.
    
if ($cajones[$j]['EmbNumCaja'] <> $nroCajon) {
        if (
$j 0){
            
$pdf->SetFont('Arial','B',8);
            
$pdf->Ln(10);

            
$idxAnt $j 1;

            
$pdf->Cell(40,5,'NUMERO CAJON:',0);
            
$pdf->Cell(15,5,$nroCajon,0,0,'R');
            
$pdf->Ln(5);
            
$pdf->Cell(40,5,'COSTO CAJON EXTERNO: $',0);
            
$pdf->Cell(15,5,convertirMiles($cajones[$idxAnt]['CostoCajonExterno']),0,0,'R');
            
$pdf->Ln(5);
            
$pdf->Cell(40,5,'COSTO CAJON INTERNO : $',0);
            
$pdf->Cell(15,5,convertirMiles($cajones[$idxAnt]['CostoCajonInterno']),0,0,'R');
            
$pdf->AddPage();

        }


        
$nroCajon $cajones[$j]['EmbNumCaja'];

         
$pdf->SetFont('Arial','B',10);
         
$pdf->Text(11,35,'Número de Cajón: ');
         
$pdf->Text(11,45,'Fecha Cajón: ');
         
$pdf->Text(11,55,'Nombre: ');
         
$pdf->Text(100,55,'Rut: ');
         
$pdf->Text(11,60,'Dirección:');
         
$pdf->Text(100,60,'Ciudad:');
         
$pdf->SetFont('Arial','',10);

         
$pdf->Text(42,35,$cajones[$j]['EmbNumCaja']);
         
$pdf->Text(35,45,$cajones[$j]['EmbFec']);
         
$pdf->Text(30,55,$cajones[$j]['ClieNom']);
         
$pdf->Text(110,55,$cajones[$j]['ClieRut']);
         
$pdf->Text(30,60,$cajones[$j]['ClieDir']);
         
$pdf->Text(115,60,$cajones[$j]['ClieCiu']);
         
$pdf->Ln(70);

         
$pdf->SetFont('Arial','B',10);

        
$pdf->Cell(15,5,'Código',0);
        
$pdf->Cell(80,5,'Descripción',0);
        
$pdf->Cell(20,5,'Cantidad',0);
        
$pdf->Cell(20,5,'Factor',0);
        
$pdf->Cell(15,5,'Subt.',0);
        
$pdf->Cell(15,5,'Costo',0);
        
$pdf->Cell(15,5,'C.Flete',0);

        
$pdf->Line(5,85,200,85);
        
$pdf->Ln(7);
        
$pdf->SetFont('Arial','',8);

        
$pdf->Cell(15,5,$cajones[$j]['ProdCod'],0);
        
$pdf->Cell(80,5,$cajones[$j]['ProdNom'],0);
        
$pdf->Cell(17,5,$cajones[$j]['Det_EmbProdCant'],0,0,'R');
        
$pdf->Cell(20,5,$cajones[$j]['Det_EmbFactor'],0,0,'C');
        
$pdf->Cell(15,5,'',0);
        
$pdf->Cell(15,5,'',0);
        
$pdf->Cell(15,5,'',0);

    }else{
        
$pdf->Ln(5);
        
$pdf->Cell(15,5,$cajones[$j]['ProdCod'],0);
        
$pdf->Cell(80,5,$cajones[$j]['ProdNom'],0);
        
$pdf->Cell(17,5,$cajones[$j]['Det_EmbProdCant'],0,0,'R');
        
$pdf->Cell(20,5,$cajones[$j]['Det_EmbFactor'],0,0,'C');
        
$pdf->Cell(15,5,'',0);
        
$pdf->Cell(15,5,'',0);
        
$pdf->Cell(15,5,'',0);
    }

    
$i $j;
}



$pdf->SetFont('Arial','B',8);
$pdf->Ln(10);

$pdf->Cell(40,5,'NUMERO CAJON:',0);
$pdf->Cell(15,5,$cajones[$i]['EmbNumCaja'],0,0,'R');
$pdf->Ln(5);
$pdf->Cell(40,5,'COSTO CAJON EXTERNO: $',0);
$pdf->Cell(15,5,convertirMiles($cajones[$i]['CostoCajonExterno']),0,0,'R');
$pdf->Ln(5);
$pdf->Cell(40,5,'COSTO CAJON INTERNO : $',0);
$pdf->Cell(15,5,convertirMiles($cajones[$i]['CostoCajonInterno']),0,0,'R');



$pdf->Output();

?>
Hay que masticarlo su resto, pero ese reporte hace salto de página con la instrucción $pdf->AddPage();

Hasta Luego .-
__________________
No todo es como parece ser...
Responder Con Cita
  #5  
Antiguo 18-04-2008
lakers lakers is offline
Miembro
 
Registrado: abr 2007
Posts: 47
Poder: 0
lakers Va por buen camino
gracias lucasarts por tu script,
intentraré adecuarlo con lo que tengo
saludos
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Clase jakuna OOP 2 30-08-2007 21:50:35
Necesito llamar a métodos de clases "hija" desde su clase "padre" Flecha OOP 17 20-04-2007 00:03:53
llamar a una clase desde otra unit Makiley Varios 2 02-02-2006 17:55:12
...la clase... Jure Humor 0 27-07-2004 20:00:47
¿Cómo puedo llamar al método heredado de una clase que no es el ancestro directo? sarackganda OOP 4 15-12-2003 22:19:49


La franja horaria es GMT +2. Ahora son las 15:20:02.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi