Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Saber cual es el primer registro en un dbgrid (no en el data set) (https://www.clubdelphi.com/foros/showthread.php?t=71109)

jjaen26 01-12-2010 03:30:16

Saber cual es el primer registro en un dbgrid (no en el data set)
 
Saludos, me pregunto si es posible saber en un dbgrid cual es el primer registro que se alcanza a vizualizar ojo estoy hablando del primer registro que se alcance a ver en el dbgrid no me refiero al primer registro de todo Data Set.

gracias de antemano

microbiano 01-12-2010 18:21:31

por que no haces una seleccion despues de cargar los datos en el flexgrid?, como quieres saber cual es el primer registro no se se me ocurre algo como

wcodigo_articulo:=(Fbusca_articulos.dbgrd1.Columns[0].Field.text);

a asi por cada colunma que quieras verificar, si se te hace mas facil puedes hacer un ciclo para recorrer todas las columnas del flexgrid.

jjaen26 01-12-2010 18:45:13

Perdon pero cual es el Flexgrid??

Gracias

Al González 01-12-2010 20:50:32

Hola jjaen26.

Esto puede servirte, aunque convendría que nos comentaras un poco más sobre lo que quieres lograr y el por qué. :)

Código Delphi [-]
  Type
    TDataSetAccess = Class (TDataSet);
procedure TForm1.Button1Click(Sender: TObject);
Var
  D :TDataSetAccess;
  B :TBookmark;
begin
  D := TDataSetAccess (DBGrid1.DataSource.DataSet);
  GetMem (B, D.BookmarkSize);

  Try
    // Obtenemos el identificador (bookmark) del primer registro visible
    D.GetBookmarkData (D.Buffers [0], B);

    // Hacemos lo que queramos con ese identificador
    D.GotoBookmark (B);
  Finally
    FreeMem (B);
  End;

"D.Buffers [0]" es la primera fila mostrada en la rejilla, siempre y cuando no haya otros controles similares (de múltiples filas) asociados al mismo conjunto de datos. ;)

Un saludo.

Al González. :)

fidel 01-12-2010 23:06:58

No se muy bien a que te refieres pero si tienes un dbgrid está siempre ligado a un DataSet, simplemente es la visualización del dataset, por lo tanto si tu pones
DM.IBDataSetConta.First; (o lo que sea según tu base de datos y conexón, ."First")
va al primer registro visible en ese momento que es el pirmer registro del Grid

jjaen26 02-12-2010 02:06:31

Bueno a ver si me logro explicar,

1) originalmente lo que quiero es hacer que en una misma columna no se repitan los valores que sean iguales (solo por cuestiones de presentacion)

Departamento, Empleado, Importe

Dep Emp Importe
101 1233 $3837
--- 7162 $2827
--- 2928 $2829
102 1022 $2728 (Aqui cambia de valor por lo tanto se despliega el dato Dep)
--- 2029 $8902
--- 3938 $998.89
--- ...

2) lo anterior ya lo he logrado.., sin embargo hay casos en los que aparecen muchos registros de un mismo departamento (nose mas de 100), entonces al momento de navegar hacia abajo con el scroll como el campo departamento viene en blanco llega un momento en el que uno se pierde y no se sabe en que departamento estamos viendo, por lo que quisiera que el valor del departamento se visualize solo si hay un cambio de valor (que esto ya lo logre) ó si es el primer registro visible dentro del dbgrid. de manera que no importa que el departamento sea grande siempre se sepa el departamento.

No se si me di a entender

Saludos


La franja horaria es GMT +2. Ahora son las 09:13:59.

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