Controle no grid
Estou fazendo um controle de retirada de livros no grid,
e estou incluindo uma novo controle quando aperto o INSERT, ate ai
tudo bem, estou conseguindo fazer mas gostaria de fazer o seguinte controle. nome data da Retirada data da retirada
Jose Peraria 15/02/2010 Quando eu aperto o insert novamente, gostaria de colocar um trava,
dizendo que nao é possivel incluir o registro, pois nao tem data de retirada,
resumindo, so é possivel apertar incluir o registro SOMENTE quando a
data da retirada for preenchida. Cadastrei o registro acima no grid, e comente gravo, quando eu aperto finalizar onde
uso o comando o APPLYUPDATE
e estou incluindo uma novo controle quando aperto o INSERT, ate ai
tudo bem, estou conseguindo fazer mas gostaria de fazer o seguinte controle. nome data da Retirada data da retirada
Jose Peraria 15/02/2010 Quando eu aperto o insert novamente, gostaria de colocar um trava,
dizendo que nao é possivel incluir o registro, pois nao tem data de retirada,
resumindo, so é possivel apertar incluir o registro SOMENTE quando a
data da retirada for preenchida. Cadastrei o registro acima no grid, e comente gravo, quando eu aperto finalizar onde
uso o comando o APPLYUPDATE
Evandro Abreu
Curtidas 0
Respostas
Eriley Barbosa
17/09/2010
Faça o teste no evento BeforePost do ClientDataset.
if NameDoSeuClientDataset.FieldByName('NameDoSeuCampoDeData').IsNull then
begin
ShowMessage('Preencha o campo XXXX');
NameDoSeuClientDataset.FieldByName('NameDoSeuCampoDeData').FocusControl;
Abort;
end;
GOSTEI 0
Evandro Abreu
17/09/2010
Ele nao passa no after beforepost, segue abaixo meu codigo:
procedure TformCadBiblioteca.JvDBGrid2KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState); begin
if Key = 13 then
begin
try
cdsCadBibliotecaRetirada.FieldByName('codigo').asinteger:=vvalor;
except end; if ((cdsCadBibliotecaRetiradadataentrega.AsString <> '') and (cdsCadBibliotecaRetiradadataentrega.AsDateTime < cdsCadBibliotecaRetiradadataretirada.AsDateTime)) then
begin
dm.cdsSql.Close;
with dm.cdsSql do
begin
cString:= 'select [mensagemBRA],[mensagemBRA1],[mensagemEUA], [mensagemEUA1], ';
cString:= cString + ' [mensagemESP],[mensagemESP1] from [SID].[dbo].[mensagens] WHERE sequencia = 14';
DataRequest(cString);
open;
end;
if FormPrincipal.vidioma = 'BRA' then
Msg(dm.cdsSql.FieldByName('mensagemBRA').AsString,dm.cdsSql.FieldByName('mensagemBRA1').AsString,'','',True,False,'&OK','','',msgErro);
if FormPrincipal.vidioma = 'EUA' then
Msg(dm.cdsSql.FieldByName('mensagemEUA').AsString,dm.cdsSql.FieldByName('mensagemEUA1').AsString,'','',True,False,'&OK','','',msgErro);
if FormPrincipal.vidioma = 'ESP' then
Msg(dm.cdsSql.FieldByName('mensagemESP').AsString,dm.cdsSql.FieldByName('mensagemESP1').AsString,'','',True,False,'&OK','','',msgErro);
cdsCadBibliotecaRetiradadataentrega.AsString:='';
exit; end;
JvDBGrid2.SelectedIndex :=0;
// ;
if ((cdsCadBibliotecaRetirada.State in [dsinsert,dsedit]) ) then
begin
try
cdsCadBibliotecaRetirada.FieldByName('codigo').asinteger:=vvalor;
vdataentrega:=cdsCadBibliotecaRetiradadataentrega.AsString;
cdsCadBibliotecaRetirada.Post;
if cdsCadBibliotecaRetiradadataentrega.AsString <> '' then
cdsCadBibliotecaRetirada.insert;
except
showmessage('Erro ao gravar o controle! Favor entrar em contato com o Depto de TI ');
end;
end;
end;
end;
Shift: TShiftState); begin
if Key = 13 then
begin
try
cdsCadBibliotecaRetirada.FieldByName('codigo').asinteger:=vvalor;
except end; if ((cdsCadBibliotecaRetiradadataentrega.AsString <> '') and (cdsCadBibliotecaRetiradadataentrega.AsDateTime < cdsCadBibliotecaRetiradadataretirada.AsDateTime)) then
begin
dm.cdsSql.Close;
with dm.cdsSql do
begin
cString:= 'select [mensagemBRA],[mensagemBRA1],[mensagemEUA], [mensagemEUA1], ';
cString:= cString + ' [mensagemESP],[mensagemESP1] from [SID].[dbo].[mensagens] WHERE sequencia = 14';
DataRequest(cString);
open;
end;
if FormPrincipal.vidioma = 'BRA' then
Msg(dm.cdsSql.FieldByName('mensagemBRA').AsString,dm.cdsSql.FieldByName('mensagemBRA1').AsString,'','',True,False,'&OK','','',msgErro);
if FormPrincipal.vidioma = 'EUA' then
Msg(dm.cdsSql.FieldByName('mensagemEUA').AsString,dm.cdsSql.FieldByName('mensagemEUA1').AsString,'','',True,False,'&OK','','',msgErro);
if FormPrincipal.vidioma = 'ESP' then
Msg(dm.cdsSql.FieldByName('mensagemESP').AsString,dm.cdsSql.FieldByName('mensagemESP1').AsString,'','',True,False,'&OK','','',msgErro);
cdsCadBibliotecaRetiradadataentrega.AsString:='';
exit; end;
JvDBGrid2.SelectedIndex :=0;
// ;
if ((cdsCadBibliotecaRetirada.State in [dsinsert,dsedit]) ) then
begin
try
cdsCadBibliotecaRetirada.FieldByName('codigo').asinteger:=vvalor;
vdataentrega:=cdsCadBibliotecaRetiradadataentrega.AsString;
cdsCadBibliotecaRetirada.Post;
if cdsCadBibliotecaRetiradadataentrega.AsString <> '' then
cdsCadBibliotecaRetirada.insert;
except
showmessage('Erro ao gravar o controle! Favor entrar em contato com o Depto de TI ');
end;
end;
end;
end;
GOSTEI 0
Eduardo Marcolongo
17/09/2010
Porque vc não coloca aqui:
if ((cdsCadBibliotecaRetirada.State in [dsinsert,dsedit]) ) then
begin if cdsCadBibliotecaRetiradadataSaida.AsString <> '' then begin
showmessage('Erro ao gravar o controle! Favor entrar colocar data '); abort; end; try cdsCadBibliotecaRetirada.FieldByName('codigo').asinteger:=vvalor; vdataentrega:=cdsCadBibliotecaRetiradadataentrega.AsString;
cdsCadBibliotecaRetirada.Post;
if cdsCadBibliotecaRetiradadataentrega.AsString <> '' then
cdsCadBibliotecaRetirada.insert;
except
showmessage('Erro ao gravar o controle! Favor entrar em contato com o Depto de TI ');
end;
end;GOSTEI 0
Evandro Abreu
17/09/2010
Porque Teria que ficar assim:
nome data da Retirada data da retirada
Jose Peraria 15/02/2010 Osvaldo dos Santos Estou usando o componente do Jdei e neste componente se apertar a tecla insert ele automaticamente abre uma linha em branco para digitar, preciso travar isso , pois nao posso permitir que incluia o registro Osvaldo dos Santos, e ficaria assim: nome data da Retirada data da retirada
Jose Peraria 15/02/2010
Jose Peraria 15/02/2010 Osvaldo dos Santos Estou usando o componente do Jdei e neste componente se apertar a tecla insert ele automaticamente abre uma linha em branco para digitar, preciso travar isso , pois nao posso permitir que incluia o registro Osvaldo dos Santos, e ficaria assim: nome data da Retirada data da retirada
Jose Peraria 15/02/2010
GOSTEI 0