Duvida com relação a grid
Ola.
...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...
...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
Curtidas 0
Respostas
Paullsoftware
28/09/2008
olá amigo, no site da www.devmedia.com.br existem vários artigos e exemplos simples de cadastro inclusive com video-aulas... pesquisa lá blz? espero ter ajudado :wink:
GOSTEI 0
Catunda
28/09/2008
Experimente os procedimentos abaixo:
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.
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
Danielcsg
28/09/2008
Valew aos dois...vou testar...
GOSTEI 0
Danielcsg
28/09/2008
Então ainda não é bem isso que eu preciso...preciso um exemplo simples mas com os botões se incluir registros ´varios registros´ e no fim salvar todos de uma so vez atraves de um botão salvar...um de alterar...um de exluir...nesse estilo...
Sobre buscar no proprio forum não sei como buscar e nem pelo que buscar :<...espero q me ajudem...
Sobre buscar no proprio forum não sei como buscar e nem pelo que buscar :<...espero q me ajudem...
GOSTEI 0