Fórum Data dentro de um DBEdit #559338

17/07/2016

0

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.
Rubens Pena

Rubens Pena

Responder

Posts

17/07/2016

Raylan Zibel

DBEditDATACRIACAO.Text := DateToStr(Now);


DBEditDATACRIACAO.Field.AsDate := Now;
Responder

Gostei + 0

17/07/2016

Rubens Pena

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?
Responder

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.
Responder

Gostei + 0

17/07/2016

Rubens Pena

Raylan, te passei um email...
Responder

Gostei + 0

17/07/2016

Rubens Pena

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 :/
Responder

Gostei + 0

17/07/2016

Eduardo Silva.

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
Responder

Gostei + 0

17/07/2016

Rubens Pena

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.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar