Crystal Report - mostrar aprobado o no aprobado segun nota asignada al listar estudiantes en una tabla

 
Vista:
sin imagen de perfil

mostrar aprobado o no aprobado segun nota asignada al listar estudiantes en una tabla

Publicado por victor alfonso (1 intervención) el 18/07/2024 18:50:34
Cordial saludo, espero me puedan ayudar.
Tengo la siguiente situación
en un atabla se lista a un grupo de estudiantes los cuales son consultados a una base de datos, estos estudiantes tienen asignada una nota final y a su vez tiene un estado que debería mostrar pendiente sino tiene nota, aprobado si el valor es 3 o superior y en caso contrario mostrar no aprobado.
con el código javascript que utilizo para mostrar el estado funciona pero solo con el primer registro, a los demás registros le pone el mismo valor del primero independientemente que en la nota tenga un valor de 3 o superior que seria el puntaje de aprobación.

El codigo para mostrar el listado de estudiantes en la tabla es el siguiente

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
<table id="requestdata" width="100%" border="0" align="center" cellpadding="5" cellspacing="0">
                                    <thead class="GrupoHeadTabla" id="TablaResultados">
                                        <tr>
                                            <td width="90" align="center">Codigo</td>
                                            <td width="300" align="center">Asignatura</td>
                                            <td width="100" align="center">Nivel</td>
                                            <td width="100" align="center">Nota final</td>
                                            <td width="120" align="center">Estado</td>
                                            <td width="100" align="center">Acciónes</td>
                                        </tr>
                                    </thead>
                                    <tbody class="GrupoBodyTabla">
                                        <?php
                                        require('../Conexion/conexion.php');
                                        $consulta = $conn->prepare("SELECT * FROM tbpensumcontenido WHERE Pensum = :nombPensum");
                                        $consulta->execute([':nombPensum'=>$pensum['idPensum']]);
                                        $resultado = $consulta->fetchAll(PDO::FETCH_ASSOC);
                                        ?>
                                        <tr>
                                            <?php
                                            if(empty($resultado)){
                                            ?>
                                                <script>
                                                var tablaResultados = document.getElementById('TablaResultados');
                                                var fondoResultados = document.getElementById('Resultados');
                                                tablaResultados.style.visibility = 'hidden';
                                                fondoResultados.style.backgroundColor = 'transparent';
                                                </script>
                                                <div id="MensajeNohayInformacion"> Actualmente no hay asignaturas para mostrar. El estudiante no se encuentra matriculado en el programa de formación.</div>
                                            <?php
                                            } else {
                                            foreach($resultado as $CPensum){
                                            ?>
                                            <td width="90" align="center" valign="middle">
                                                <?php echo $CPensum['asignatura']?>
                                            </td>
                                            <td width="300" align="left" valign="middle" class="name">
                                                <?php
                                                require('../Conexion/conexion.php');
                                                $consultaAsig = $conn->prepare("SELECT * FROM tbasignatura WHERE codigoAsignatura = :codAsig LIMIT 1;");
                                                $consultaAsig->execute([':codAsig'=>$CPensum['asignatura']]);
                                                $resultadoAsig = $consultaAsig->fetchAll(PDO::FETCH_ASSOC);
                                                foreach($resultadoAsig as $asignatura){
                                                ?><?=$asignatura['nombreAsignatura']?><?php }; ?>
                                            </td>
                                            <td width="100" align="center" valign="middle">
                                                <?php
                                                require('../Conexion/conexion.php');
                                                $consultaNivel = $conn->prepare("SELECT * FROM tbnivelsemestre WHERE idNivelSemestre = :codNivel LIMIT 1;");
                                                $consultaNivel->execute([':codNivel'=>$CPensum['nivel']]);
                                                $resultadoNivel = $consultaNivel->fetchAll(PDO::FETCH_ASSOC);
                                                foreach($resultadoNivel as $nivel){ ?><?=$nivel['nombreNivelSemestre']?><?php }; ?>
                                            </td>
                                            <td width="100" align="center" valign="middle">
                                                <input type="text" name="nota" id="nota" class="inputTextoCentrado" value="<?php echo $CPensum['nota']?>" readonly>
                                            </td>
                                            <td width="120" align="center" valign="middle">
                                                <script>
                                                    var nota = document.querySelectorAll('#nota').value;
 
                                                           if(nota === "") {
                                                                document.write("Pendiente");
                                                            } else if(nota >= 3) {
                                                                document.write("Aprobado");
                                                            } else {
                                                                document.write("No aprobado");
                                                            }
 
 
                                                </script>
                                            </td>
                                            <td width="100" align="center" valign="middle">
                                                <select name="asignarAsig" id="asignarAsig">
                                                    <option>Matricular</option>
                                                    <option>Homologar</option>
                                                    <option>Habilitar</option>
                                                </select>
                                            </td>
                                        </tr>
                                        <?php
                                              };
                                            }
                                        ?>
                                     </tbody>
                                </table>

El código para mostrar el estado de aprobación según la nota del estudiante es la siguiente:
<script>
var nota = document.querySelectorAll('#nota').value;

if(nota === "") {
document.write("Pendiente");
} else if(nota >= 3) {
document.write("Aprobado");
} else {
document.write("No aprobado");
}


</script>

Aclaro nuevamente esto funciona pero solo con el primer registro, con los demás registros deja el mismo valor del primer registro es decir no los cambia a aprobado o pendiente según el valor de la nota.

no me deja subir imagenes en este post, por eso no les comparto una para que puedan observar los resultados.
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