PDA

Ver la Versión Completa : No puedo Escribir en un dbgrid


JULIPO
20-03-2009, 00:49:40
Reciban un cordial saludo.

TEngo una base de datos en Mysql Dephi 2007 utilizo zeos, el problema es el siguiente tengo un db grid conectado a una zquery el me muestra los datos relacionados con la tabla sin problema, pero necesito colocar un dato que no pertenece a la tabla, es una variable informativa no la quiero almacenar simplemente mostrarla pero no se como hacerlo.

He revisado el foro y aparecen varias preguntas similares pero no funcionan las respuesta.

Espero me puedan ayudar.

Julipo

Neftali [Germán.Estévez]
20-03-2009, 09:54:37
...pero necesito colocar un dato que no pertenece a la tabla, es una variable informativa no la quiero almacenar simplemente mostrarla pero no se como hacerlo.

¿Pero si no está relacionada con la tabla de dónde sale? ¿Qué deseas mostrar en los registros? ¿Todos con el mismo dato? ¿Hay alguna relación?

Tal vez puedeas probar creando campos calculados en el Dataset asociado al DBGrid, pero no me queda claro qué deseas mostrar para cada registro de la consulta.

JULIPO
20-03-2009, 21:57:59
El dato es una variable que me indica que cantidad de datos tiene una lectora biometrica es un dato que no pertenece a la tabla ni quiero que se almacene en la tabla, simplemente mostrarlo es eso posible

rgstuamigo
21-03-2009, 15:01:20
...simplemente mostrarlo es eso posible
Y por que no utilizas un Edit o algun otro control? :confused: o tiene ser en la tabla?
Medio que no te entiendo lo que pretendes hacer...:rolleyes:.
Saludos....:)

JULIPO
30-03-2009, 21:43:06
La tabla contiene el nombre de la lectora, la direccion ip, y la configuracion basica, con esta informacion creamos la conexion a cada lectora,cuando nos conectamos la lectora nos indica un numero que corresponde a los registros que ella tiene almacenados o que recopilo cuando no estaba en linea con el pc, esa informacion es la que quiero colocar en el dbgrid sin que pertenezca a la tabla por que inmediatamente se hace una descarga y ese numero debe llegar a ser 0 hay un numero por cada lectora si la ingreso en un edit o un label tengo que colocar tantos controles como lectoras tenga el sistema lo que lo hace nada practico. igual la idea es que el dato se coloque sin importar de donde salio aclaro nuevamente no pertenece a la tabla y no es practico almacenarlo en la tabla.

rgstuamigo
31-03-2009, 21:54:06
...hay un numero por cada lectora si la ingreso en un edit o un label tengo que colocar tantos controles como lectoras tenga el sistema lo que lo hace nada practico. igual la idea es que el dato se coloque sin importar de donde salio aclaro nuevamente no pertenece a la tabla y no es practico almacenarlo en la tabla.
Pero acaso es necesario almacenar o visualizar todos los numero de cada lectora al mismo tiempo?:confused:Lo que yo haria seria que utilizara el evento AfterScroll del ZQuery y pondria en un edit o label lo siguiente:
Edit1.Text:=IntToStr(Numero_de_lectora);//Esto en el evento AfterScroll del ZQuery
Numero_de_lectora seria el numero de lectora que esta actualmente selecionado o que esta apuntando la flechita de el DBGrid que muestra los datos o talves necesites hacer algun calculo quisas de acuerdo a algun Field que es Primary Key de tu tabla.Osea que cuando el usuario va navegando se va mostrar en el edit el numero de lectora que corresponde al actual registro seleccionado en el DbGrid. Espero que captes la idea.;)
Saludos....:cool:

JULIPO
31-03-2009, 22:23:57
no busco la respuesta mas facil busco una solucion a mi problema, por que ademas de todo todas las lectoras tienen informacion, si hago lo que dices solo veo la informacion de una unica lectora eso es una salida facil y creeme que no es la idea, la idea es mostrar la informacion de todas las lectoras al tiempo ahora si no hay forma de escribir una variable en una columna del DBgrid buscar otro componente pero no colocar la informacion en un edit.

De todos modos gracias por tu respuesta.

Julipo

rgstuamigo
31-03-2009, 22:36:04
no busco la respuesta mas facil busco una solucion a mi problema, por que ademas de todo todas las lectoras tienen informacion, si hago lo que dices solo veo la informacion de una unica lectora eso es una salida facil y creeme que no es la idea, la idea es mostrar la informacion de todas las lectoras al tiempo ahora si no hay forma de escribir una variable en una columna del DBgrid buscar otro componente pero no colocar la informacion en un edit.

De todos modos gracias por tu respuesta.

Julipo
Bueno entonces utiliza un StringGrid y ahi copias los datos tu DBGrid con algun procedimiento, adicionandole una columna mas para lo que nesecitas..;)
Saludos....:cool:

rgstuamigo
06-04-2009, 21:27:08
Tambien en este hilo (http://www.clubdelphi.com/foros/showthread.php?t=64478) se ha tratado algo parecido a lo que estas buscando,y parece que la solucion anda por agregar los Campos(Field) manualmente y aumentar los campos que quieras,checkealo.;)

roman
06-04-2009, 23:36:19
Si cada registro corresponde a una lectora y debes colocar un dato por cada lectora en una columna extra, entonces agrega un campo calculado tal como te indico Neftalí desde un principio. En el evento OnCalcFields del dataset te conectarías a la lectora para obtener el número que quieres y es lo que aparecería en el DBGrid.

Ahora bien, ese evento se ejecuta cada vez que el DBGrid deba poner un valor, lo cual puede ocurrir muchas veces, quizá demasiadas si la consulta del dato lleva tiempo. No sé cuántas lectoras tengas, pero si no son muchas, podrías tener un arreglo en memoria con para almacenar los datosde cada lectora. En el evento OnCalcFields te fijas si el dato correspondiente a la lectora del registro actual ya está en el arreglo. Si no está lo consultas, y si ya está, tomas directamente el dato del arreglo.

// Saludos