PHP - formato de impresion con for o while

 
Vista:
sin imagen de perfil

formato de impresion con for o while

Publicado por Lrz (26 intervenciones) el 08/03/2017 19:19:28
Hola buen dia , estoy tratando de generar un reporte , por medio de php , basicamente son 2 tablas donde traigo los datos

de la tabla retensiones , imprime los datos correctamente , por medio de una libreria FPDF

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
$totalimporte=0;
$totaliva=0;
$totalisr=0;
$pdf->SetFont('Arial','',10);
$pdf->SetTextColor(3,3,3);//Coor del Texto Negro
while ($fila = $result->fetch_assoc())
{
	$pdf->Cell(55,7,($fila['proveedores']),0,0,'L');
 
	$pdf->Cell(45,7, utf8_decode($fila['concepto']),0,0,'L');
 
	$pdf->Cell(25,7,'$'.number_format (($fila['importe']),'2','.',',').'' ,0,0,'R');  // numer format , le da el formato en centenas miles y millones
	$pdf->Cell(25,7,'$'.number_format (($fila['iva']),'2','.',',').'',0,0,'R');
	$pdf->Cell(25,7,'$'.number_format (($fila['isr']),'2','.',',').'',0,0,'R');
	$pdf->Ln();
	$totalimporte= $totalimporte + ($fila['importe']);
	$totaliva = $totaliva + ($fila['iva']);
	$totalisr = $totalisr + ($fila['isr']);
 
}
$pdf->Ln();
$pdf->Ln();
$pdf->Ln();
$pdf->SetFont('Arial','B',10);
$pdf->Cell(20,7 ,"TOTALES",1,0,'L');
$pdf->SetX(110);
$pdf->SetFont('Arial','',12);
$pdf->Cell(35,10,'$ '.number_format (($totalimporte),'2','.',',').'' ,1,0,'L');
$pdf->Cell(30,10,'$ '. number_format (($totaliva),'2','.',',').'' ,1,0,'L');
$pdf->Cell(30,10,'$ '. number_format (($totalisr),'2','.',',').'' ,1,0,'L');
 
$pdf->Output();

pero necesito que esten acomodados por Proveedores , y mando llamar la tabla porque requiero su rfc y su curp , para que se impriman al inicio de cada listado , y generar el reporte ,
espero me halla explicado bien ,Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

formato de impresion con for o while

