Esta opção permite
introduzir/alterar Regras para definir determinado comportamento na aplicação. O objetivo destas Regras, pode passar por exemplo, por controlar a validação dos dados quando são introduzidos.
Dos campos que o utilizador dispõe, existe um separador dedicado à definição do
Programa e Mensagem e outro onde o utilizador define o(s)
Package(s) onde a Regra será implementada.
Poderá também, interagir com o registo da Regra quando acede ao respetivo ecrã, em modo de
consulta No final deste tópico serão apresentados alguns
Exemplos práticos Uma regra pode obrigar determinado campo a ser preenchido, ou pode impedir a gravação de uma encomenda se não tiver valor, etc.
Ecrã em modo de introdução/alteraçãoEm modo de introdução/alteração, o utilizador dispõe dos seguintes campos:
Descrição da regra
Este campo é de preenchimento obrigatório e é onde deve ser introduzido de uma pequena descrição da regra.
Número Interno da regra
Este número é sequencial e não controlado pelo utilizador. Poderá ser utilizado em posteriores consultas.
Inativa
No caso de esta opção estar ativa a regra não é executada.
Nome do ecrã (sem ASPX) onde vai correr a regra. (i.e. CLFORM)
Define qual o ecrã a que vai ser aplicada a regra.
Ordem de execução da regra
Este campo controla a ordem de execução da regra, no caso de existir mais do que uma regra para o mesmo ecrã.


Expressão a ser validada. Deve retornar TRUE se a regra passa ou FALSE se não passa.
Neste local é criado o programa de execução da regra. Este programa deve retornar um valor lógico, para a execução ou não da regra.
Caso o utilizador pretenda, ao clicar no botão
pode aceder ao Editor de Código. Após o preenchimento deste campo, o utilizador poderá
.
Este campo tem intellisense, ou seja, quando é colocada uma letra na caixa de texto é aberta uma caixa com todas as sugestões de código disponíveis para completar aquela palavra, à medida que se vai escrevendo as opções mostradas começadas pelas letras introduzidas vão reduzindo e aproximando do que se pretende. Também se pode pressionar as teclas ctrl + espaço ou ctrl + seta baixo para aparecer essa mesma caixa mas com todas as opções de código disponíveis, sendo que ao escrever texto as opções na caixa vão sendo filtradas.
Mensagem
Neste local é criada a mensagem a dar ao utilizador, no caso da violação da regra. Este campo também tem intellisense, desde que a opção "A mensagem é um programa" esteja ativa.
Caso o utilizador pretenda, poderá
, para validar a inexistência de erros.
Nota: Este botão apenas se encontra disponível nas gamas de Advanced e Enterprise.

Uma Regra pode ser criada para um ecrã conforme a necessidade do utilizador, mas a definição do(s) package(s) determina onde a mesma será utilizada, por exemplo:

Assim, a Regra criada estará presente e condicionará o comportamento da aplicação na Extranet.
Ecrã em modo de consultaEm modo de consulta o utilizador tem a possibilidade de usufruir das opções de registo bem como pesquisar um registo, alterar e/ou apagar o mesmo.
Exemplos práticosRegra obriga determinado campo a ser preenchido (morada de cliente), quando o utilizador tenta gravar o registo. Esta regra será aplicada ao package Intranet.
Nome do ecrã (sem ASPX) onde vai correr a regra. (i.e. CLFORM): clform
Expressão a ser validada. Deve retornar TRUE se a regra passa ou FALSE se não passa.
Dim retval As Boolean = True Dim dr As DataRow = mainformdataset.Tables("cl").Rows(0)
' verificar se o campo está vazio If dr("morada") = "" Then retval = False End If Return retval |
Mensagem esperada: Desculpe, mas deve preencher o campo Morada do Cliente.
Package: Intranet
Neste caso, se o utilizador ao introduzir um cliente, quando tentar gravar com o campo "Morada" vazio, será dada a mensagem:

Regra que não deixa gravar encomendas de clientes no package Front Web, quando as mesmas não têm valor:
Nome do ecrã (sem ASPX) onde vai correr a regra. (i.e. CLFORM): encform
Expressão a ser validada. Deve retornar TRUE se a regra passa ou FALSE se não passa.
if ctype(mainformdataset.tables("EBO").rows(0).item("etotaldeb"),system.decimal)=0 return False else return True end if |
Mensagem esperada: Desculpe, mas a encomenda não tem valores. Por favor introduza os artigos que pretende.
Package:Front Web
Neste caso, se o utilizador ao introduzir uma encomenda, tentar gravar com as linhas da encomenda a zero, será dada a mensagem:
