Fórum Campo obrigatório, preencher antes de salvar ou quando sair do campo. #502844
28/11/2014
0
Minha duvida é a seguinte. Estou querendo fazer com que, quando eu clicar no botao salvar ela faça uma varedura nos campos obrigatorios que estão em branco.
Abaixo segue umas fotos de como esta o projeto e o problema que ta dando quando eu mando executar o meu projeto.
[img:descricao=Imagem 01]http://arquivo.devmedia.com.br/forum/imagem/383412-20141128-202720.jpg[/img]
Na imagem 01, os campos circulados de vermelho são os campos obrigatórios.
[img:descricao=imagem 02]http://arquivo.devmedia.com.br/forum/imagem/383412-20141128-204814.jpg[/img]
Na imagem 02, segue o comando
[img:descricao=imagem 03]http://arquivo.devmedia.com.br/forum/imagem/383412-20141128-205159.jpg[/img]
Na imagem 03, exemplo começando a ser preenchido. Propositalmente deixei o campo Cliente sem preenchimento. Nesse momento vou clicar no botão GRAVAR.
[img:descricao=imagem 04]http://arquivo.devmedia.com.br/forum/imagem/383412-20141128-205451.jpg[/img]
Na imagem 04, da essa mensagem de erro
[img:descricao=imagem 05]http://arquivo.devmedia.com.br/forum/imagem/383412-20141128-212249.jpg[/img]
Na imagem 05, a opção Required esta desmarcada (esse campo é not null).
Peço a ajuda de vocês para solucionar esse problema... creio que esteja meio caminho andado.
Rubens Pena
Curtir tópico
+ 0Post mais votado
28/11/2014
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
edt1: TEdit;
edt2: TEdit;
lbl1: TLabel;
lbl2: TLabel;
btn1: TButton;
function ValidaCampos():Boolean;
procedure btn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{ TForm1 }
{ TForm1 }
function TForm1.ValidaCampos: Boolean;
begin
if (edt1.Text = '') or (edt2.Text = '') then
Result := False
else
Result := True;
end;
procedure TForm1.btn1Click(Sender: TObject);
begin
if ValidaCampos then
Application.MessageBox('Confirmado!','Aviso', MB_ICONINFORMATION)
else
Application.MessageBox('Erro!','Aviso', MB_ICONINFORMATION);
end;
end.
Rafael Souza
Gostei + 1
Mais Posts
28/11/2014
Rafael Souza
Este campo é obrigatório no banco?
Gostei + 0
28/11/2014
Rubens Pena
Os campos que estão circulados de vermelho na imagem 01 estão como obrigatórios no banco.
Gostei + 0
28/11/2014
Rafael Souza
Você precisa validar este campo no teu sistema também.
Essa mensagem de erro vem do banco! sacou?
Tudo que for obrigatório no banco tu deve marcar como requerido e validar no teu sistema!
Gostei + 0
28/11/2014
Rubens Pena
Criei um raidCall se voce tiver como entra 10046124
Gostei + 0
28/11/2014
Rafael Souza
Gostei + 0
28/11/2014
Rubens Pena
Gostei + 0
28/11/2014
Rafael Souza
Vamos partir do principio que você esta começando agora com Delphi certo?
Gostei + 0
28/11/2014
Rubens Pena
Gostei + 0
28/11/2014
Rafael Souza
Então você precisa deixar teu código mapeado para tratar todos erros e excessões .
Exemplo do seu caso:
crie uma função booleana que vai retornar true se os campos obrigatórios forem preechidos, caso contrário retornará false!
vou escrever pra você um exemplo...
Gostei + 0
28/11/2014
Rubens Pena
CREATE TABLE "CLIENTE"
(
"CLIENTECODIGO" INTEGER NOT NULL,
"CLIENTENOME" VARCHAR(50) NOT NULL,
"CLIENTESEXO" CHAR(2),
"CLIENTEESTADOCIVIL" VARCHAR(10),
"CLIENTEESCOLARIDADE" VARCHAR(30),
"CLIENTENOMEMAE" VARCHAR(50),
"CLIENTEDEPENDENTES" CHAR(2),
"CLIENTENUMDEPENDENTES" CHAR(2),
"CLIENTENUMERO" VARCHAR(10) NOT NULL,
"CLIENTEBAIRRO" INTEGER NOT NULL,
"CLIENTECIDADE" INTEGER NOT NULL,
"CLIENTECEP" VARCHAR(10),
"CLIENTECOMPLEMENTO" VARCHAR(20),
"CLIENTEDATANASC" TIMESTAMP NOT NULL,
"CLIENTECPF" VARCHAR(14),
"CLIENTERG" VARCHAR(20),
"CLIENTEDATACAD" TIMESTAMP NOT NULL,
"CLIENTEFONERES" VARCHAR(14),
"CLIENTEFONECOM" VARCHAR(14),
"CLIENTEFONECEL" VARCHAR(14),
"CLIENTEOBS" VARCHAR(50),
"CLIENTEEMAIL" VARCHAR(50),
"CLIENTEFOTO" VARCHAR(80),
"CLIENTEUF" VARCHAR(2),
"CLIENTEENDERECO" VARCHAR(45) NOT NULL,
CONSTRAINT "CLIENTE_PK" PRIMARY KEY ("CLIENTECODIGO")
Gostei + 0
28/11/2014
Rafael Souza
Gostei + 0
28/11/2014
Rubens Pena
Gostei + 0
28/11/2014
Rafael Souza
Gostei + 0
28/11/2014
Rubens Pena
selecionei o campo, DBEdit5 (campo cliente) no evento OnExit
procedure TfrmCadastroClientes.DBEdit5Exit(Sender: TObject);
begin
if DBEdit5.Text = '' then
BEGIN
Application.MessageBox('Campo Cliente Obrigatorio.','AVISO',MB_ICONINFORMATION);
DBEdit5.SetFocus;
END;
Mais o que eu quero mesmo e quando eu clicar no botao Gravar.
meu skip e RPena. (tem um ponto)
Gostei + 0
28/11/2014
Rafael Souza
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)