Fórum Data dentro de um DBEdit #559338
17/07/2016
0
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
Curtir tópico
+ 0Posts
17/07/2016
Raylan Zibel
DBEditDATACRIACAO.Text := DateToStr(Now);
DBEditDATACRIACAO.Field.AsDate := Now;
Gostei + 0
17/07/2016
Rubens Pena
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
17/07/2016
Raylan Zibel
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
17/07/2016
Rubens Pena
Gostei + 0
17/07/2016
Rubens Pena
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
17/07/2016
Eduardo Silva.
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
17/07/2016
Rubens Pena
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)