GARANTIR DESCONTO

Fórum Campo obrigatório, preencher antes de salvar ou quando sair do campo. #502844

28/11/2014

0

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

Rubens Pena

Responder

Post mais votado

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.


Rafael Souza

Rafael Souza
Responder

Gostei + 1

Mais Posts

28/11/2014

Rafael Souza

Só uma pergunta:

Este campo é obrigatório no banco?
Responder

Gostei + 0

28/11/2014

Rubens Pena

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

Gostei + 0

28/11/2014

Rafael Souza

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

Gostei + 0

28/11/2014

Rubens Pena

Rafael eu nao compreendi onde eu devo validar o campo no meu sistema
Criei um raidCall se voce tiver como entra 10046124
Responder

Gostei + 0

28/11/2014

Rafael Souza

Oque é raidCall ?
Responder

Gostei + 0

28/11/2014

Rubens Pena

é o mesmo que o skip so que mais leve. mais se der pra você me ensinar como eu devo proceder por aqui.
Responder

Gostei + 0

28/11/2014

Rafael Souza

Vamos lá:

Vamos partir do principio que você esta começando agora com Delphi certo?
Responder

Gostei + 0

28/11/2014

Rubens Pena

sim, terminei um curso recentemente mais o professor não sabia ensinar, tirava as duvidas deixando mais duvidas ainda.
Responder

Gostei + 0

28/11/2014

Rafael Souza

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

Gostei + 0

28/11/2014

Rubens Pena

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")
Responder

Gostei + 0

28/11/2014

Rafael Souza

Entendeu?
Responder

Gostei + 0

28/11/2014

Rubens Pena

voce nao que fazer um acesso remoto pra me explicar melhor
Responder

Gostei + 0

28/11/2014

Rafael Souza

pode ser tem skype?
Responder

Gostei + 0

28/11/2014

Rubens Pena

consegui fazer o processo, assim:

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

Gostei + 0

28/11/2014

Rafael Souza

teamveawer?
Responder

Gostei + 0

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

Aceitar