FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
2 DBGrid para 1 Dataset base (utilizando DataSetProvider y ClientDataSet)
Hola a todos! Hace poco me di cuenta que he estado haciendo mucho trabajo a pata y que existen componentes que me simplican la vida. Particularmente hablo de TClientDataSet. Mas de uno sabrá lo que se siente cargar los datos de una consulta a componentes visuales comunes (edit, label, memo) y volcar todos los datos por consulta cuando se ha aceptado y validado la información.
Es mi culpa por no haber leído un poco más en su momento de la ayuda en Inglés de mi Delphi 5.... Bueno, sacar un poco mi ignorancia respecto, a esto me llevo a querer buscar otras formas fáciles para hacer lo que sería un trabajo artesanal. Lo que quiero hacer: Escribo una aplicación de gestion de miembros de un gimnasio, actividades en las que participa y cuotas correspondientes. Tengo una pestaña que me muestra todas las cuotas del miembro elegido. Los datos de las cuotas son:
DBGridSup --> muestra cuotas Debe DBGridInf --> muestra cuotas Pago, Falto, No se dicta La objetos propuestos (ayuda de acá en adelante) son: DataSet1 --> trae todas las cuotas de ese miembro DataSetProvider -> DataSet1 ClientDataSetSup -> DataSetProvider --> lo asocia DBGridSup ClientDataSetInf -> DataSetProvider --> lo asocia DBGridInf A ClientDataSetSup le pongo un filtro para que muestre las cuotas Debe (estado=3) A ClientDataSetInf le pongo un filtro para que muestre todos los demás (estado<>3) Mi idea era asociar de alguna manera los DBGrid para que cuando cambio datos en uno, si cumple X condición, deja de aparecer en un listado y aparece en el otro DBGrid. Todo esto usando ClienteDataSet para que no sean efectivos los cambios hasta que uno diga "Si, acepto" ... uuu que feo sonó. Demás está decir que mi configuración no cumple los objetivos. Creo que la estoy pifiando conceptualmente. Intenté usar ApplyUpdates(0) para ver si eso hacia que lo que desaparecía en un DBGrid aparecia en el otro y no funciono. Les agradezco a quien me pueda tirar un poco de luz sobre este asunto. Saludos! Última edición por jphv fecha: 10-04-2009 a las 22:52:41. Razón: ampliar descripcion de titulo |
#2
|
|||
|
|||
He entendido que cada vez que hagas un cambio en un DBGrid, en el otro debe aparecer o no dependiendo del cambio que hagas. Creo que lo mejor es que cada vez que hagas el cambio refresques el DBGrid, para ver si hay cambios.
Saludos. |
#3
|
||||
|
||||
Gracias Rockin! Aplicar Refresh era lo que faltaba hacer para mostrar los cambios luego del ApplyUpdates.
Jugué un poco con una aplicación de pruebas Proyect1 =) de siempre para despejar dudas y me choqué con la cruda realidad. El ApplyUpdates necesario antes de Refresh me manda los cambios a la base de datos x( Así pues, me quedo sin la posibilidad de cancelar dichos cambios. Seguí buscando y encontré el procedimiento CloneCursor. Ahora, teniendo el ClientDataSet1 y su clon, los cambios en uno se ven en el DBGrid que les corresponde de manera automática y sólo es necesario el ApplyUpdates o CancelUpdates según lo que se decida al final. Ahora voy a renegar con los campos fkCalculated o fkLookUp que me estan dando problemas en los ApplyUpdates. Saludos! |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Copiar el contenido de un DataSet a otro DataSet | Javi2 | Varios | 82 | 22-11-2022 09:26:16 |
Se puede usar un DBGrid sin ningun Dataset | rgstuamigo | OOP | 4 | 06-02-2009 23:07:17 |
Actualizar un dataset desde otro dataset | jafera | Conexión con bases de datos | 17 | 18-12-2008 23:57:10 |
Ver DataSet en un DBGrid | Cecilio | Conexión con bases de datos | 4 | 08-09-2007 18:14:32 |
para las columnas del dbgrid | jhcaboverde | Varios | 8 | 07-02-2007 19:27:58 |
|