Problemas en replica de reporte
Publicado por Gastòn (4 intervenciones) el 12/05/2017 16:11:19
Problema al generar un reporte con tabala dinamica
Hola tengo un problema con el siguiente código:
El problema que me genera es que el campo que debe aparecer al final aveces aparece al principio y aveces no aparece, osea, no solo aparece y desaparece al recargar la pagina sino que aparece donde no debe o.O
quien pueda darme una mano con esto se lo voy a agradecer.
Explico un poco:
sql es un String con la query a ejecutar, esta funciona correctamente y retorna los registros que debo utilizar en el orden correcto, ya que lo probé solo y además es de un reporte hecho crystal reports y allí funciona bien (como podrán deducir mi tarea es replicar el reporte de crystal en JSP)
Les dejo el JSP(le saque datos sensibles por que pertenece a la empresa donde trabajo):
Hola tengo un problema con el siguiente código:
El problema que me genera es que el campo que debe aparecer al final aveces aparece al principio y aveces no aparece, osea, no solo aparece y desaparece al recargar la pagina sino que aparece donde no debe o.O
quien pueda darme una mano con esto se lo voy a agradecer.
Explico un poco:
sql es un String con la query a ejecutar, esta funciona correctamente y retorna los registros que debo utilizar en el orden correcto, ya que lo probé solo y además es de un reporte hecho crystal reports y allí funciona bien (como podrán deducir mi tarea es replicar el reporte de crystal en JSP)
Les dejo el JSP(le saque datos sensibles por que pertenece a la empresa donde trabajo):
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
PreparedStatement pstm = connection.prepareStatement(sql);
ResultSet rs = pstm.executeQuery();
%>
<table style="width: 600px; margin: auto" class="table table-striped">
<thead>
<tr>
<th style="text-align: center">Periodo</th>
<th style="text-align: center">Afiliados</th>
<th style="text-align: right">Aportes</th>
<th style="text-align: right">Dif.</th>
<th style="text-align: right">Aportes en término</th>
<th style="text-align: right">Dif.</th>
<th style="text-align: right">Importe</th>
</tr>
</thead>
<tbody>
<%
while (rs.next()) {
String periodoBD = rs.getString("dia").trim() != null ? new SimpleDateFormat("yyyy-MM").format(rs.getDate("dia")) : "";
int afiliado = rs.getString("afiliados") != null ? rs.getInt("afiliados") : 0;
int aporte = rs.getString("aportes") != null ? rs.getInt("aportes") : 0;
Date pago = rs.getString("pago") != null ? formatoBD.parse(new SimpleDateFormat("dd/MM/yyyy").format(rs.getDate("pago"))) : null;
float importe = rs.getString("importe") != null ? rs.getFloat("importe") : 0;
Date Dperiodo = rs.getString("periodo") != null ? formatoBD.parse(new SimpleDateFormat("dd/MM/yyyy").format(rs.getDate("periodo"))) : null;
System.out.println(periodoBD);
{
if (periodo == null) {
periodo = periodoBD;
pasar = 0;
} else if (!periodo.equals(periodoBD)) {
periodoAMostrar = periodo;
periodo = periodoBD;
pasar = 1;
if (pasar == 1) {
dif = afil - aportes;
dif2 = afil - aportesEnTermino;
totalAfiliados += afil;
totalAportes += aportes;
totalEnTermino += aportesEnTermino;
totalImporte += ImportePeriodo;
afiliadosPeriodo = afil;
aportesPeriodo = aportes;
aportesEnTerminoPeriodo = aportesEnTermino;
idAlta = -1;
nroAfiliado = -1;
aportesEnTermino = 0;
ImportePeriodo = 0;
afil = 0;
aportes = 0;
alta = 0;
}
}
idAlta = afiliado;
nroAfiliado = aporte;
if (idAlta != 0) {
afil++;
}
if (nroAfiliado != 0 && nroAfiliado != -1) {
aportes++;
if (pago != null) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(pago); // Configuramos la fecha que se recibe
calendar.add(Calendar.DAY_OF_YEAR, -150); // numero de días a añadir, o restar en caso ser negativo el segundo parametro
Date fecha = calendar.getTime(); // Devuelve el objeto Date con los nuevos días añadidos
if (fecha.getTime() < Dperiodo.getTime()) {
aportesEnTermino++;
}
}
}
ImportePeriodo += importe;
}
%>
<%
if (pasar == 1) {
%>
<tr>
<td style="text-align: center"><%= periodoAMostrar%></td>
<td style="text-align: center"><%= afiliadosPeriodo%></td>
<td style="text-align: center"><%= aportesPeriodo%></td>
<td style="text-align: center"><%= dif%></td>
<td style="text-align: center"><%= aportesEnTerminoPeriodo%></td>
<td style="text-align: center"><%= dif2%></td>
<td style="text-align: center"><%= ImportePeriodo%></td>
</tr>
<%
aportesEnTerminoPeriodo = aportesPeriodo = afiliadosPeriodo = 0;
periodo = periodoBD;
pasar = 0;
dif = 0;
dif2 = 0;
}
}
totalDif = totalAfiliados - totalAportes;
totalDif2 = totalAfiliados - totalEnTermino;
rs.close();
pstm.close();
%>
</tbody>
<tfoot>
<tr style="border-top: 1px solid black;background-color: silver" >
<td style="text-align: center"></td>
<td style="text-align: center"><%= totalAfiliados%></td>
<td style="text-align: center"><%= totalAportes%></td>
<td style="text-align: center"><%= totalDif%></td>
<td style="text-align: center"><%= totalEnTermino%></td>
<td style="text-align: center"><%= totalDif2%></td>
<td style="text-align: center"><%= totalImporte%></td>
</tr>
</tfoot>
<%
}
} catch (Exception e) {
out.println("<font color='red'>" + e.getMessage() + "</font>");
} finally {
if (connection != null && !connection.isClosed()) {
connection.close();
}
}
%>
</table>
</div>
</body>
</html>
Valora esta pregunta
0