Dúvida DBGrid
22/06/2008
0
Saudações!
Tenho uma tela que possui um dbgrid e 2 botões (Incluir, Cancelar e Gravar). Quando clico em Incluir, dou um append para criar uma linha em branco para que o usuário possa fazer o cadastro. Pois bem, o dbgrid possui apenas duas colunas, vamos supor que ele desista de gravar, depois de preenche-las, então ele clica no Cancelar, para deletar a linha que foi inserida com as células preenchidas, sem gravar. Aí é que está o problema, não está apagando como se deve.
Já tentei (no cancelar):
dbgrdData.SelectedRows.Clear; ou
dbgrdData.SelectedRows.Delete; ou
dbgrdData.DataSource.DataSet.Cancel;
(Este bateu na trave, o problema é que se eu selecionar algum registro acima, com uma das células já preenchidas, não deleta).
Nesta última situação, acho que não deleta porque estava tentando cancelar uma operação feita na célula que eu cliquei.
Finalizando, preciso cancelar uma linha que eu preenchi os dados e ainda não gravei, essa é uma situação que pode ocorrer, o usuário tem que ter a possibilidade de cancelar aquilo que ele começou a fazer.
FIco no aguardo para sugestões sobre este problema.
[]s
Tenho uma tela que possui um dbgrid e 2 botões (Incluir, Cancelar e Gravar). Quando clico em Incluir, dou um append para criar uma linha em branco para que o usuário possa fazer o cadastro. Pois bem, o dbgrid possui apenas duas colunas, vamos supor que ele desista de gravar, depois de preenche-las, então ele clica no Cancelar, para deletar a linha que foi inserida com as células preenchidas, sem gravar. Aí é que está o problema, não está apagando como se deve.
Já tentei (no cancelar):
dbgrdData.SelectedRows.Clear; ou
dbgrdData.SelectedRows.Delete; ou
dbgrdData.DataSource.DataSet.Cancel;
(Este bateu na trave, o problema é que se eu selecionar algum registro acima, com uma das células já preenchidas, não deleta).
Nesta última situação, acho que não deleta porque estava tentando cancelar uma operação feita na célula que eu cliquei.
Finalizando, preciso cancelar uma linha que eu preenchi os dados e ainda não gravei, essa é uma situação que pode ocorrer, o usuário tem que ter a possibilidade de cancelar aquilo que ele começou a fazer.
FIco no aguardo para sugestões sobre este problema.
[]s
Roger1976
Curtir tópico
+ 0
Responder
Posts
22/06/2008
Joaoshi
Colega, utilize o evento [b:061f478f40]BeforePost[/b:061f478f40] do DataSet e faça a verificação.
Ex.:
Espero ter ajudado.
Ex.:
if DataSet.State = dsInsert then begin if FaltouAlgumaCoisa then ABORT; end;
Espero ter ajudado.
Responder
24/06/2008
Roger1976
amigo, desculpe-me pela demora, eu tinha pensado em vários eventos e não me lembrei deste.
Valeu!
Valeu!
Responder
Clique aqui para fazer login e interagir na Comunidade :)