Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   DBGrid y evento OnDblClick (https://www.clubdelphi.com/foros/showthread.php?t=34545)

yeison Cristman 13-08-2006 07:09:27

DBGrid y evento OnDblClick
 
Hola a todos que Dios le bendiga.....ricamente

Tengo un dbgrid en el cual estan contenidos los nombres, apellidos y demas datos de un alumno, pero lo que yo quiero es que al darle doble click en el registro me llame un formulario que se llama F_Estudiantes y me presente los datos del registro al que le di doble click no se como hacerlo pero vi esa funcion en un Demo y se acopla a mi necesidad ¿que codigo va en ese evento uso Adoquery y sql server 2000

gracias de antemano....

Jesucristo es el mismo ayer, hoy y siempre......

vtdeleon 13-08-2006 07:23:28

Crear el Formulario y mostrarlo
Código Delphi [-]
F_Estudiantes:=TF_Estudiantes.Create(Self);
F_Estudiantes.Show;
Saludos

yeison Cristman 13-08-2006 07:42:03

dbgrid y evanto ondblclik
 
hola saludos

no se si me di a entender

el codigo que me diste me crea, me explicare mucho mejor que antes, en mi dbgrid tengo unos cuantos registros de estudiante yo quiero que si le doy doble clik sobre el estudiante llamado juan me aparezca el formulario correspondiente con los datos de juan listos para ser usandos o modificados..

nemesio 13-08-2006 18:04:30

Si utilizas dbedits relacionados con el mismo Dataset del DBgrid, cuando abras tu formulario podrás tener los datos del registro en el cual diste clic.

Saludos

yeison Cristman 14-08-2006 00:12:27

explicate mejor por favor soy novato
 
hola a todos

soy novato programando explicate un poco mejor si supieras que tengo menos tiempo del que tu te imaginas tengo menos de una semana para completar este sistema y en realidad me falta poca cosa en realidad tengo poco tiempo esplicame con mas detalle como lo hago......

Jesucristo es el mismo ayer, hoy y siempre....

nicolaide 14-08-2006 16:41:16

Espero que te solucione el problema
 
Hola, acabo de ver tu problema, y a lo que se refiere nemesio, es a que pongas en tu nuevo form los componentes llamados DBEdit o DBLabel (ubicados en la paleta datacontrols), que lo que hacen es crear edits o labels (lo que mas necesites), pero con la diferencia que el texto (caso del edit) y el caption (caso del label) se cambian y toman el valor que tiene un campo de tu base de datos, la forma de hacerlo es si mal no lo recuerdo setear las propiedades DATASET y DATAFIELD de cualquiera de estos dos componentes desde el inspector de objetos para que se "linkee" con tu base de datos y muestre el valor de la "tabla" a la que esta apuntando

Saludos :cool:

yeison Cristman 14-08-2006 21:16:17

volvere a explicarme de nuevo
 
hola a todos....

yo tengo un formulario para hacer consultas el cual contiene un edit para introducir la matricula del alumno, un dbgrid que me muestra todos los alumnos de todos los cursos del centro educativo, al yo digitar la matricula van apareciendo solamente los que concuerdan con lo escrito en el edit, lo que acabo de decir me lo hace perfectamente, ahora bien yo quiero que si le doy doble click sobre cualquier alumno me aparezca otro formulario que tengo que se llama alumnos, este formulario ya contiene todos los dbedit con sus labels, ese formulario es el mismo que yo uso para inscribir los estudiantes nuevos en el centro, lo queyo necesito es que si yo le doy doble clic en el estudiante que es llama carlos perez me aparezca el formulario de alumnos pero con los datos del estudiante que seleccione. tengo problema porque cuando le doy me aparece el formulario que no con el estudiante que seleccione del formulario de consulta, el formulario de alumnos tiene un labels que se llama INSCRIPCION queria saber si cuando yo lo llame podria aparecer modificado con otro caption...

yeison Cristman 15-08-2006 04:23:08

Cualquiera de los moderadores el dbgrid
 
hola a todos
soy nuevo programando presten atencion....

a ver esto. Si yo tengo un formulario el cual contiene un dbgrid, supongamos que el dbgrid contiene dentro en el primer registro la palabra primer curso, en el segundo registro la palabra segundo curso, y asi sucesivamente hasta octavo curso.

la pregunta es. ¿Como o cual seria el codigo que me permitiria que dando doble click sobre primer curso me traiga otro formulario el cual contiene un dbgrid con todos los estudiante de dicho curso, suponiendo que yo tengo todas las tablas de cada curso desde primero hasta octavo.

no se si tenga que explicarme mejor...

anghell77 15-08-2006 04:41:35

Puede servir, Inténtalo
 
Puedes crear una nueva consulta la cual:

Código SQL [-]
Select *from Tabla where Curso=:entrada

Para que ésta se ejecute en el evento OnDblClick del DBGrid que tienes en tu primer Form:

Código Delphi [-]
Query_Selec_Periodo.Close;  
Query_Selec_Periodo.ParamByName('entrada').AsString:=trim(DBGrid1.SelectedField.AsString);
Query_Selec_Periodo.Open;
If(Query_Selec_Periodo.RecordCount<>0) then
Form_Selec_Periodo.Show
else
ShowMessage('No Existen Registros del Periodo Seleccionado');

Dejando las Propiedades del DBGrid como de forma estándar. y enlazado al DataSource del Query_Selec_Periodo.

Ojalá pueda servirte.

{Saludos}

yeison Cristman 15-08-2006 05:48:49

explicame algo mas
 
en tu ejemplo quien es curso y quien es entrada

yo lo estoy entendiendo como que la tabla es 'PRIMERO' curso es un campo y entrada no se.... explicame y excusame

anghell77 15-08-2006 05:59:09

Código SQL [-]
Select *from Tabla where Curso=:entrada

Cita:

Tabla, es la tabla donde tienes todos los estudiantes y el curso que llevan. Llamémosla, Registro_Alumno.

Curso es el campo de la tabla Registro_Alumno por medio del cual vas a filtrar los datos.

:Entrada, es un parámetro de entrada que se añade en el SQL de la consulta para poder enviárselo en tiempo de ejecución.
Yo me estoy suponiendo que tienes en la tabla Registro_Alumno, algunos campos como: Matrículo, Apellido Paterno, Apellido Materno, Nombre, Especialidad, Curso, etc, etc, es por eso que te doy la opción de buscar mediante el campo Curso; ahora, nuevamente suponiendo que Curso es de tipo String, es por eso que puse:

Código Delphi [-]
Query_Selec_Periodo.Close;
Query_Selec_Periodo.ParamByName('entrada').AsString:=trim(DBGrid1.SelectedField.AsString);
Query_selec_Periodo.Open;
If(Query_Selec_Periodo.RecordCount<>0)then
Form_Selec_Periodo.Show
else
ShowMessage('No Existen Registros del Periodo Seleccionado');

Aquí es donde el parámetro de SQL :entrada, hace su aparición mediante la selección del curso que se encuentra en el DBGrid de tu primer Formulario, si tú seleccionas "Curso 1" por ejemplo, y existen alumnos que tienen en su capturado en el campo "Curso" de la tabla "Registro_Alumno", el correspondiente "Curso 1", te devolverá en el DBGrid del Form_Selec_Periodo, los resultados de la consulta. Importante señalar que éste último debe estar ligado mediante el DataSource a la consulta Query_Selec_Periodo.

También, puedes emplear los nombres para los elementos que desees, si te confunde eso de :entrada, marca el nombre del parámetro que desees.

{Saludos}

yeison Cristman 16-08-2006 13:58:38

No se si por preguntar mucho me diras algo pero....
 
voy a preguntar esto
lo primero es que estoy haciendo una prueba......
yo tengo un primer formulario que tiene una llamada al form2.showmodal;
en ese segundo formulario tengo un dbgrid un dataSource con su querySelec_periodo. Mi base de datos se llama prueba7 tiene 3 tablas (primero,segundo,curso) quiero saber si el form2 se debe conectar a la tabla primero o a la tabla curso, en la tabla curso lo que hay son los nombres de los cursos (primero,segundo,tercero,cuarto etcc..) tengo otro form3 donde tengo otro dbgrid con su datasource y su query ¿cual es el codigo SQL que debo poner en el segundo query. por que en el primer query puse select * from curso y me trajo los cursos para que seleccionare y me presenta los alumnos que estan en ese curso, no se donde poner el codigo select * from tabla where curso=:entrada que me diste..

yeison Cristman 16-08-2006 14:23:36

quiero decirte tengo un error
 
me esta dando un error..

access violation at address 04a60 in module proyect1.exe.

anghell77 16-08-2006 22:27:17

Cita:

Empezado por yeison Cristman
Hola a todos que Dios le bendiga.....ricamente

Tengo un dbgrid en el cual estan contenidos los nombres, apellidos y demas datos de un alumno, pero lo que yo quiero es que al darle doble click en el registro me llame un formulario que se llama F_Estudiantes y me presente los datos del registro al que le di doble click ...

gracias de antemano....

Jesucristo es el mismo ayer, hoy y siempre......

Originalmente, Tienes un DBGrid que contiene datos de alumnos, ya sea en una consulta o tabla, independientmente, te devuelve los datos de alumnos..SI creas una NUEVA CONSULTA ,la cual:
Código SQL [-]
Select *from Tabla where campo=:entrada
y al evento OnDblClick del DBGrid aplicas el código que te he dado,mediante el paso de parámetros te llevará a tu Form3 donde tienes el DBGrid enlazado a la NUEVA CONSULTA...te devolverá los detalles de los datos básicos que has clicado en el DBGrid del Form2....
Ahora te he escrito poco, porque me he confunfido un poco con lo de las tablas y lo que almacenan, por eso he citado el mensaje original...
Seguimos en Pie.
{Saludos}.



La franja horaria es GMT +2. Ahora son las 10:57:57.

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