Fórum Consistência de campos #213338
11/02/2004
0
Andando pela web, achei a rotina abaixo, que serve para testar se
determinado campo Requerid esta nulo, so que nao sei como usar
funções no delphi, ou seja, onde eu chamo a função abaixo, e tambem
gostaria de saber esta é a melhor forma para fazer consistência de
campos.
Grato
Luciano
D7
IB
Datamodule : SQLConnection, SimpleDataSet e DataSource
Formulario : TDBEdit
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | // FUNCAO PARA TESTAR CAMPOS function CampoObrigatorio(DataSet : TDataSet): Boolean; var i : integer; begin result := true; with dados.sdsbanco do for i := 0 to dados.sdsbanco.FieldCount -1 do if ((fields[i].required) and (not fields[i].IsBlob)) then if fields[i].value = ´´ then begin showmessage(´O campo ´+fields[i].displayname+´ é obrigatório.´); result := false; fields[i].FocusControl; exit; end; end; // |
Obs.:Tem como fazer a validacao direto no datamodule, para nao ter q ficar codigo para todos forms?

Lucianorw
Curtir tópico
+ 0Posts
11/02/2004
Lucas Silva
Ai você herda todos os datamodules (ou Forms) deste datamodule (Form) padrao...
Gostei + 0
11/02/2004
Lucianorw
Ai você herda todos os datamodules (ou Forms) deste datamodule (Form) padrao...[/quote:42ae558435]
Ola Lucas,
O datamodule estou começando aprender, só não onde colocar aquela função e como chamá-la (executá-la), no datamodule ou no form mesmo.
Desculpe a ignorancia é que iniciante no assunto.
Luciano
Gostei + 0
18/02/2004
Lucianorw
Este codigo funciona perfeitamente em VBA (Access), como passo ele para o delphi?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | Function Critica(Cancel As Integer, frm As Form) Dim ctl As Control For Each ctl In frm.Controls If ctl.ControlType = acTextBox Or ctl.ControlType = acComboBox Then If ctl.Tag = "1" Then If IsNull(ctl) = True Then Beep MsgBox "O campo " & ctl.Controls(0).Caption & " não pode conter valor nulo!", vbInformation Cancel = -1 DoCmd.GoToControl ctl.Name Exit For End If ElseIf ctl.Tag = "2" Then If IsNull(ctl) = True Then Beep MsgBox "O campo " & ctl.Controls(0).Caption & " está nulo!", vbInformation End If End If End If Next ctl End Function |
A logica é o seguinte:
No evento antes de atualizar do form coloco o código, ele faz um loop por todos os campos do form, e verifica as tag, se alguma obedecer a regra, ou bloqueia o lancamento até q seja informado os valores no campo ou apenas avisa, permitindo o lancamento.
Alguma ideia de como fazer esta ´conversão´.
Grato
Luciano[/b]
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)