Fórum Duvida com relação a grid #364396
28/09/2008
0
...não sei se é aqui o local para duvidas...fiz o cadastro hj...to meio perdido...rs
Estou com problemas com grid e gostaria q alguem me ajudasse.
Problema: eu gostaria de inserir os dados direto em um grid e salva-los no banco qdo clico em um botão e tambem queria q depois de exibidos esses dados em uma consulta posteiror o sistema gravasse os registro que eu alterei clicando em outro botão...espero q tenha sido claro, o q eu quero é uma tela de cadastro e alteração, consulta e exclusão tudo direto em um grid... gostaria de um exemplo simples...
Danielcsg
Curtir tópico
+ 0Posts
28/09/2008
Paullsoftware
Gostei + 0
29/09/2008
Catunda
Com essas rotinas a inclusão, alteração ou exclusão será confirmada ou cancelada imediatamente, sem ter de clicar em botão algum.
A variável flag vc pode criar como private do tipo Boolean.
Quando o cursor estiver no DBGrid a propriedade KeyPreview do Form tem de estar como False.
No DBGrid1.Options.ConfirmDelete:=false.
Se houver DBNavigator ligado ao DBGrid colocar a propriedade ConfirmDelete:=false.
Evento OnKeyDown do DBGrid:
procedure TForm1.DBGrid1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (Chr(Key)<>#13) then exit;
if (DBGrid1.SelectedIndex+1<>DBGrid1.FieldCount) then
DBGrid1.SelectedIndex:=DBGrid1.SelectedIndex+1
else
begin
if (DBGrid1.SelectedIndex=DBGrid1.FieldCount-1) then
begin
DBGrid1.DataSource.DataSet.Next;
if DBGrid1.DataSource.DataSet.EOF then DBGrid1.DataSource.DataSet.Append;
DBGrid1.SelectedIndex:=DBGrid1.SelectedIndex-DBGrid1.FieldCount-1;
end;
end;
end;
Enventos do ClientDataSet ( CDS1 ):
procedure TForm1.Cds1BeforePost(DataSet: TDataSet);
begin
if MessageDlg(´Confirma os Dados?´,mtConfirmation,[mbYes,mbNo],0)<>mrYes then
begin
Cds1.CancelUpdates;
Abort;
end;
end;
procedure TForm1.Cds1AfterDelete(DataSet: TDataSet);
begin
Cds1.ApplyUpdates(0);
end;
procedure TForm1.Cds1AfterPost(DataSet: TDataSet);
begin
Cds1.ApplyUpdates(0);
Cds1.Refresh;
if flag then Cds1.Append;
flag:=false
end;
procedure TForm1.Cds1BeforeDelete(DataSet: TDataSet);
begin
if MessageDlg(´Confirma Exclusão?´,mtConfirmation,[mbOk,mbNo],0)<>mrOk then
Abort;
end;
procedure TForm1.Cds1AfterEdit(DataSet: TDataSet);
begin
if cds1.State=dsInsert then flag=true else flag:=false;
end;
Espero que ajude.
Gostei + 0
30/09/2008
Danielcsg
Gostei + 0
30/09/2008
Danielcsg
Sobre buscar no proprio forum não sei como buscar e nem pelo que buscar :<...espero q me ajudem...
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)