Publicado por Lrz (26 intervenciones) el 08/03/2017 20:00:55
He intentado realizarlo de esta manera pero no me carga nada ni me da error

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
$totalimporte=0;
$totaliva=0;
$totalisr=0;
$pdf->SetFont('Arial','',10);
$pdf->SetTextColor(3,3,3);//Coor del Texto Negro
for ($i=1; ;$i++){
	if ($nomprove == $prove_ret){
		$sqlx = "SELECT `id_proveedor`, `proveedores`, `rfc`, `direccion`, `curp` FROM `proveedores` WHERE id_proveedor=$i";
		$resultx = $mysqli->query($sqlx);
		$extraidox= mysqli_fetch_array($resultx);
		$nomprovex = $extraidox['proveedores'];
		$rfcprovex = $extraidox['rfc'];
		$cupr_provex = $extraidox['curp'];
 
		$pdf->Cell(75,7, $nomprovex,0,0,'L');
		$pdf->Cell(50,7, $rfcprovex,0,0,'L');
		$pdf->Cell(50,7, $cupr_provex,0,0,'L');
 
		while ($fila = $result->fetch_assoc())
				{
				$pdf->Cell(45,7, utf8_decode($fila['concepto']),0,0,'L');
				$pdf->Cell(25,7, utf8_decode($fila['periodo']),0,0,'L');
				$pdf->Cell(25,7,'$'.number_format (($fila['importe']),'2','.',',').'' ,0,0,'R');  // numer format , le da el formato en centenas miles y millones
				$pdf->Cell(25,7,'$'.number_format (($fila['iva']),'2','.',',').'',0,0,'R');
				$pdf->Cell(25,7,'$'.number_format (($fila['isr']),'2','.',',').'',0,0,'R');
				$pdf->Ln();
				$totalimporte= $totalimporte + ($fila['importe']);
				$totaliva = $totaliva + ($fila['iva']);
				$totalisr = $totalisr + ($fila['isr']);
 
 
				}
	}
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 191
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

formato de impresion con for o while

Publicado por Brayan (76 intervenciones) el 09/03/2017 15:33:53
En ese codigo en el ciclo for te falta una condicion
1
for($i=1; condicion faltante; $i=++)

Sin embargo no creo te funcione mucho, te recomiendo que en la consulta lo ordenes segun deseas con la sentencia ORDER BY, y te los va a ordenar segun la columna que tu escojas, y puedes usar varias columnas ej:

1
$sqlx = "SELECT `id_proveedor`, `proveedores`, `rfc`, `direccion`, `curp` FROM `proveedores` WHERE id_proveedor=$ ORDER BY id_proveedor, rfc ASC";

Y alli deberia halarte por ordenar de menor a mayor los id, y luego si hay un id igual(cosa que no aplica porq los id son diferentes) luego ordenaria por RFC.

NOTA: la consulta que haces no esta funcionando porque no se cumple el for... el for tiene una estructura y es la siguiente

for($variable=inicio,$variable y su condicion;$variable y accion)

Ejemplo en codigo:

1
for($i=0 ; $i>10; $i++)

En ese codigo le decimos para la variable $i que vale 0, mientras $i sea menor que 10, $i se va a ir incrementando.

Por lo que veo en tu codigo i debe incrementarse hasta el ultimo id has una consulta antes del for que diga lo siguiente:

1
$sql="select id_proveedor from proveedores Order By Desc Limit 1";

con eso obtendras el ultimo valor registrado y luego tu for deberias componerlos asi

1
for($i=1; $i<=$sql;$i++)

y con eso deberia funcionar
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

formato de impresion con for o while

Publicado por Lrz (26 intervenciones) el 09/03/2017 20:29:34
Gracias por tu Respuesta intentare con esa condicion , de hecho no se la habia colocado porque no tenia un resultado como tal pero supongo que con el query si lo haria , mira es que lo que quiero hacer es que en mi pdf , se imprima de esta maner


en la primer linea iria el rfc y curp y nombre del proveedor ,que vienen de la tabla de proveedores ,
y en la siguiente linea todos los registros con respecto a ese proveedor de la lista de retensiones, con su iva , importe ,isr , pero quiero que se me imprima asi con todos los proveedores que tengo

algo asi ;



CURP RFC PROVEEDOR1
registro 1----------------------------
registro 2--------------------------
registro 3---------------------------
CURP RFC PROVEEDOR2
registro 1----------------------------
registro 2--------------------------
registro 3---------------------------
registro 4-------------------------
registro 5-------------------------
CURP RFC PROVEEDOR3
registro 1----------------------------
registro 2--------------------------
..............
..........
...

Asi con todos mis proveedores en este caso el query me lo manda por año (ciclo) , no se si me explique bien

aun asi con esta condicion
1
$nomprove == $prove_ret
Lo que queria era indicarle que cuando el nombre del Proveeedor de la tabla retenciones fuera igual al proveedor de la tabla proveedores, y el contador era con respecto al id , del proveedor
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

formato de impresion con for o while

Publicado por Lrz (26 intervenciones) el 09/03/2017 20:41:48
trate de intentarlo de esa manera

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
$totalimporte=0;
$totaliva=0;
$totalisr=0;
$pdf->SetFont('Arial','',10);
$pdf->SetTextColor(3,3,3);//Coor del Texto Negro
$sqlx="select id_proveedor from proveedores Order By Desc Limit 1";
for ($i=1; $i<=$sqlx;$i++){
	$resultx = $mysqli->query($sqlx);
		$extraidox= mysqli_fetch_array($resultx);
		$nomprovex = $extraidox['proveedores'];
		$rfcprovex = $extraidox['rfc'];
		$cupr_provex = $extraidox['curp'];
	if ($nomprove == $prove_ret){
 
 
 
		$pdf->Cell(75,7, $nomprovex,0,0,'L');
		$pdf->Cell(50,7, $rfcprovex,0,0,'L');
		$pdf->Cell(50,7, $cupr_provex,0,0,'L');
 
		while ($fila = $result->fetch_assoc())
				{
				$pdf->Cell(45,7, utf8_decode($fila['concepto']),0,0,'L');
				$pdf->Cell(25,7, utf8_decode($fila['periodo']),0,0,'L');
				$pdf->Cell(25,7,'$'.number_format (($fila['importe']),'2','.',',').'' ,0,0,'R');  // numer format , le da el formato en centenas miles y millones
				$pdf->Cell(25,7,'$'.number_format (($fila['iva']),'2','.',',').'',0,0,'R');
				$pdf->Cell(25,7,'$'.number_format (($fila['isr']),'2','.',',').'',0,0,'R');
				$pdf->Ln();
				$totalimporte= $totalimporte + ($fila['importe']);
				$totaliva = $totaliva + ($fila['iva']);
				$totalisr = $totalisr + ($fila['isr']);
 
 
				}
	}
}
$pdf->Ln();
$pdf->Ln();
$pdf->Ln();
$pdf->SetFont('Arial','B',10);
$pdf->Cell(20,7 ,"TOTALES",1,0,'L');
$pdf->SetX(110);
$pdf->SetFont('Arial','',12);
$pdf->Cell(35,10,'$ '.number_format (($totalimporte),'2','.',',').'' ,1,0,'L');
$pdf->Cell(30,10,'$ '. number_format (($totaliva),'2','.',',').'' ,1,0,'L');
$pdf->Cell(30,10,'$ '. number_format (($totalisr),'2','.',',').'' ,1,0,'L');
 
$pdf->Output();//Salida del navegador


No me da errrores pero me lo genera vacio
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar