![]() |
Capturar Dato En Celda Del Dbgrid
Buenas tardes.
Necesito que al dar doble click en una celda donde esta el codigo de un articulo, pueda capturar ese dato ya sea en un label o un edit, para poder hacer otro proceso con ese dato. ¿Es posible? ¿Que sentencia debo utilizar? Muchas gracias |
Hola
El dbgrid solo muestra, lo que interesa es de donde saca esa infromacion. La infromacion viene de un query o un table, ahi es donde hay que conseguir ese dato. Ahora pregunto: Por que no un DBedit ?. Saludos |
Pues mira, estoy haciendo un inventario que se refleja en el dbgrid que esta conectado a un query, la idea es q el usuario al dar doble click en la celda donde figura el articulo pueda ver mas detalles de este. El dbgrid tendra alguna propiedad en donde yo pueda copiar el dato que tenga escrito?
|
Hola
Este hace exactamente lo que quieres. Dale doble click al dbgrid y saldrá el dato que falta de la tabla, tanto en el edit como en el label, así te servirá de ejemplo. Saludos |
Saludos,
Perfecto, me lo arrancaste de los dedos Caral. Mas deseo aportar lo que sigue:
Your friend StartKill Lima-Perú |
Hola
Buen aporte StartKill. Para mi el problema de poner los campos en el editor es que nos forzamos a tener un query por consulta. Yo suelo tener un query para varias consultas asi solo me dedico al sql olvidandome de que query es el que uso. Aun asi me gusta que ampliaras el contenido, aprendemos mas todos. Saludos |
hola sandra mendoza, argentina? yo tb!!! saludos.
si bien ya han dado varias respuestas, queria hacer un aporte chiquito que capas tb te sirve. Yo muchas veces saco los datos del dbgrid( ya sea en los eventos OnClick u OnDoubleClick como tb cuando das la posibilidad de seleccionar una fila) de la siguiente forma :
Espero sirva mi aporte, saludos a todos!! |
Hola
Todos los aportes son buenos, aqui estamos para aprender unos de los otros. Saludos |
Muchas gracias por todos sus aportes. Siempre me salvan!!!
|
tengo una duda con esto
label1.caption:=DBGrid1.DataSource.DataSet.FieldByName('nombreCampo').AsString; en que evento del dbgrid coloco ese codigo si yo quiero desplazarme en dentro del dbgrid usando las teclas up down. las teclas de las flechas Arriba y Abajo me interesa que se muestre esa informacion segun el campo. de la fila que tiene el foco. no se a lo mejor un evento onrowfocus onrowfocus begin label1.caption:=DBGrid1.DataSource.DataSet.FieldByName('nombreCampo').AsString; end |
Hola JXJ.
La podrías poner en el evento OnDrawDataCell por ejemplo.
Ahora si tu intención como decis, es sólamente mostrar esa información, me parece más adecuado usar un TDBText. Saludos. :) |
Capturar valor dependiendo del mouse
Hola, he estado visitando varios temas, pero veo que este se acerca más a lo que busco pero salvo una diferencia que es la misma que siempre veo en este tipo de temas...
Yo necesito tomar el valor de no un campo previamente definido sino de cualquier campo donde haga clic, por ejemplo. tengo una tabla con cuatro campos uno es CODMONEDA, FECHAINICIAL, FECHAFINAL, TASACAMBIO y si deseo colocar el mouse en la casilla de datos por ejemplo de FECHAFINAL me tome ese valor, y si después lo deseo poner en CODMONEDA me tome ese valor... Es decir no me sirve como lo explican aquí ya que se basa siempe en tomar por ejemplo el mismo valor (CODMONEDA) pero de la fila donde se de el clic. No se si me explico, si alguién me puede ayudar muchas gracias, sigo investigando mas acerca de los eventos de GRID. Saludos. |
Creo que es lo mismo que estás pidiendo, ¿por qué no te sirve?
|
por ejemplo este código...
el va a tomar solo el valor del NombreCampo en la fila donde de clic, en mi caso no es un campo fijo, sino el mismo campo sobre el que se de clic, es decir solo tomará el valor del dato NombreCampo si se le da click encima de ese campo. por eso no me sirve me imagino debo trabajar con alguna propiedad que use el Field pero trabaje directamente con el valor de la celda.
Este código lo encontre en otra página, pero el chico lo usa para el caso de calcular posiciones, lo he intentado llevar a lo que quiero pero no lo entiendo del todo lamentablemente. |
Si alguién me pudiera ayudar, la unica forma que se me ocurre después de probar métodos y formas que no funcionan por lo menos para mi caso, tengo una idea de hacerlo y se que va a funcionar, pero necesitaría capturar la posición...
como puedo a través del posicionamiento o un clic en una celda del DBGRID capturar el número de columna, ya que no encuentro un método efectivo para obtener el valor de dicha celda, pienso que quizás sea mucho más fácil capturar el número de la columna en la que se hace clic y así por lo menos yo desarrollar mediante un if, que dato de los cuatro campos para mi tabla voy a traerme. algo así como; doy clic aquí y obtengo el valor 4, entonces estoy dando clic en la columna de NATURALEZACUENTA que es el campo... y hago mis if... if posición_campo = 4 then valorcelda:=Form5.DBGRID1.Datasource.Dataset.Fieldbyname('NATURALEZACUENTA').aSsTRING ELSE if posición_campo = 3 then valorcelda:=Form5.DBGRID1.Datasource.Dataset.Fieldbyname('FECHAFINAL').aSsTRING ELSE .... ETC, ETC. Algo así, se que me funcionaría ya que no puedo obtener el valor directo dando clic en el campo que sea, solo me faltaría la sintaxis para uno poder obtener no el valor de la celda sino la posición de la misma... espero haberme podido expicar bien y alguién me pueda ayuda, de todas maneras sigo investigando, muchas gracias. |
No olvides poner las etiquetas al código para que se vea correctamente, gracias
Lo mejor que puedes hacer es crear un hilo nuevo haciendo la pregunta lo más clara posible. Así lo verán todos, ya que ten en cuenta ahora has contestado en un hilo existente desde hace años y nadie recibe mensajes de lo que has escrito, salvo los que participan en este hilo. Y no olvides nuestra guía de estilo, gracias. |
La franja horaria es GMT +2. Ahora son las 09:43:56. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi