Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Go Back   Foros Club Delphi > Principal > Varios
Register FAQ Members List Calendar Guía de estilo Today's Posts

Coloboración Paypal con ClubDelphi

Reply
 
Thread Tools Search this Thread Display Modes
  #1  
Old 21/05/2016
mblascog mblascog is offline
Miembro
 
Join Date: May 2006
Posts: 131
Poder: 21
mblascog Va por buen camino
Controlar si una tabla está vacía

Buenas,
Tengo un dbgrid que apunta a una tabla y al lado los típicos botones de añadir, modificar y borrar. La pregunta es: en qué evento o donde, tengo que mirar si la tabla está vacía para activar o desactivar dichos botones, es decir, quiero poner enabled=false al botón borrar si la table está vacía, por ejemplo
Pero la cosa se complica ya que esta tabla la tengo unida a otra (mastersource), también con los botones de añadir, modificar y borrar. Conforme me voy desplazando por el dbgrid principal, la tabla secundaria, lógicamente, también cambia de registros, y quiero activar o desactivar botones según el caso.

Gracias.
Reply With Quote
  #2  
Old 21/05/2016
Caminante's Avatar
Caminante Caminante is offline
Miembro
 
Join Date: Oct 2010
Location: Lima - Peru
Posts: 338
Poder: 16
Caminante Va camino a la fama
Hola

Usa la propiedad isempty despues de activar el dataset.

Saludos
__________________
Caminante, son tus huellas el camino y nada más; Caminante, no hay camino, se hace camino al andar.
Antonio Machado
Reply With Quote
  #3  
Old 21/05/2016
ecfisa's Avatar
ecfisa ecfisa is offline
Moderador
 
Join Date: Dec 2005
Location: Tres Arroyos, Argentina
Posts: 10,508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola mblascog.

El boton borrar no esta habilitado si la tabla está vacía; solo están habilitados los botones: insertar, editar y refrescar; lo que me parece un comportamiento lógico.

Pero de todos modos si tu intención es deshabilitar todos los botones cuando no haya datos en la tabla, creo que un evento adecuado es OnDataChange de los TDataSources. Y para comprobar la existencia de datos, la propiedad IsEmpty como ya lo dijo Caminante
Código Delphi [-]
...
interface
...
type
  // Para acceder a la propiedad protegida Buttons:
  TDBNavigator = class(DBCtrls.TDBNavigator); 

  TForm1 = class(TForm)
  ...

implementation

// DataSource Detail - OnDataChange
procedure TForm1.dsDetailDataChange(Sender: TObject; Field: TField);
var
  i : TNavigateBtn;
begin
  for i := Low(TNavigateBtn) to High(TNavigateBtn) do
    DBNavigatorDetail.Buttons[i].Enabled := not dsDetail.DataSet.IsEmpty;
end;

// DataSource Master - OnDataChange
procedure TForm1.dsMasterDataChange(Sender: TObject; Field: TField);
var
  i : TNavigateBtn;
begin
  for i := Low(TNavigateBtn) to High(TNavigateBtn) do
    DBNavigatorMaster.Buttons[i].Enabled := not dsMaster.DataSet.IsEmpty;
end;

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Reply With Quote
  #4  
Old 21/05/2016
mblascog mblascog is offline
Miembro
 
Join Date: May 2006
Posts: 131
Poder: 21
mblascog Va por buen camino
Creo que no me he expresado bien. Tengo un dgbrid con registros, y un segundo dbgrid que apunta a otra tabla pero unido al primero. Cada vez que selecciono un registro del primer dbgrid, el segundo puede o no contener registros, por lo que no se trata de mirar la propiedadi isEmpty del dataset al activarlo.
Reply With Quote
  #5  
Old 21/05/2016
Caminante's Avatar
Caminante Caminante is offline
Miembro
 
Join Date: Oct 2010
Location: Lima - Peru
Posts: 338
Poder: 16
Caminante Va camino a la fama
Yo creo que si.

EL DBGrid esta conectado a un datasource y este a un dataset. Para ver si el dataset esta vacio mira el valor de la propiedad isempty.
__________________
Caminante, son tus huellas el camino y nada más; Caminante, no hay camino, se hace camino al andar.
Antonio Machado
Reply With Quote
  #6  
Old 21/05/2016
mblascog mblascog is offline
Miembro
 
Join Date: May 2006
Posts: 131
Poder: 21
mblascog Va por buen camino
Caminante, yo buscaba algo parecido al evento onStateChange del datasource, que es automático. Si tengo que comprobar si el dataset isEmpty, cada vez que se cambia de registro tengo que comprobarlo
Reply With Quote
  #7  
Old 23/05/2016
rastafarey's Avatar
rastafarey rastafarey is offline
Miembro
 
Join Date: Nov 2003
Posts: 927
Poder: 23
rastafarey Va por buen camino
Usa un taction de tipo delete(mira en los tipos de acciknes) y al relacionarse con el dataset todo se hace solo, lo asignas al botón y listo mijo lindo.

Enviado desde mi SM-G900H mediante Tapatalk
__________________
Todo se puede, que no exista la tecnología aun, es otra cosa.
Reply With Quote
  #8  
Old 23/05/2016
mblascog mblascog is offline
Miembro
 
Join Date: May 2006
Posts: 131
Poder: 21
mblascog Va por buen camino
Gracias rastafarey, pero no entiendo mucho a que te refieres. Lo siento
Reply With Quote
  #9  
Old 30/05/2016
rastafarey's Avatar
rastafarey rastafarey is offline
Miembro
 
Join Date: Nov 2003
Posts: 927
Poder: 23
rastafarey Va por buen camino
Si tienes un datasource conectado a un dataset, creas un tactiondelete (mira en lista de los taction a ver si ese el nombre) y esa action le asignas el datasource, ya no tienes que controlar el botón porque el datasource se encarga de habilitar o desahabilitar él estado de dicho boton, asi también pueder usar para edit, insert o cualquier accion que se pueda aplicar a dicha nase de datos. Es lo mismo que tener un tnavigator, pero con taction y botones del tipo que yi quieras.

Enviado desde mi SM-G900H mediante Tapatalk
__________________
Todo se puede, que no exista la tecnología aun, es otra cosa.
Reply With Quote
  #10  
Old 30/05/2016
mblascog mblascog is offline
Miembro
 
Join Date: May 2006
Posts: 131
Poder: 21
mblascog Va por buen camino
Gracias rastafarey. Tengo que mirarlo, pues desconozco de lo que me hablas, pero me parece muy interesante
Reply With Quote
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Traer un valor de un campo de la Tabla (Access) incluso si esta vacia nefore Conexión con bases de datos 4 16/06/2013 22:45
Añadir registro en tabla firebird si la tabla está vacia jafera Firebird e Interbase 19 22/08/2012 11:59
SelectedRows esta vacia Paulao Varios 2 12/03/2009 10:26
preguntar por una imagen si esta vacia ingel Gráficos 2 10/05/2007 19:22
¿No se puede desactivar un ADOTABLE cuando la tabla está vacia? User_Baja_2 Conexión con bases de datos 1 12/06/2004 18:35


All times are GMT +2. The time now is 08:51.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi