Validação de campos obrigatórios em um Dataset
Veja como criar uma rotina para validar os campos obrigatórios de um dataset.
Estatísticas:










votos: 2
Serviços:

Existem várias formas para se validar os campos obrigatórios de um dataset, neste artigo irei demonstrar uma forma que costumo utilizar em telas de cadastros para obrigar a digitação de certos campos de uma tela.
Irei apenas demonstrar como criar uma forma de verificação de campos, utilizando um ClientDataset como um dataset temporário, portanto não irei fazer ligações com banco de dados.
Vamos dar início ao exemplo do artigo, inicie um novo projeto no Delphi (File -> New -> Application), será criado automaticamente um formulário (Form1), salve-o com o nome de frmValida e sua Unit com o nome de uValida.pas, o projeto pode ser salvo com o nome default Project1.
Na aba de componentes Data Access, clique no componente ClientDataset, insira no nosso formulário e em seguida mude seu nome para cdsCadastro.
Ainda no componente ClientDataset, de um duplo clique no ClientDataset, será aberta uma caixa vazia com os campos do dataset, agora vamos incluir 2 campos para utilizar em nosso exemplo.
Na caixa de campos, clique com o botão direito do mouse para que seja aberta uma caixa de opções, selecione a opção New Field. Na nova caixa que foi aberta, informe os seguintes dados:
Name: Codigo
Type: Integer
Field Type: Data
Clique em Ok e repita a mesma operação inserindo os dados a seguir:
Name: Nome
Type: String
Field Type: Data
Pronto, já temos dois campos em nosso dataset, agora ainda na caixa de campos, selecione-os e com o mouse arraste os dois campos e solte dentro do formulário, o Delphi criará automaticamente, um Datasource e os DBEdits para os dois campos, conforme a figura 1.

Vá na aba Data Controls e insira no formulário um DBNavigator, ele será utilizado para a navegação na registros do dataset. Selecione o DBNavigator e mude sua propriedade Datasource para o Datasource1 que está em nosso formulário.
De um duplo clique novamente no ClientDataset para que seja aberta a caixa com seus campos e mude a propriedade Tag de ambos os campos para 1:
Tag = 1
Essa propriedade será responsável pela identificação dos campos obrigatórios do dataset, ou seja, todos os campos que conterem a propriedade Tag = 1 deverão ser preenchidos.
Clique no formulário, no Object Inspector clique em Events, de um duplo clique no evento OnShow para que seja criada uma procedure para esse evento. Nesse evento iremos criar nosso dataset temporário. Veja o código a seguir:
procedure TfrmValida.FormShow(Sender: TObject);
begin
//cria o dataset temporário
cdsCadastro.CreateDataSet;
end;
Na declaração private do Formulário insira a seguinte função e aperte CTRL+Shift+C, para que seja criado automaticamente o corpo da função:
function CamposValidados :Boolean;
Agora insira o seguinte código na função para que fique conforme o código a seguir:
function TfrmValida.CamposValidados: Boolean;
var
i :Integer;
Campos :TStrings;
begin
try
Campos := TStringList.Create;
for i:=0 to cdsCadastro.Fields.Count-1 do
begin
if (cdsCadastro.Fields[i].Tag=1) then
if (cdsCadastro.Fields[i].AsString=EmptyStr) then
Campos.Add(‘- ‘ + cdsCadastro.Fields[i].DisplayName);
if (Campos.Text<>EmptyStr) then
begin
Campos.Insert(0, ‘Preencha os campos obrigatórios:‘);
Campos.Insert(1, EmptyStr);
ShowMessage(Campos.Text);
result := false;
end
else result := true;
finally
Campos.Free;
end;
end;
Nossa rotina para validar todos os campos obrigatórios do dataset já está pronta, então vamos utiliza-la no evento onBeforePost do ClientDataset (cdsCadstro) conforme código a seguir:
procedure TfrmValida.cdsCadastroBeforePost(DataSet: TDataSet);
begin
if not (CamposValidados) then
Abort
else
ShowMessage(‘Dados salvos no dataset temporário‘);
end;
Pronto nosso exemplo está concluído, agora basta compilar o projeto, no DBNavigator clique no botão Insert (+) e tente salvar o registro clicando no botão Post (V). Você receberá uma mensagem avisando quais campos devem ser preenchidos.

O exemplo completo está disponível para download, espero que tenham gostado do artigo e ate o próximo.




Artigo Clube Delphi 80 - Exibindo dicas na forma de balão com a descrição de campos do FB

Artigo Clube Delphi 94 - ClientDataSet

Desenhando um olho em Java

Criando um Messagebox personalizado

Como ler um arquivo XML utilizando AJAX

Validação de campos obrigatórios em um Dataset

Criando uma Stored Procedure em Firebird para retornar o próximo dia útil

Criando uma Interface para padronização dos formulários de Cadastro



Curso Online - Delphi Fundamental (Win32)

Curso Online-Aplicação Financeira com Delphi 2009 e MySQL

Curso on-line Rave Reports

Curso Online - Criando uma Aplicação multi-camadas Completa com Delphi

Rad Studio 2007-DBX4 e Firebird 2.0-Aplicação comercial de vendas do Inicio ao Fim

Introdução ao ASP

Curso Completo MySQL

jQuery – A Biblioteca JavaScript para Webdesigners




[vídeo] Consumindo os dados via ajax – Consumindo dados com getJson do jQuery utilizando POCO EF 4.0 – Parte 3

[vídeo] Classe POCO – Consumindo dados com getJson do jQuery utilizando POCO EF 4.0 – Parte 1

Imprimindo Relatório : VCL Crystal Reports XI - Delphi

VCL Crystal Reports XI - Delphi

[vídeo] Gerenciamento das Comunicações - Curso Gerência de Projetos – Parte 8

[vídeo] Plano de Comunicação - Curso Gerência de Projetos – Parte 9

[vídeo] Seleção e Priorização de Projetos - Curso Gerência de Projetos – Parte 6

[vídeo] Escopo, metas, premissas, restrições - Curso Gerência de Projetos – Parte 7

[vídeo] Documento Conceitual do Projeto - Curso Gerência de Projetos – Parte 5


Você está em:





Conheça os planos de créditos DevMedia e visualize esse post agora mesmo!


