Ver Mensaje Individual
  #5  
Antiguo 16-04-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por ramiretor
puede haber más de un registro para un cliente
Además de lo que ya te han idicado mis compañeros en cuanto a que de hecho no es posible hacerlo con un DBGrid, esto que dices suena a un mal planteamiento de tus tablas: si hay más de un registro por cliente entonces debes normalizar tus tablas separándolas en dos: la de clientes y la de los detalles- que serán los distintos registros por cada cliente que ves actualmente en el grid. De esta forma, además de tener un mejor planteamiento de las tablas, colocarías dos grids, uno por cada tabla enlazando éstas por una relación maestro detalle de manera que al seleccionar un cliente en el primer grid el segundo te mostrará todos los registros correspondientes a dicho cliente.

Esto no soluciona directamente tu problema, pero sí tendrás una mejor estructura.

Por otro lado, no queda claro exactamente lo que deseas. Entiendo que al seleccionar uno de los registros se pretende usar sus valores para alguna otra cosa; entonces, ¿para qué seguir desplazándose por la lista?

Ahora bien, independientemente de todo lo anterior, si no deseas normalizar tus tablas y en espera de una explicación más clara, algo que puedes hacer, a grandes rasgos, es lo siguiente:

En el evento OnCellClick del grid (lo más cercano a cuando 'haces click' ya que el grid no tiene evento OnClick) apuntas un bookmark al registro actual:


Código:
// Bookmark será una variable string

Bookmark := DBGrid.DataSource.DataSet.Bookmark;
Con esto, aún cuando se desplacen por los demás registros, ya tienes una referencia al registro deseado. En el momento en que desees utilizarlo simplemente pondrás


Código:
DBGrid.DataSource.DataSet.Bookmark := Bookmark;
con lo que se regresará inmediatamente al registro antes seleccionado.

De cualquier manera te sugiero repensar el problema en sí- lo que estás trando de hacer. Cuando surgen este tipo de preguntas en las que se desea hacer algo 'fuera de lo común', muchas veces es un reflejo de que algo en el diseño no está del todo correcto.

// Saludos

Última edición por roman fecha: 16-04-2004 a las 03:14:21.
Responder Con Cita