Tabla html en reporte pdf
Publicado por Pedro (7 intervenciones) el 21/01/2013 22:36:05
Saludos, tengo un problema, quiero mostrar un reporte pdf, ultilizo la libreria mpdf que fue la que mejor se adapto a mi por su capacidad para leer html, todo genial hasta la parte en que tuve que hacer una tabular con un for, alli dejo de reconocerme el codigo html y ya no sale nada. Lo imprimo con echo y si se muestra correctamente, sin embargo cuando lo pongo dentro del for deja de mostrar resultado alguno. Por favor alguien tiene idea de como hacer para que reconozca mi instruccion, tal vez alguna que otra libreria mejor?
PD: Adjunto el codigo fuente
---------CODE
PD: Adjunto el codigo fuente
---------CODE
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
<?php
//cadena de conexion
//seleccionar base de datos
$cabecera = "<center><span><b>Mi primer documento PDF dinámico con mPDF</b></span></center>";
$cuerpo = "<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>
<html xmlns='http://www.w3.org/1999/xhtml'>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=utf-8' />
<title>Documento sin título</title>
</head>
<body>
</body>
</html>";
$sql="declare @IdAnexo int
set @IdAnexo=311554
SELECT dbo.Documento.FechaEmision, dbo.DocumentoTipo.CodDocumentoTipo,
CASE WHEN Documento.IdDocumento = 0 THEN Documento.CodDocumento ELSE CASE WHEN Documento.IdDocumentoSerie <> 0 THEN DocumentoSerie.CodDocumentoSerie
+ '-' ELSE ISNULL(Documento.SerieDocumento + '-', '') END + Documento.CodDocumento END AS CodDocumento,
CASE WHEN IdAnexo_Emisor = 0 THEN NULL ELSE Anexo_Emisor.CodAnexoVenta END AS CodAnexo_Emisor,
CASE WHEN IdAnexo_Concesionario = 0 THEN NULL ELSE Anexo_Concesionario.CodAnexo END AS CodAnexo_Concesionario,
CASE WHEN dbo.Documento.IdAnexo_Concesionario <> 0 THEN Anexo_Concesionario.NomAnexo ELSE CASE WHEN dbo.Documento.IdAnexo_Emisor <>
0 THEN Anexo_Emisor.NomAnexo ELSE CASE WHEN dbo.Documento.Referencia IS NULL OR
dbo.Documento.Referencia = '' THEN dbo.DocumentoTipo.NomDocumentoTipo ELSE dbo.Documento.Referencia END END END AS Descripcion,
CASE WHEN dbo.DocumentoTipo.EsInverso = 1 THEN - dbo.funObtenerMontoRestanteDocumentoCuota(dbo.Documento.IdDocumento,
dbo.DocumentoCuota.NroCuota, dbo.CreditoPeriodo.FechaInicio) ELSE dbo.funObtenerMontoRestanteDocumentoCuota(dbo.Documento.IdDocumento,
dbo.DocumentoCuota.NroCuota, dbo.CreditoPeriodo.FechaInicio) END AS Importe,
CASE WHEN (dbo.DocumentoCuota.MontoCuota - dbo.DocumentoCuota.MontoCuotaCancelado)
= 0 THEN dbo.Documento.NroCuota - dbo.DocumentoCuota.NroCuota ELSE dbo.Documento.NroCuota - dbo.DocumentoCuota.NroCuota + 1 END AS NroCuota,
CASE WHEN dbo.DocumentoTipo.EsInverso = 1 THEN - (dbo.DocumentoCuota.MontoCuota - dbo.DocumentoCuota.MontoCuotaCancelado)
ELSE (dbo.DocumentoCuota.MontoCuota - dbo.DocumentoCuota.MontoCuotaCancelado) END AS MontoCuota, 1 AS Tipo,
dbo.Documento.FechaEmision AS FechaOrden
FROM dbo.Documento (NOLOCK) INNER JOIN
dbo.DocumentoCuota (NOLOCK) ON dbo.Documento.IdDocumento = dbo.DocumentoCuota.IdDocumento INNER JOIN
dbo.DocumentoTipo (NOLOCK) ON CASE WHEN Documento.IdDocumentoTipo = dbo.fneIdDocumentoTipo('TRDA') THEN Documento.IdDocumentoTipo_Referencia ELSE Documento.IdDocumentoTipo END = dbo.DocumentoTipo.IdDocumentoTipo INNER JOIN
dbo.DocumentoSerie (NOLOCK) ON dbo.Documento.IdDocumentoSerie = dbo.DocumentoSerie.IdDocumentoSerie INNER JOIN
dbo.Anexo Anexo_Concesionario (NOLOCK) ON dbo.Documento.IdAnexo_Concesionario = Anexo_Concesionario.IdAnexo INNER JOIN
dbo.Anexo Anexo_Emisor (NOLOCK) ON dbo.Documento.IdAnexo_Emisor = Anexo_Emisor.IdAnexo INNER JOIN
dbo.CreditoPeriodo (NOLOCK) ON dbo.Documento.FechaEmision < dbo.CreditoPeriodo.FechaInicio
INNER JOIN
dbo.DocumentoTipoFamiliaTD(NOLOCK) ON dbo.DocumentoTipo.IdDocumentoTipoFamilia = dbo.DocumentoTipoFamiliaTD.IdDocumentoTipoFamilia
WHERE (dbo.Documento.Total - dbo.Documento.MontoCancelado + dbo.DocumentoCuota.MontoCuota - dbo.DocumentoCuota.MontoCuotaCancelado <> 0) AND
(dbo.CreditoPeriodo.IdCreditoPeriodo = dbo.fneCreditoPeriodo(GETDATE(), 1)) AND (dbo.Documento.IdAnexo_ClienteProveedor = @IdAnexo) AND
(dbo.DocumentoCuota.FechaVencimiento BETWEEN dbo.CreditoPeriodo.FechaInicio AND dbo.CreditoPeriodo.FechaFin) AND (dbo.Documento.IdEstado not in (dbo.funObtenerEstado('CANCELADO') , dbo.funObtenerEstado('ANULADO'))) AND (dbo.DocumentoTipoFamiliaTD.CodDocumentoTipoFamilia IN ('OV' , 'CV', 'NV', 'CCL'))
UNION ALL
SELECT NULL AS FechaEmision, NULL AS CodDocumentoTipo, NULL AS CodDocumento, NULL AS CodAnexo_Emisor, NULL AS CodAnexo_Concesionario, NULL
AS Descripcion, NULL AS Importe, NULL AS NroCuota, NULL AS MontoCuota, 2 AS Tipo, FechaInicio AS FechaOrden
FROM dbo.CreditoPeriodo (NOLOCK)
WHERE (IdCreditoPeriodo = dbo.fneCreditoPeriodo(GETDATE(), 1))
UNION ALL
SELECT dbo.Documento.FechaEmision, dbo.DocumentoTipo.CodDocumentoTipo,
CASE WHEN Documento.IdDocumento = 0 THEN Documento.CodDocumento ELSE CASE WHEN Documento.IdDocumentoSerie <> 0 THEN DocumentoSerie.CodDocumentoSerie
+ '-' ELSE ISNULL(Documento.SerieDocumento + '-', '') END + Documento.CodDocumento END AS CodDocumento,
CASE WHEN IdAnexo_Emisor = 0 THEN NULL ELSE Anexo_Emisor.CodAnexoVenta END AS CodAnexo_Emisor,
CASE WHEN IdAnexo_Concesionario = 0 THEN NULL ELSE Anexo_Concesionario.CodAnexo END AS CodAnexo_Concesionario,
dbo.DocumentoProducto.Descripcion,
CASE WHEN dbo.DocumentoTipo.EsInverso = 1 THEN - fntDocumentoCuotaProducto_Importe.Importe ELSE fntDocumentoCuotaProducto_Importe.Importe
END AS Importe,
CASE WHEN dbo.DocumentoCuotaProducto.MontoCuota - dbo.DocumentoCuotaProducto.MontoCuotaCancelado = 0 THEN dbo.Documento.NroCuota - 1 ELSE
dbo.Documento.NroCuota END AS NroCuota,
CASE WHEN dbo.DocumentoTipo.EsInverso = 1 THEN - (dbo.DocumentoCuotaProducto.MontoCuota - dbo.DocumentoCuotaProducto.MontoCuotaCancelado)
ELSE (dbo.DocumentoCuotaProducto.MontoCuota - dbo.DocumentoCuotaProducto.MontoCuotaCancelado) END AS MontoCuota, 3 AS Tipo,
dbo.Documento.FechaEmision AS FechaOrden
FROM dbo.DocumentoProducto WITH (NOLOCK) INNER JOIN
dbo.Documento WITH (NOLOCK) INNER JOIN
dbo.DocumentoCuota WITH (NOLOCK) ON dbo.Documento.IdDocumento = dbo.DocumentoCuota.IdDocumento INNER JOIN
dbo.DocumentoTipo WITH (NOLOCK) ON CASE WHEN Documento.IdDocumentoTipo = dbo.fneIdDocumentoTipo('TRDA')
THEN Documento.IdDocumentoTipo_Referencia ELSE Documento.IdDocumentoTipo END = dbo.DocumentoTipo.IdDocumentoTipo INNER JOIN
dbo.DocumentoSerie WITH (NOLOCK) ON dbo.Documento.IdDocumentoSerie = dbo.DocumentoSerie.IdDocumentoSerie INNER JOIN
dbo.Anexo Anexo_Concesionario ON dbo.Documento.IdAnexo_Concesionario = Anexo_Concesionario.IdAnexo INNER JOIN
dbo.Anexo Anexo_Emisor ON dbo.Documento.IdAnexo_Emisor = Anexo_Emisor.IdAnexo INNER JOIN
dbo.DocumentoCuotaProducto WITH (NOLOCK) ON dbo.DocumentoCuota.IdDocumentoCuota = dbo.DocumentoCuotaProducto.IdDocumentoCuota ON
dbo.DocumentoProducto.IdDocumentoProducto = dbo.DocumentoCuotaProducto.IdDocumentoProducto INNER JOIN
dbo.fntDocumentoCuotaProducto_Importe(@IdAnexo) fntDocumentoCuotaProducto_Importe ON
dbo.DocumentoProducto.IdDocumentoProducto = fntDocumentoCuotaProducto_Importe.IdDocumentoProducto CROSS JOIN
dbo.CreditoPeriodo WITH (NOLOCK) INNER JOIN
dbo.DocumentoTipoFamiliaTD WITH (NOLOCK) ON
dbo.DocumentoTipo.IdDocumentoTipoFamilia = dbo.DocumentoTipoFamiliaTD.IdDocumentoTipoFamilia
WHERE (dbo.CreditoPeriodo.IdCreditoPeriodo = dbo.fneCreditoPeriodo(GETDATE(), 1)) AND (dbo.Documento.IdAnexo_ClienteProveedor = @Idanexo) AND
(dbo.Documento.FechaEmision BETWEEN dbo.CreditoPeriodo.FechaInicio AND dbo.CreditoPeriodo.FechaFin) AND (dbo.DocumentoCuota.NroCuota = 1)
AND (dbo.Documento.IdEstado NOT IN (dbo.funObtenerEstado('CANCELADO'), dbo.funObtenerEstado('ANULADO'))) AND
(dbo.DocumentoTipoFamiliaTD.CodDocumentoTipoFamilia IN ('OV', 'CV', 'NV', 'CCL')) AND
(fntDocumentoCuotaProducto_Importe.Importe + dbo.DocumentoCuotaProducto.MontoCuota - dbo.DocumentoCuotaProducto.MontoCuotaCancelado <> 0)
ORDER BY FechaOrden, Tipo, CodDocumento
";
$result= mssql_query($sql);
/* Desplegamos cada uno de los registros dentro de una tabla */
$cuerpo .= "<table width='785'>";
/*Priemro los encabezados*/
$cuerpo .= "<tr>
<td colspan='9' align='center'>DETALLE DE DOCUMENTOS DE VENTA</td></tr>
<tr> <td>Fecha</td>
<td>Nta. Venta</td>
<td>Tipo</td>
<td>PVenta</td>
<td>Conces</td>
<td>Descripcion</td>
<td>Importe</td>
<td>Ctas</td>
<td>Dscto Proyec</td>
</tr>";
/*Y ahora todos los registros */
for($i=1;$row2 = mysql_fetch_row($result);$i++){
$cuerpo .= "<tr>
<td>".$row2['FechaEmision']."</td>
<td>".$row2['CodDocumento']."</td>
<td>".$row2['CodDocumentoTipo']."</td>
<td>".$row2['CodAnexo_Emisor']."</td>
<td>".$row2['CodAnexo_Concesionario']."</td>
<td>".$row2['Descripcion']."</td>
<td>".$row2['Importe']."</td>
<td>".$row2['NroCuota']."</td>
<td>".$row2['MontoCuota']."</td>
</tr>";
}
$cuerpo .= "</table>";
/*
while($row2=mssql_fetch_array($result))
{
$cuerpo .= "<tr>
<td>".$row2['FechaEmision']."</td>
<td>".$row2['CodDocumento']."</td>
<td>".$row2['CodDocumentoTipo']."</td>
<td>".$row2['CodAnexo_Emisor']."</td>
<td>".$row2['CodAnexo_Concesionario']."</td>
<td>".$row2['Descripcion']."</td>
<td>".$row2['Importe']."</td>
<td>".$row2['NroCuota']."</td>
<td>".$row2['MontoCuota']."</td>
</tr>";
}
$cuerpo .= "</table>";
*/
echo $cuerpo;
include("mpdf/mpdf.php");
$mpdf=new mPDF('a4','a4','8');
$mpdf->SetMargins(1,1.5,2.5);
$mpdf->WriteHTML($cuerpo);
$mpdf->Output();
?>
Valora esta pregunta


0