Documente Academic
Documente Profesional
Documente Cultură
Módulo Kardex
Asignatura: Taller de Cómputo Móvil
Interfaz que permitira que Interfaz que permitira que Interfaz que permitira que el
el usuario a partir del el usuario a partir del usuario pueda modificar los
numero de control cargar numero de control cargar la atributos de cada uno de los
en lai lista las materias que lista con los datos del cursos al igual que eliminar
correspondan al plan de kardex del alumno. esa información.
estudios del alumno,
Implementación
}
});
}
En el metodo busarAlumno() lo que hace es con el numero de control que
pongamos en el EditText busquemos en la base de datos el alumno, ya que se
tiene el alumno posteriormente se hace una comparacion entre las materias
que previamente se cargaron con el plan de estudios del alumno.
public void buscarAlumno(){
numeroControl=txtNumeroControl.getText().toString();
//
Toast.makeText(getApplicationContext(),numeroControl,Toast.LENGTH_LONG).show
();
database.child("estudiantes").child(numeroControl).addValueEventListener(new
ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
Estudiante estudiante = dataSnapshot.getValue(Estudiante.class);
if(estudiante!=null) {
ArrayList<DetalleKardex> lista_detalle = new ArrayList<>();
for (Materia materia : lista_materias) {
if (materia.getPlan().equals(estudiante.getPlan())) {
lista_detalle.add(new DetalleKardex(materia.getClave(),
materia.getNombre()));
}
}
AdaptadorKardex adaptadorKardex = new
AdaptadorKardex(getApplicationContext(), lista_detalle,numeroControl);
lista_materias_kardex.setAdapter(adaptadorKardex);
}
else{
Toast.makeText(getApplicationContext(),"No existe el numero de
Control",Toast.LENGTH_LONG).show();
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
Registrar Curso:
Para registrar un curso se necesita primero crear un objeto de tipo curso y
despues si es curso normal ocupar la clave CN para que en la base de datos se
genere una rama que guarde los datos y asi mismo con los otros cursos.
agregar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Curso cursoNormal = new
Curso(spinneranio.getSelectedItem().toString(),ciclo.getSelectedItem().toStr
ing(),calificacion.getSelectedItem().toString(),fecha.getText().toString(),g
rupo.getText().toString(),evaluacion.getSelectedItem().toString());
database.child("estudiantes").child(numeroControl).child("Kardex").child(cla
veMateria).child("CN").setValue(cursoNormal)
.addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
Toast.makeText(getApplicationContext(),"Se guardo la
información del Curso Normal",Toast.LENGTH_LONG).show();
}
});
}
});
Eliminar Curso:
Para eliminar un curso se necesito la clave de la materia y la clave del curso si
es normal se ocupa CN y asi con los demas cursos.
eliminar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
database.child("estudiantes").child(numeroControl).child("Kardex").child(cla
veMateria).child("CN").removeValue().addOnSuccessListener(new
OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
Toast.makeText(getApplicationContext(),"Se elimino el curso
Normal de la Materia",Toast.LENGTH_LONG).show();
iniciarDatosCursoNormal();
}
});
}
});
Modificar Curso:
Para modificar un curso lo unico que se necesita es primero cargar los datos de
los cursos de la materia y una vez dentro de la interfaz cambiar lo que se
necesite y dar click en guardar.
database.child("estudiantes").child(numeroControl).child("Kardex").child(cla
veMateria).child("CN").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
cursoNormal = dataSnapshot.getValue(Curso.class);
if(cursoNormal!=null){
Log.d("cursoNormal",cursoNormal.toString());
cargarCursoNormal();
}
else{
Log.d("cursoNormal",String.format("La Materia %s-%s No tiene
ningun Curso",claveMateria,nombreMateria));
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
Visualizar Kardex:
Para visualizar el kardex lo unico que se necesita es realizar un recorrido en la
base de datos a partir del numero de control y despues pasar por la rama
kardex y recorrer todas las materias y cursos para mostrarlos.
btnBuscar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String numC = txtNumC.getText().toString();
final DetalleKardex detalleKardex;
database.child("estudiantes").child(numC).child("Kardex").addValueEventListe
ner(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
lista_detalle.clear();
lista_periodos.clear();
DetalleKardex encabezados = new DetalleKardex();
encabezados.setNombre("Nombre");
encabezados.setClaveMateria("Clave");
encabezados.setCalificacion("Calificación");
encabezados.setEvaluacion("Evaluación");
encabezados.setCiclo("");
lista_detalle.add(encabezados);
for (DataSnapshot materia : dataSnapshot.getChildren()) {
// Log.d("Materia
Nombre",obtenerNombreMateria(materia.getKey()));
for (DataSnapshot curso : materia.getChildren()) {
// Log.d("curso",curso.toString());
Curso curso1 = curso.getValue(Curso.class);
// Log.d("curso1", curso1.toString());
DetalleKardex detalleKardex = new DetalleKardex();
// Log.d("posy",materia.toString());
// Log.d("Materia Key",materia.getKey());
detalleKardex.setClaveMateria(materia.getKey());
detalleKardex.setNombre(obtenerNombreMateria(materia.getKey()));
detalleKardex.setCalificacion(curso1.getCalificacion());
detalleKardex.setCiclo(curso1.getCiclo());
detalleKardex.setEvaluacion(curso1.getEvaluacion());
lista_detalle.add(detalleKardex);
}
}
Collections.sort(lista_detalle, new
Comparator<DetalleKardex>() {
@Override
public int compare(DetalleKardex o1, DetalleKardex o2) {
return o1.getCiclo().compareTo(o2.getCiclo());
}
});
for(DetalleKardex detalleKardex1:lista_detalle){
buscarPeriodo(detalleKardex1.getCiclo());
}
SortedSet<String> llaves = new
TreeSet<>(lista_periodos.keySet());
int cont=0;
int periodo=0;
for(String i:llaves){
Log.d("Map",String.format("C %s
V %s",i,lista_periodos.get(i)));
periodo=cont+lista_periodos.get(i);
for (int x = cont+1; x < periodo; x++) {
Log.d("X",x+"");
if(lista_periodos.get(i)==1){
lista_detalle.get(x).setCiclo(lista_detalle.get(x).getCiclo());
}
else{
lista_detalle.get(x).setCiclo("");
}
}
cont=periodo;
}
lista_materias_kardex.setAdapter(adaptadorVisualizarKardex);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
});
}
Pruebas