Inquietud con dos tablas en paradox

Come te comente en mis preguntas anteriores, tengo una base de datos (paradox), ya he llenado con información varias tablas, solo hablare de dos de ellas que es donde tengo la inquietud.
1) Table1 = Guardo información general de un usuario, mencionemos solo dos de sus campos, identificación y nombre.
2) Table2 = Guardo información sobre ciertos grupos que han formado los usuarios, mencionemos 2 de sus campos, integrantes y cargo.
Tanto para Table1 y Table2 utilizo un formulario para ingresar los datos, en el formulario de Table2 tengo varios DBEdit con los cuales ingreso información del grupo (como nombre del grupo, función del grupo, etc), hasta aquí no tengo ningún problema, pero cuando tengo que ingresar los integrantes de ese grupo me encuentro con una inquietud, y es que los integrantes del grupo serán los mismos usuarios, ósea que no seria muy practico el volver ha escribir los nombres de los integrantes cuando estos ya han sido ingresados en Table1, pero no se como hacerlo, antes de escribirte trate de investigarlo con ensayo y error con algunos componentes, entre ellos, el DBLookupComboBox, al principio pensé haberlo logrado ya que en el inspector de objetos puedo asignarle que tome información de Table1 y lo guarde en Table2 o que solo muestre la información, el problema que encontré es que esto seria para un solo integrante, y yo lo necesito para varios integrantes (lo cual puede variar según el grupo 5 o 10, etc), lo que también busco es que no sea al escribir o seleccionar el nombre, sino al digitar o seleccionar la identificación.
Bueno, espero haber formulado bien la inquietud.
Nota. Como puedes ver, aveces utilizo palabras o frases en las que hablo como si supiera lo que estoy haciendo, pero realmente las utilizo para poderme expresar, poder plantear la pregunta y dar una mejor idea de lo que estoy haciendo y he cacharreado. Esto te lo digo porque se que en mi ignorancia acerca del tema, cometo muchas imprudencias y hago cosas que no son muy practicas, así que toda sugerencia es bienvenida.
Bueno.

1 respuesta

Respuesta
1
Te puedo decir cómo lo haría yo:
1. Añadiría un campo a Table2 que sería id_usuario (que seguramente ya tengas) para relacionar un grupo con varios ids de usuarios.
2. En el momento de asignar usuarios al grupo nada más fácil que llenar una dbgrid con Options/dgMultiselect a true con los usuarios (Id, Nombre y Apellido por ejemplo) para seleccionar los diferentes usuarios y cuando se le diera al botón de guardar, sólo restaría recoger los ids seleccionados de la grid e ingresarlos.
3.Para mostrar un detalle de los grupos, con el id_usuario accederíamos a los datos de la table1 y ya está.
Creo que veo el problema, fue fallo mío al plantear la solución ya que según lo que te pedía, crearíamos registros duplicados en table2 con el único cambio de Integrantes que sería un usuario diferente y eso no nos interesa. Por lo tanto habría que crear una tercera tabla para relacionar los diferentes usuarios y cargos con el grupo correspondiente.
Tenemos la table1 con:
Cod_Usuario
Nombre
Apellido
Dirección
?
Tenemos table2 con:
Cod_Grupo
Nombre Grupo
Función Grupo
Fecha Inicio Grupo
Observaciones Grupo
?
Tenemos table3 con:
Cod_Grupo
Cod_Usuario
Cargo
Modo Alta Grupo:
Una vez entrados los datos del grupo, cargamos un dbgrid con los usuarios disponibles. Una vez seleccionados los que forman parte, le daremos al botón guardar y por cada usuario nos irá pidiendo con un cuadro de día´logo por ejemplo el cargo que ocupará cada usuario y los guardaremos en la tabla 3.
Modo Consulta Grupo
Una vez cargada la información de la table2, cargaremos en una dbgrid los registros de table3 para ese código de grupo.
Problema de la navegación:
Tendrás que controlar el evento ondatachange o algo similar del componente tdatasource de la grid principal y cuando se dispare, ir actualizando la consulta a la table3 para ese código de grupo, para que muestre correctamente los usuarios de ese grupo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas