Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus-es / 2010-11

Documentación sobre grid

8 messages · 2 people · –

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Ismael L. Donis García

Donde podr�a encontrar ejemplos o documentaci�n de utilizaci�n de grid, no los que trae la instalaci�n, ya que en ellos no encontr� lo que necesito:

1.- Validar datos introducidos en celdas antes de cambiar para otra celda: a) Que el valor no est� vac�o.
b) Que el valor no sean espacios.
c) Que sean valores num�ricos los escritos.
d) Comparar el valor introducido con el valor de otra celda y en el caso de no cumplir alguna condici�n no permitirlo. e) Realizar operaciones en varias celdas al introducir un valor. f) etc

Cualquier ayuda ser� bien venida, aunque sea un link para ejemplos, aunque no tengo acceso a Internet los puedo buscar a trav�s de un amigo.

Me sirve todo lo que de una forma u otra me ayude con este tema.

Saludos afectuosos y perdonen por el pedido tan grande. =========
|| ISMAEL ||
=========
------------ pr�xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20101130/46ee3c6a/attachment.html>

Reply by email

José Mejuto
to Ismael L. Donis García

Hello Ismael,

Tuesday, November 30, 2010, 5:22:44 PM, you wrote:

ILDG> Donde podr�a encontrar ejemplos o documentaci�n de ILDG> utilizaci�n de grid, no los que trae la instalaci�n, ya que en ILDG> ellos no encontr� lo que necesito:

DBGrid, StringGrid, OwnerDrawGrid ?....

Best regards, Jos�

Reply by email

Ismael L. Donis García
to José Mejuto

DBGrid, nunca he mirado el OwnerDrawGrid, por lo que no se que funciones tiene, le echar� una mirada. Una pregunta funciona tanto enlazado a datos con sin enlace?

Vengo de Microsoft y la verdad que no he podido hacer ni una centena parte de lo que hago all� y no he podido encontrar como resolver los problemas.

Saludos cordiales
=========
|| ISMAEL ||
=========

Earlier message 23 lines
----- Original Message ----- From: "Jos� Mejuto" <joshyfun en gmail.com> To: "Spanish version of Lazarus List" <lazarus-es en lists.lazarus.freepascal.org> Sent: Thursday, December 02, 2010 5:52 AM Subject: Re: [Lazarus-es] Documentaci�n sobre grid Hello Ismael, Tuesday, November 30, 2010, 5:22:44 PM, you wrote: ILDG> Donde podr�a encontrar ejemplos o documentaci�n de ILDG> utilizaci�n de grid, no los que trae la instalaci�n, ya que en ILDG> ellos no encontr� lo que necesito: DBGrid, StringGrid, OwnerDrawGrid ?.... -- Best regards, Jos�

Reply by email

José Mejuto
to Ismael L. Donis García

Hello Ismael,

Thursday, December 2, 2010, 6:23:27 PM, you wrote:

ILDG> DBGrid, nunca he mirado el OwnerDrawGrid, por lo que no se que funciones ILDG> tiene, le echar� una mirada. Una pregunta funciona tanto enlazado a datos ILDG> con sin enlace?

ILDG> Vengo de Microsoft y la verdad que no he podido hacer ni una centena parte ILDG> de lo que hago all� y no he podido encontrar como resolver los problemas.

Yap, eso me pas� a mi tambi�n, bueno, parecido.

En el OwnerDrawGrid, tu haces todo, hasta pintar el contenido de las celdas. As� que creo que para lo tuyo no vale.

Tu "problema" es que vienes de MS donde las cosas con BDs se hacen en digamos 2 niveles.

Edici�n datos -> Base de datos

Mientras que en Lazarus, Delphi, y otros muchos se hacen en tres:

Edici�n datos -> Reglas de negocio -> Base de datos

Para un DBGrid esto ser�a m�s o menos:

DBGrid -> TSQLQuery -> Base de datos

Todas o casi todas las condiciones que has puesto como ejemplo se hacen en la capa de "reglas de negocio", como si un campo est� en blanco, eso lo compruebas en el "BeforePost". Con esto consigues que las reglas que rigen la integridad de los datos no sean dependientes del objeto visual que los edite, as� cambiar un TEditBox por un TComboBox requiere muy pocos cambios en el c�digo y ninguno en la l�gica de integridad de datos.

El �nico problema es cuando necesitas que los datos editados sean interdependientes entre diferentes registros de la base de datos, como por ejemplo (ficticio) en la entrada de un albar�n de venta que el operador no pueda vender el mismo producto dos veces en el mismo documento.

Este tipo de comprobaciones nos obligan a editar las lineas de un albar�n como un "todo" ya que deberemos mover el registro de la base de datos para comprobar que no haya sido introducido con anterioridad.

Yo en estos casos copio los datos actuales a un MEMDS y esos datos los edito con un TDBGrid, pero el memds no necesita accesos continuos a la BD, pero lo malo es que tengo que comprobar las reglas de negocio en el propio DBGrid es muchas ocasiones.

Resumiendo, haz todo lo que puedas en el TSQLQuery (BeforePost, AfterPost, beforeCancel, ...) y si hay algo que se escapa pues hay que irse a cosas m�s complicadas.

Best regards, Jos�

Reply by email

Ismael L. Donis García
to José Mejuto

Mil Gracias, por lo que veo tendr� que cambiar la forma de pensar de como hacer las cosas.

Saludos reiterados
=========
|| ISMAEL ||
=========

Earlier message 73 lines
----- Original Message ----- From: "Jos� Mejuto" <joshyfun en gmail.com> To: "Spanish version of Lazarus List" <lazarus-es en lists.lazarus.freepascal.org> Sent: Thursday, December 02, 2010 4:45 PM Subject: Re: [Lazarus-es] Documentaci�n sobre grid Hello Ismael, Thursday, December 2, 2010, 6:23:27 PM, you wrote: ILDG> DBGrid, nunca he mirado el OwnerDrawGrid, por lo que no se que funciones ILDG> tiene, le echar� una mirada. Una pregunta funciona tanto enlazado a datos ILDG> con sin enlace? ILDG> Vengo de Microsoft y la verdad que no he podido hacer ni una centena parte ILDG> de lo que hago all� y no he podido encontrar como resolver los problemas. Yap, eso me pas� a mi tambi�n, bueno, parecido. En el OwnerDrawGrid, tu haces todo, hasta pintar el contenido de las celdas. As� que creo que para lo tuyo no vale. Tu "problema" es que vienes de MS donde las cosas con BDs se hacen en digamos 2 niveles. Edici�n datos -> Base de datos Mientras que en Lazarus, Delphi, y otros muchos se hacen en tres: Edici�n datos -> Reglas de negocio -> Base de datos Para un DBGrid esto ser�a m�s o menos: DBGrid -> TSQLQuery -> Base de datos Todas o casi todas las condiciones que has puesto como ejemplo se hacen en la capa de "reglas de negocio", como si un campo est� en blanco, eso lo compruebas en el "BeforePost". Con esto consigues que las reglas que rigen la integridad de los datos no sean dependientes del objeto visual que los edite, as� cambiar un TEditBox por un TComboBox requiere muy pocos cambios en el c�digo y ninguno en la l�gica de integridad de datos. El �nico problema es cuando necesitas que los datos editados sean interdependientes entre diferentes registros de la base de datos, como por ejemplo (ficticio) en la entrada de un albar�n de venta que el operador no pueda vender el mismo producto dos veces en el mismo documento. Este tipo de comprobaciones nos obligan a editar las lineas de un albar�n como un "todo" ya que deberemos mover el registro de la base de datos para comprobar que no haya sido introducido con anterioridad. Yo en estos casos copio los datos actuales a un MEMDS y esos datos los edito con un TDBGrid, pero el memds no necesita accesos continuos a la BD, pero lo malo es que tengo que comprobar las reglas de negocio en el propio DBGrid es muchas ocasiones. Resumiendo, haz todo lo que puedas en el TSQLQuery (BeforePost, AfterPost, beforeCancel, ...) y si hay algo que se escapa pues hay que irse a cosas m�s complicadas. -- Best regards, Jos�

Reply by email

José Mejuto
to Ismael L. Donis García

Hello Ismael,

Friday, December 3, 2010, 3:05:30 PM, you wrote:

ILDG> Mil Gracias, por lo que veo tendr� que cambiar la forma de pensar de como ILDG> hacer las cosas.

Pues la verdad es que no se si te habr� liado m�s que antes :)

Best regards, Jos�

Reply by email

Ismael L. Donis García
to José Mejuto

Si tuvieras alg�n peque��n ejemplo que me enviase a mi privado me ser�a de gran utilidad, pedido que hago extensivo al resto de la lista. No es que quiera que me hagan las cosas, como no tengo Internet a uno cuando cambia de sistema como medio que se le l�an las cosas. De todos modos seguir� trat�ndome de acabar con los pocos pelos en la cabeza que me quedan.

Saludos reiterados
=========
|| ISMAEL ||
=========

Earlier message 23 lines
----- Original Message ----- From: "Jos� Mejuto" <joshyfun en gmail.com> To: "Spanish version of Lazarus List" <lazarus-es en lists.lazarus.freepascal.org> Sent: Friday, December 03, 2010 12:04 PM Subject: Re: [Lazarus-es] Documentaci�n sobre grid Hello Ismael, Friday, December 3, 2010, 3:05:30 PM, you wrote: ILDG> Mil Gracias, por lo que veo tendr� que cambiar la forma de pensar de como ILDG> hacer las cosas. Pues la verdad es que no se si te habr� liado m�s que antes :) -- Best regards, Jos�

Reply by email

José Mejuto
to Ismael L. Donis García

Hello Ismael,

Friday, December 3, 2010, 7:02:07 PM, you wrote:

ILDG> Si tuvieras alg�n peque��n ejemplo que me enviase a mi privado me ser�a de ILDG> gran utilidad, pedido que hago extensivo al resto de la lista. No es que ILDG> quiera que me hagan las cosas, como no tengo Internet a uno cuando cambia de ILDG> sistema como medio que se le l�an las cosas. De todos modos seguir� ILDG> trat�ndome de acabar con los pocos pelos en la cabeza que me quedan.

El problema de los ejemplos de las bases de datos, es que o tienes la base de datos o el ejemplo se hace un lio.

Intentar� hacer algo con MEMDS y dos o tres campos.

Best regards, Jos�

Reply by email