Campo obrigatório, preencher antes de salvar ou quando sair do campo.
Boa noite pessoal.
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.
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
Curtidas 0
Melhor post
Rafael Souza
28/11/2014
[img]http://arquivo.devmedia.com.br/forum/imagem/264793-20141128-221150.png[/img]
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.
GOSTEI 1
Mais Respostas
Rafael Souza
28/11/2014
Só uma pergunta:
Este campo é obrigatório no banco?
Este campo é obrigatório no banco?
GOSTEI 0
Rubens Pena
28/11/2014
sim, esta como varchar (xx) not null.
Os campos que estão circulados de vermelho na imagem 01 estão como obrigatórios no banco.
Os campos que estão circulados de vermelho na imagem 01 estão como obrigatórios no banco.
GOSTEI 0
Rafael Souza
28/11/2014
Ai esta teu erro!
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!
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
Rubens Pena
28/11/2014
Rafael eu nao compreendi onde eu devo validar o campo no meu sistema
Criei um raidCall se voce tiver como entra 10046124
Criei um raidCall se voce tiver como entra 10046124
GOSTEI 0
Rafael Souza
28/11/2014
Oque é raidCall ?
GOSTEI 0
Rubens Pena
28/11/2014
é o mesmo que o skip so que mais leve. mais se der pra você me ensinar como eu devo proceder por aqui.
GOSTEI 0
Rafael Souza
28/11/2014
Vamos lá:
Vamos partir do principio que você esta começando agora com Delphi certo?
Vamos partir do principio que você esta começando agora com Delphi certo?
GOSTEI 0
Rubens Pena
28/11/2014
sim, terminei um curso recentemente mais o professor não sabia ensinar, tirava as duvidas deixando mais duvidas ainda.
GOSTEI 0
Rafael Souza
28/11/2014
O teu sistema tem que ser um espelho do banco de dados pois as informações do teu sistema, ou seja tudo que for digitado e estiver ligado a uma tabela vai ser persistido no banco de dados.
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...
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
Rubens Pena
28/11/2014
me faz esse exemplo em cima desses dados:
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")
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
Rafael Souza
28/11/2014
Entendeu?
GOSTEI 0
Rubens Pena
28/11/2014
voce nao que fazer um acesso remoto pra me explicar melhor
GOSTEI 0
Rafael Souza
28/11/2014
pode ser tem skype?
GOSTEI 0
Rubens Pena
28/11/2014
consegui fazer o processo, assim:
selecionei o campo, DBEdit5 (campo cliente) no evento OnExit
Mais o que eu quero mesmo e quando eu clicar no botao Gravar.
meu skip e RPena. (tem um ponto)
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
Rafael Souza
28/11/2014
teamveawer?
GOSTEI 0
Rafael Souza
28/11/2014
passa o teamveaver que faço para vc!
GOSTEI 0
Rubens Pena
28/11/2014
vou instalar aki o teamveaver só um minut
GOSTEI 0
Rubens Pena
28/11/2014
228 778 131
4484
4484
GOSTEI 0
Rubens Pena
28/11/2014
Obrigado Rafael, pela força, seus ensinamentos foram proveitosos, esta dando certo o que me ensinou.
O tópico pode ser encerrado.
O tópico pode ser encerrado.
GOSTEI 0
Rafael Souza
28/11/2014
Chame sempre que precisar!
GOSTEI 0
Felippe Tadeu
28/11/2014
Boa noite/madruga.
Você também poderia fazer algo que fosse implementado apenas uma vez.
Você poderia implementar uma rotina que verificasse todos os campos db da tua tela e que verificasse se esse campo fosse obrigatório no teu componente de BD.
Por exemplo, vc faria um for para verificar todos os componentes, verificaria se ele era um db da vida (TDBEdit, TDBMemo, etc..) e caso fosse vc faria um for para achar esse campo no componente de BD (TADOQuery por exemplo) e verificaria se ele está com a propriedade Required setada como True, se tivesse vc verificaria se o campo está vazio ou não.
Tenho isso implementado num TForm ancestral meu, assim eu implementei apenas uma vez, aí conforme vai sendo a necessidade eu vou adicionando novos componentes nessa verificação.
Você também poderia fazer algo que fosse implementado apenas uma vez.
Você poderia implementar uma rotina que verificasse todos os campos db da tua tela e que verificasse se esse campo fosse obrigatório no teu componente de BD.
Por exemplo, vc faria um for para verificar todos os componentes, verificaria se ele era um db da vida (TDBEdit, TDBMemo, etc..) e caso fosse vc faria um for para achar esse campo no componente de BD (TADOQuery por exemplo) e verificaria se ele está com a propriedade Required setada como True, se tivesse vc verificaria se o campo está vazio ou não.
Tenho isso implementado num TForm ancestral meu, assim eu implementei apenas uma vez, aí conforme vai sendo a necessidade eu vou adicionando novos componentes nessa verificação.
GOSTEI 0
Jiraya San
28/11/2014
Olá bom dia, teria como postar o código desta solução para a mim e os demais que tiverem as mesmas dúvidas?
Desde já agradeço.
Desde já agradeço.
GOSTEI 0
Felippe Tadeu
28/11/2014
Jiraya você tem alguma dúvida na implementação ?
Coloquei a lógica de como deve ser feito, ficou confusa alguma parte ?
Coloquei a lógica de como deve ser feito, ficou confusa alguma parte ?
GOSTEI 0