Data dentro de um DBEdit
Ola pessoal.
Estou desenvolvendo um projeto e estou querendo que ao clicar no botão Novo Registro, automaticamente seja inserido a data dentro do DBEdit (nomeei ele como DBEditDATACRIACAO).
Estou inserido o seguinte comando no evento OnClick do meu botão Novo Registro
procedure TfReferencias.SpeedButtonNOVOClick(Sender: TObject);
begin
DBEditDATACRIACAO.Text:= Current_Date;
end;
Então quando pressiono as teclas Shift+F9 me retorna a seguinte mensagem:
http://prntscr.com/btuyyj
Obrigado desde já pela sua atenção.
Estou desenvolvendo um projeto e estou querendo que ao clicar no botão Novo Registro, automaticamente seja inserido a data dentro do DBEdit (nomeei ele como DBEditDATACRIACAO).
Estou inserido o seguinte comando no evento OnClick do meu botão Novo Registro
procedure TfReferencias.SpeedButtonNOVOClick(Sender: TObject);
begin
DBEditDATACRIACAO.Text:= Current_Date;
end;
Então quando pressiono as teclas Shift+F9 me retorna a seguinte mensagem:
http://prntscr.com/btuyyj
Obrigado desde já pela sua atenção.
Rubens Pena
Curtidas 0
Respostas
Raylan Zibel
17/07/2016
DBEditDATACRIACAO.Text := DateToStr(Now);
DBEditDATACRIACAO.Field.AsDate := Now;
GOSTEI 0
Rubens Pena
17/07/2016
Ola Raylan, tudo bem... :)
Raylan digitei o seguinte comando
procedure TfReferencias.SpeedButtonNOVOClick(Sender: TObject);
begin
DBEditDATACRIACAO.Text:=DateToStr(Now); //<<<<<<<<<<<<<
try
PageControl1.TabIndex := 1;
DBEditSEQUENCIA.SetFocus;
BaseDados.tabelaReferencias.Append;
except
ShowMessage(''Operação Inválida!'');
end;
end;
http://prntscr.com/bu008f
Da uma olhadinha na print Raylan
e quando eu digito o segundo comando da o erro como mostrado na segunda print
http://prntscr.com/bu01b3
O que estou fazendo de errado?
Raylan digitei o seguinte comando
procedure TfReferencias.SpeedButtonNOVOClick(Sender: TObject);
begin
DBEditDATACRIACAO.Text:=DateToStr(Now); //<<<<<<<<<<<<<
try
PageControl1.TabIndex := 1;
DBEditSEQUENCIA.SetFocus;
BaseDados.tabelaReferencias.Append;
except
ShowMessage(''Operação Inválida!'');
end;
end;
http://prntscr.com/bu008f
Da uma olhadinha na print Raylan
e quando eu digito o segundo comando da o erro como mostrado na segunda print
http://prntscr.com/bu01b3
O que estou fazendo de errado?
GOSTEI 0
Raylan Zibel
17/07/2016
if not (DBEditDATACRIACAO.DataSource.DataSet.State in [dsInsert, dsEdit]) then DBEditDATACRIACAO.DataSource.DataSet.Insert; DBEditDATACRIACAO.Field.AsDate := Now;
Você só pode passar valor pra um DBField depois do Append/Insert. Você só deve passar valor pro Text do DBEdit se o Dataset correspondente estiver em modo de inserção/edição.
GOSTEI 0
Rubens Pena
17/07/2016
Raylan, te passei um email...
GOSTEI 0
Rubens Pena
17/07/2016
coloquei o codigo agora da seguinte forma
procedure TfReferencias.SpeedButtonNOVOClick(Sender: TObject);
begin
try
PageControl1.TabIndex := 1;
DBEditSEQUENCIA.SetFocus;
BaseDados.tabelaReferencias.Append;
DBEditDATACRIACAO.Field.AsDateTime; // não aparece a opção AsDate, somente essa
except
ShowMessage('Operação Inválida!');
end;
begin
if not (DBEditDATACRIACAO.DataSource.DataSet.State in [dsInsert, dsEdit]) then
DBEditDATACRIACAO.DataSource.DataSet.Insert;
end;
end;
e nao deu :/
procedure TfReferencias.SpeedButtonNOVOClick(Sender: TObject);
begin
try
PageControl1.TabIndex := 1;
DBEditSEQUENCIA.SetFocus;
BaseDados.tabelaReferencias.Append;
DBEditDATACRIACAO.Field.AsDateTime; // não aparece a opção AsDate, somente essa
except
ShowMessage('Operação Inválida!');
end;
begin
if not (DBEditDATACRIACAO.DataSource.DataSet.State in [dsInsert, dsEdit]) then
DBEditDATACRIACAO.DataSource.DataSet.Insert;
end;
end;
e nao deu :/
GOSTEI 0
Eduardo Silva.
17/07/2016
Corrreção:
procedure TfReferencias.SpeedButtonNOVOClick(Sender: TObject);
begin
try
PageControl1.TabIndex := 1;
BaseDados.tabelaReferencias.Append;
// Depois de Inserir(Append ou Insert)
DBEditDATACRIACAO.Field.AsDateTime := Now;
DBEditSEQUENCIA.SetFocus;
except
ShowMessage(''Operação Inválida!'');
end;
end;
Sugestão:
Utilize o Evento OnNewRecord da sua tabela, exemplo:
procedure TBaseDados.TabelaReferenciasNewRecord(DataSet: TDataSet);
begin
TabelaReferencias.FieldByName('DATACRIACAO').AsDateTime := Now;
TabelaReferencias.FieldByName('SEQUENCIA').FocusControl;
end;
[sds]
Eduardo Belo
e-mail: beloelogica@gmail.com
procedure TfReferencias.SpeedButtonNOVOClick(Sender: TObject);
begin
try
PageControl1.TabIndex := 1;
BaseDados.tabelaReferencias.Append;
// Depois de Inserir(Append ou Insert)
DBEditDATACRIACAO.Field.AsDateTime := Now;
DBEditSEQUENCIA.SetFocus;
except
ShowMessage(''Operação Inválida!'');
end;
end;
Sugestão:
Utilize o Evento OnNewRecord da sua tabela, exemplo:
procedure TBaseDados.TabelaReferenciasNewRecord(DataSet: TDataSet);
begin
TabelaReferencias.FieldByName('DATACRIACAO').AsDateTime := Now;
TabelaReferencias.FieldByName('SEQUENCIA').FocusControl;
end;
[sds]
Eduardo Belo
e-mail: beloelogica@gmail.com
GOSTEI 0
Rubens Pena
17/07/2016
Obrigado tanto ao Raylan como ao Eduardo Belo, pela paciência que tiveram comigo em tentar me ajudar. Graças a colaboração de ambos deu certo. A data esta sendo inserida automaticamente. Esse projeto no qual estou trabalhando, ele é muito complexo para uma programador iniciante como eu. Esse formulário de referencias que estou criando, ele vai puxar informações de outros formulários, então vou quebrar muito a mente com ele. Mas no final sairá um ótimo projeto. Mas uma vez obrigado a vocês dois pela ajuda.
GOSTEI 0