Histórico da Página
...
| Informações | ||
|---|---|---|
| ||
Depois de concluído esse processo pode se visualizar o funcionamento do perfil em ação. Deve ser executado por um usuário que não seja administrador do SOP para as validações funcionarem corretamente. |
...
Resultado
| Teste | Descrição | |||||||
|---|---|---|---|---|---|---|---|---|
| 1 | Ao tentar incluir um item onde o estabelecimento não é valido para o usuário, a operação é negada. | |||||||
| 2 | Ao tentar a realização do teste 1, ou seja, incluir ou modificar um item com um estabelecimento inválido, a validação interfere não permitindo a inclusão e apresentando uma mensagem como abaixo:
O mesmo acontece com o campo Data Implantação, ao qual foi dado o apelido data. Ele também é verificado através da validação do campo cod-estabel. | |||||||
| 4 | Ao tentar incluir ou modificar um item com a data de implantação menor que trinta dias antes da data atual, a validação não permite a operação e apresenta uma mensagem como abaixo:
| |||||||
| 5 | A mesma coisa acontece ao pressionar os botões Cópia e Exportar quando o estabelecimento ou a data de implantação for inválido. Outra validação acontece também para o estado do botão Características do Item, nota-se que quando o campo Folha Especificação é branco, o botão fica invisível. Já quando o campo está preenchido o campo também é visível. |
...
Exemplo de Implementação
| Bloco de código | ||||
|---|---|---|---|---|
| ||||
/*******************************************************************************
** Programa..: validaestab.p
** Objetivo..: Retorno Externo para propriedades Condicao/Lista Valores SOP
** Data......: 01/10/2002
** Notas.....: Programa de exemplo de retorno externo.
** Contém o protótipo necessário para definicao de programas de
** retorno externo e definição dos métodos
** É possível adicionar novos métodos, conforme necessidade
********************************************************************************/
/* +++ definicao da biblioteca de funcoes +++ */
{sop\solib001.i}
/* +++ prototipacao dos metodos existentes - apenas para consulta +++ */
/* +++ FUNCTION getObjectHandle RETURNS HANDLE (vAlias AS CHAR) +++ */
/* +++ FUNCTION getObjectName RETURNS CHAR (vAlias AS CHAR) +++ */
/* +++ FUNCTION getObjectValue RETURNS CHAR (vAlias AS CHAR) +++ */
/* +++ FUNCTION getCurrentObjectHandle RETURNS HANDLE ( ) +++ */
/* +++ FUNCTION getCurrentObjectName RETURNS CHAR ( ) +++ */
/* +++ FUNCTION getCurrentObjectValue RETURNS CHAR ( ) +++ */
/* +++ definicao de variaveis +++ */
DEF NEW GLOBAL SHARED VAR v_cod_usuar_corren AS CHAR NO-UNDO.
/*******************************************************************************
Procedure validaEstabData
Objetivo: Exemplo de validacao do estabelecimento atraves de tabela
e tambem da data
*******************************************************************************/
PROCEDURE validaEstabData:
/* +++ parametros necessarios sop +++ */
DEFINE OUTPUT PARAMETER pLogOk AS LOGICAL NO-UNDO.
DEFINE OUTPUT PARAMETER pDesMessage AS CHARACTER NO-UNDO.
/* +++ variaveis locais +++ */
DEFINE VARIABLE estab AS CHARACTER NO-UNDO.
DEFINE VARIABLE valordata AS DATE NO-UNDO.
/* +++ codigo da validação +++ */
ASSIGN estab = getCurrentObjectValue(). /* pegar o valor do campo cod-estabel */
FIND FIRST usuar-estab NO-LOCK
WHERE usuar-estab.cod-usuar = v_cod_usuar_corren
AND usuar-estab.cod-estab = estab NO-ERROR.
IF NOT AVAIL usuar-estab THEN DO:
ASSIGN pLogOk = NO
pDesMessage = 'Estabelecimento inválido'.
RETURN.
END.
valordata = DATE(getObjectValue('data')).
IF valordata < (TODAY - 30) THEN DO:
ASSIGN pLogOk = NO
pDesMessage = 'Data de implantação não pode menor do que 30 dias atrás'.
RETURN.
END.
ASSIGN pLogOk = YES.
RETURN.
END PROCEDURE.
PROCEDURE validaValorBranco:
/* +++ parametros necessarios sop +++ */
DEFINE OUTPUT PARAMETER pLogOk AS LOGICAL NO-UNDO.
DEFINE OUTPUT PARAMETER pDesMessage AS CHARACTER NO-UNDO.
plogok = (getcurrentObjectValue() = '').
RETURN.
END PROCEDURE. |
...
Conforme a tabela, pode ser utilizado um único método X para utilização em botões e lista de valores. O retorno desse método deve ser YES quando a validação ocorrer com sucesso. Para utilizar o mesmo método em botões, basta criar condições com o operador “<>” (diferente).
| Nota | ||
|---|---|---|
| ||
Para as customizações via SOP serem ativadas, o programa deve ser chamado conforme está parametrizado no Cadastro de Programa (bas_prog_dtsul). |
