![]() |
Tablas de Paradox en un TreeView - DBGrid
1 Archivos Adjunto(s)
Estoy diseñando un sistema de control de alumnos, pero tengo una duda de como hacer para que me aparezca un ARBOL con los semestres y a su vez dentro de cada semestre las materias que pertenecen a ese semestre y en un DBGrid capturar las calificaciones por alumno de la materia que este seleccionada, para ello cuento con 4 tablas en paradox:
Tabla: Alumnos id_alumno : key Nombre Apellidos id_semestre ....etc Tabla: Semestres id_semestre : key Semestre Tabla: Asignaturas id_asignatura : key Asignatura id_semestre ... etc. Tabla: Calificaciones id_calificacion : key id_asignatura id_alumno calificacion . . Les explico como quiero que aparezcan los datos en el formulario: ----------------------------------------------------------------- Nombre del Alumno: Juan Perez Matricula: 4206 Grupo: A ----------------------------------------------------------------- ----------------------------- Calificacion ->Semestre 1 ------>Biologia I ________________ 10 ------>Fisica I __________________ 9 ------>Historia de Mexico I ________ 8 ------>Matematicas I ____________ 7 ------>Ingles I __________________10 ->Semestre 2 ------>Biologia II ________________ 10 ------>Fisica II _________________ 10 ------>Historia de Mexico II _______10 ------>Matematicas II ___________ 10 ------>Ingles II _________________10 . . Delante del Cuadro del Arbol (Treeview) un Dbgrid donde se pueda escribir la calificacion que corresponde al alumno y esa materia que se tiene seleccionada. Osea que si tengo seleccionado el semestre 2 y la materia Matematicas II, en el DBGrid se capture la calificacion. anexo una imagen de lo que pretendo realizar.... de antemano muchas gracias por su ayuda. Saludos |
Supongo que tendrás que generar el TreeView a la Izquierda de forma manual; Y los elementos seleccionados a la izquierda (asignatura) son los que te servirán de Filtro para la última consulta sobre la tabla calaficaciones (con alguna JOIN para obtener campos de las otras) que es la que debes mostrar en el Grid de la derecha.
Al cambiar la selección a la izquierda (otra asignatura) vualves a montar la SQL y la vuelves a lanzar. ¿Exactamente qué es lo que necesitas? ¿Rellenar el Tree? ¿DBGrid? ¿La consulta? El planteamiento es claro, lo que no explicas es la duda/error que tienes. |
Cita:
un saludo y gracias |
solucion de como llenar un Treeview con dos Tablas de Paradox
me contesto yo mismo, despues de buscar por la web informacion de como llenar un TreeView, encontre un Componente gratuito VirtualTree http://www.delphi-gems.com que hace exactamente lo mismo, que el TreeView normal.
Bueno les explico de como llenarlo utilizando dos tablas (Semestre: id_semestre, Semestre, Asignatura: id_materia,materia), para ello creamos una nueva aplicacion, introducimos el componente VirtualStringTree (deben tenerlo ya instalado) y despues dos TTable1..2 y dos Dataset1..2, y dos DbGrid para visualizar las tablas (esto lo pueden omitir); ya que se tienen estos componentes: unimos el TTable1 a la tabla maestra (TbSemestres) y el DataSet1 (DsSemestres) y la activamos, ahora en el TTable2 que sera nuestra tabla detalle (TbAsignaturas) y el Dataset2 (DsAsignaturas), una vez que ya se tiene la TbAsignaturas, nos vamos a su propiedad MasterSource: y seleccionamos DsSemestres, y en su propiedad IndexName: sera el indice de tipo Case Sensitive (campo que unira ambas tablas) de la tabla Asignaturas, escribimos Id_Semestre y en la propiedad MasterField: Id_semestre (campo a ligar con la tabla Semestre) y activamos en TbAsignaturas. aqui les pongo el codigo que hara el resto para crear el arbol con las dos tablas)... obviamente yo lo traduci al español el tutorial completo se encuentra en: http://www.keashsoft.com/ que de donde yo lo baje.
espero sea de mucha utilidad a todas aquellas personas que como yo quieren ampliar mas su conocimiento en la programacion de delphi... por cierto respecto a este programa como lo dice la primer pregunta formulada, ahora no se como unir este codigo del arbol para que cuando yo seleccione un alumno, me muestre el arbol y al seleccionar una asignatura, automaticamente en un DbGrid me muestre el registro para que pueda yo capturar y/o modificar alguna calificacion de este alumno y de la materia seleccionada en el Treeview.... de antemano muchas gracias por la atencion... saludos |
Por que no pruebas en el evento OnDblClick del TreeView ahi puedes tomar el valor del puntero para hacer una consulta o para lo que gustes, te dejo un pedazo de codigo, espero te sirva
PAra tu caso supongo que seria
Espero te sirva. |
Completo un poco más.
Si el VirtualTreeview tienes HideSelection a false, y te aseguras mediante código de que hay algo seleccionado, entonces no hay problema. En caso contrario, es bueno hacer primero la comprobación:
o bien:
PD: El VirtualStringTree tiene el evento OnFocusChanged, con un parámetro que indica el nodo que tiene el foco y la columna. Lugar oportuno para usar el código de Genner. El hilo es de hace 6 meses, pero al menos dejamos la respuesta para futuras búsquedas. Gracias por reavivarlo Genner. Saludos Saludos |
La franja horaria es GMT +2. Ahora son las 18:44:53. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi