Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   limpiar los campos en un form 0-999 veces hasta ke el usuario termine (https://www.clubdelphi.com/foros/showthread.php?t=77038)

Ulises_Robles 15-12-2011 20:28:29

limpiar los campos en un form 0-999 veces hasta ke el usuario termine
 
Hola buen dia, recurro a ustedes para que me den una orientacion sobre la siguiente situacion... tengo 2 tablas en un bd en access, uso delphi 7, es una hoja de captura y reporte por familia la primer tabla es informacion general de la familia... la segunda tabla es informacion por cada integrante de la familia para saber cuantos integrantes son utilizo una variable, y el problema es que necesito ke en el formulario donde capturo la informacion de esta tabla de integrantes deseo que se abra o se muestre las mismas veces que son los integrantes de la familia para poder ingresar un registro por cada integrante, no logro hacer que funcione ni con ciclos, cada que el usuario ingrese la informacion y de click en un boton deseo que se limpien los campos del formulario y pueda ingresar el siguiente integrante, alguien tiene una idea de como hacer esto???
desde ya gracias

Caral 15-12-2011 20:39:29

Hola
No se si entiendo.
Creo que se quiere contar los integrantes que tiene determinada familia.
Esto (me imagino) que se hara por sql.
Lo mas logico es que se presenten solo los de una familia en particular.
De ser asi, me da la impresión de que con un COUNT seria suficiente.
Saludos

oscarac 15-12-2011 20:47:58

creo entender que en el segundo formulario deberia limpiarse la informacion de los campos tantas veces como familiares tenga

si los campos son dbedits y estas asociados al dataset, lo que puedes hacer es en el evento click de boton grabar (porque si tienes un boton guardar o grabar verdad??),

en ese boton ir comparando en una variable si la cantidad de familiares es igual al contador (inicializado antes de llamar al form2)
si es menor que el post y automaticamente que haga un append.. asi sucesivamente hasta el contador +1 > cantidad de familiares, donde deberas cerrar el form

es asi? o es que tampoco entendi

Ulises_Robles 15-12-2011 20:49:24

Gracias caral, ke amable al responder, supongo ke escribi demasiado en lo anterior jeje... si tengo contados los integrantes de una familia en particular, pero lo relevante es ke para capturar esos integrantes de la familia utilizo un form lo que necesito es ke ese form se abra las veces igual al numero de integrantes es decir, si tu me dices ke tu familia tiene 5 integrantes ps capturar al jefe de familia, a la madre y asi a cada uno de ellos hasta ke sean 5, pero eso en el mismo form con los mismos datos ke solicito, quiza es algo sencillo pero no logro concretar la idea

Ulises_Robles 15-12-2011 20:51:59

oscarac asi es como tu lo explicas bien dejame implementar eso y les comento va...
gracias

Caral 15-12-2011 20:52:28

Hola
No entiendo.
1- Quieres abrir un form por cada integrante de familia ?
2- Quieres abrir el form con todos los integrantes de esa familia ?
Saludos

Ulises_Robles 15-12-2011 20:57:25

tengo un form ke solicita nombre, edad .... (demas datos personales) en ese form deseo capturar a cada integrante de la familia (el mismo form para todos), tengo un boton de guardar donde se almacenan los datos en una bd en acces, ahora lo que estoy tratando de implementar es el contador ke me dijo oscarac al momento de hacer guardar, lo que no sabia es como hacer para que este form aparezca limpio cada ke doy guardar y que solo aparezca las veces necesarias (el numero de integrantes de la familia), espero que me haya explicado.. jeje.. gracias

oscarac 15-12-2011 21:02:08

como te digo
si estas usando dbedits con sus correspondientes datasource, para que se blanqueen los campos solo tienes que hacer append

Caral 15-12-2011 21:03:12

Hola
Seguro estoy lento hoy, no capto muy bien la idea.
Para que limpiar el form si se puede actualizar ?.
No lo entiendo.
Saludos

oscarac 15-12-2011 21:06:37

Cita:

Empezado por Caral (Mensaje 421277)
Hola
Seguro estoy lento hoy, no capto muy bien la idea.
Para que limpiar el form si se puede actualizar ?.
No lo entiendo.
Saludos

que paso caral... no hubo café hoy?
lo que el quiere decir es que si uno tiene 6 familiares... el segundo form deberia "aparecer" 10 veces con los campos vacios obvio que despues de llenarse

Caral 15-12-2011 21:09:24

Hola
No lo capto amigo, me da la impresion de que lo que pasa es que se esta usando un Table y que se quiere hacer todo por ahi.
No tiene sentido, para mi.
Saludos
PD: No es cafe lo que necesito hoy amigo, es un buen vino:)

jafera 16-12-2011 09:51:04

Por lo que yo entiendo tienes una tabla principal donde estan los datos básicos:

Id_Familia, Nombre_Familia, Numero_Miembros.

En otra tabla el detalle de esta familia

Id_Detalle, Id_Familia, Id_Miembro_Familia, Nombre, Apellido, Edad, etc.

Al abrir el primer form introduces los datos basicos y los guardas.

Con un boton añadir quieres entrar integrantes a esta familia tantos como valor tenga Tabla_Principal.Miembros_Familia, pero sin la posibilidad de poder entrar más datos que este valor.

Yo lo que haría es primero guardar en la tabla principal los datos del primer form con su correspondiente post.

Despues hay que hacer append como se ha comentado antes, pero con la salvedad de que antes de ingresar el dato debes comprobar que el valor máximo de Id_Miembro_Familia no sea mayor que el valor de Numero_Miembros.

Yo hago algo asi en el before insert

Código Delphi [-]
 
If (Detalle_Familia.RecordCount >= StrToInt(Familia.Numero_Miembros.Text) then
                begin
                        ShowMessage('Solo pueden haber ' + IntToStr(Familia.Numero_Miembros.Text) + ' Miembros');
                        Abort;
                end;

En el form principal yo le pondria una rejilla y asi podrias ver los miembros que vas entrando en el form auxiliar.

Lo importante es la relacion entre las dos tablas, maestro-detalle.

Espero te ayude a solventar el problema

Saludos

Josep


La franja horaria es GMT +2. Ahora son las 14:34:13.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi