Delphi - dbgrid mueste todos los datos

 
Vista:

dbgrid mueste todos los datos

Publicado por dralion (40 intervenciones) el 25/05/2008 06:09:46
hola amigos aca les traigo otro problemita en un dbgrid que solo me muestra solo 3 campos de 12 en total la intencion mia es que cuando yo haga doble click sobre un dato del dbgrid o precione entrer me lleve a la ventana consulta que tengo (form4) donde se muestran todos los datos del registro solo introduciendo el codigo
espero que me ayan entendido y me puedan ayudar muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:dbgrid mueste todos los datos

Publicado por Alberto Martinez (3 intervenciones) el 26/05/2008 19:43:07
Hola, debes activar los eventos del DBGrid:

En el evento "OnDblClick" solo tienes que mandar llamar la form4:
Y enviar el parametro del "codigo", que sera recibido por form4 y en el evento "OnShow" de form4 puedes leer este parametro para asi abrir el registro correpondente.

Para realizar lo que quieres con "ENTER" solo debes de activar el evento "OnKeyPress" :
...
if (Key = #13) then // VK_RETURN
begin
DBGrid1DblClick(Sender); //llama al evento DblClick.

o puedes poner el codigo que hay en DblClick, pero seria redundante.

end;

Si quieres te puedo dar algunos ejemplos, pero estan en "C++ Builder".
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:dbgrid mueste todos los datos

Publicado por dralion (40 intervenciones) el 28/05/2008 20:50:56
hola Alberto Martinez gracias por molestarte en responderme agradesco tu ayuda y de verdad ya se me avia ocurrido el de poner en el evento OnDblClick" que me llame al form4 y de hecho funciona de 10 pero me muestra cualquier registro menos el que yo quiero ver,
me podrias explicar un poco mas sobre de " enviar el parametro del "codigo", que sera recibido por form4 y en el evento "OnShow" de form4 puedes leer este parametro para asi abrir el registro correpondente.

esto seria en el evebto onshow del form4 que codigo tengo que introducir la verdad no se me ocurre nada muchisimas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:dbgrid mueste todos los datos

Publicado por pacopaz (104 intervenciones) el 28/05/2008 21:18:13
Master, dado que ya tienes el dataset abierto y que estás dando un doble click sobre un elemento de este, lo único que tienes que hacer es leer ese elemento del dataset, ya sea que lo envíes como valores al form4 o que el form4 los lea de la forma original y no sé si los vas a modificar en la forma o algo así.
Si tu dataset trae los 12 campos (creo que eran esos), aunque sólo muestre 3 o 4, puedes leer el dataset completo, gracias al cursor del dataset, que ya está posicionado desde que le diste el primer click.
Como no sé si lo envías a un grid o a varios componentes en una forma, o a un TMemo que los enliste o a una lista o a lo que sea, lo que propongo en el código siguiente es que en el form4 tengas 12 variables públicas (apartados public o published de tu clase TForm4) de tipo String. Así mismo, entenderé que tu DBGrid se llama DBGrid1 y que el datasource ligado a él se llame dtsGrid:

procedure Tform1.Grid1DblClick(Sender: TObject);
begin

form4.s1 := dtsGrid.DataSet.Fields[1].AsString;
form4.s2 := dtsGrid.DataSet.Fields[2].AsString;
form4.s3 := dtsGrid.DataSet.Fields[3].AsString;
form4.s4 := dtsGrid.DataSet.Fields[4].AsString;
form4.s5 := dtsGrid.DataSet.Fields[5].AsString;
form4.s6 := dtsGrid.DataSet.Fields[6].AsString;
form4.s7 := dtsGrid.DataSet.Fields[7].AsString;
form4.s8 := dtsGrid.DataSet.Fields[8].AsString;
form4.s9 := dtsGrid.DataSet.Fields[9].AsString;
form4.s10 := dtsGrid.DataSet.Fields[10].AsString;
form4.s11 := dtsGrid.DataSet.Fields[11].AsString;
form4.s12 := dtsGrid.DataSet.Fields[12].AsString;

form4.Show;

end;

En el caso de que el form4 sea quien lea los valores desde form1, el código va en OnShow:

procedure TfrmConfiguracion.FormShow(Sender: TObject);
begin

s1 := form1.dtsGrid.DataSet.Fields[1].AsString;
s2 := form1.dtsGrid.DataSet.Fields[2].AsString;
s3 := form1.dtsGrid.DataSet.Fields[3].AsString;
s4 := form1.dtsGrid.DataSet.Fields[4].AsString;
s5 := form1.dtsGrid.DataSet.Fields[5].AsString;
s6 := form1.dtsGrid.DataSet.Fields[6].AsString;
s7 := form1.dtsGrid.DataSet.Fields[7].AsString;
s8 := form1.dtsGrid.DataSet.Fields[8].AsString;
s9 := form1.dtsGrid.DataSet.Fields[9].AsString;
s10 := form1.dtsGrid.DataSet.Fields[10].AsString;
s11 := form1.dtsGrid.DataSet.Fields[11].AsString;
s12 := form1.dtsGrid.DataSet.Fields[12].AsString;

end;

Esto enviaría a cada uno de los 12 strings los valores de cada uno de los 12 campos de tu dataset. Si lo tuyo es ponerlos en otros componentes, es cosa de sustituir cada uno de los strings por los componentes y si los valores en los componentes no son strings, entonces ponerlos con su tipo de datos correspondiente.

Espero que te sirva.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:dbgrid mueste todos los datos

Publicado por dralion (40 intervenciones) el 29/05/2008 00:53:04
muchisimas gracias me sirvio muchisimo exelente sus ayuda nunca cambien son unos capos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 65
Oro
Ha mantenido su posición en Delphi (en relación al último mes)
Gráfica de Delphi

RE:dbgrid mueste todos los datos

Publicado por E.T. (1244 intervenciones) el 29/05/2008 01:06:27
Existe una manera mucho más sencilla, en la forma donde está tu grid, imagino que ahi debe de estar tu dataSource, bueno, vas a tu form4 y pones en la sección uses a tu form1 (o en la que está el grid), no recuerdo bien ahorita si debes agregar al uses el nombre de la form o de la unidad de codigo (unit1), en cualquier caso prueba ambas, ya que la hayas agregado, inserta un control dbEdit, y enlazalo al dataSource de tu form1 elige un campo (propiedad field del dbEdit) y ejecuta tu aplicación, en el edit se debe de mostrar el valor del campo que hayas elegido, del registro en el que diste doble click, con esto te ahorras estar pasando datos por codigo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar