JSP (Java Server Page) - Problemas en replica de reporte

 
Vista:
sin imagen de perfil
Val: 7
Ha mantenido su posición en JSP (Java Server Page) (en relación al último mes)
Gráfica de JSP (Java Server Page)

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):

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&eacute;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>
Captura-de-pantalla-2017-05-12-10.58.16-copia
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
Imágen de perfil de enrique
Val: 11
Ha mantenido su posición en JSP (Java Server Page) (en relación al último mes)
Gráfica de JSP (Java Server Page)

Problemas en replica de reporte

Publicado por enrique (6 intervenciones) el 12/05/2017 17:03:46
como esta tu consulta?, hiciste un order by, yo uso algo similar
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: 7
Ha mantenido su posición en JSP (Java Server Page) (en relación al último mes)
Gráfica de JSP (Java Server Page)

Problemas en replica de reporte

Publicado por Gastòn (4 intervenciones) el 12/05/2017 17:32:28
Sip, en la consulta uso un order by.
Saludos
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
Imágen de perfil de enrique
Val: 11
Ha mantenido su posición en JSP (Java Server Page) (en relación al último mes)
Gráfica de JSP (Java Server Page)

Problemas en replica de reporte

Publicado por enrique (6 intervenciones) el 12/05/2017 18:09:14
me puedes mostrar tu consulta ?
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: 7
Ha mantenido su posición en JSP (Java Server Page) (en relación al último mes)
Gráfica de JSP (Java Server Page)

Problemas en replica de reporte

Publicado por Gastòn (4 intervenciones) el 12/05/2017 18:56:09
Nop, por que como te digo es info sensible de la empresa...
¿Que es lo que necesitas ver? quiza pueda ayudarte
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: 7
Ha mantenido su posición en JSP (Java Server Page) (en relación al último mes)
Gráfica de JSP (Java Server Page)

Problemas en replica de reporte

Publicado por Gastòn (4 intervenciones) el 12/05/2017 19:26:12
Ya esta resuelto se ve que tenia un problema en mi algoritmo de corte de control ya que replantee el algoritmo y salio bien
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