Pergunta

Na maioria dos casos, os métodos de validação que eu substituído executar duas vezes cada vez que o campo pai é alterado. Tudo ainda funciona, mas os Infolog exibe mensagens duplas de cada vez.

Existe alguma maneira para evitar isso?

Graças

public boolean validate()
{
    boolean ret;
    int exlowValue;
    int lowValue;
    int highValue;
    int exhighValue;
    str errorMessage;
    ;

    ret = super();

    //Make sure a numeric value was entered
    if (ABC_RegExValidator::validateMe("integer",  int2str    (ABC_Checks_checkExtremeLow.value())))
    {
        //get the form values
        exlowValue = ABC_Checks_checkExtremeLow.value();
        lowValue = str2int(ABC_Checks_checkLow.valueStr());
        highValue = str2int(ABC_Checks_checkHigh.valueStr());
        exhighValue = str2int(ABC_Checks_checkExtremeHigh.valueStr());

        //Extreme Low must be 0 or less than all others
        if (exlowValue != 0)
        {
            //A non-zero value was entered; it must be less than all other fields
            if ((exlowValue >= lowValue && lowValue > 0) || (exlowValue >= highValue && highValue > 0) || (exlowValue >= exhighValue && exhighValue > 0))
            {
                //Return an error
                ret = checkfailed(strFmt("@ABC197", int2str(exlowValue)));
            }
            else
            {
                //Not greater than any other value
                //Success!
                ret = true;
            } //Greater than all others?
        }
        else
        {
            //No errors
            ret = true;
        } // 0?
    }
    else
    {
        //Regular expression failed
        //Return an error
        ret = checkfailed("@ABC192");
    } //Regular expression


    return ret;
}
Foi útil?

Solução

A sua descrição do problema não é muito claro. Pode-se substituir o método valite em um controle forma, o método de validação de uma fonte de dados e forma o método validatefield em cima da mesa. Esse é o meu conhecimento da versão 3.0. E como é que você quer dizer o "campo pai"? Eu presumo que o campo da tabela?

Se eu colocar mensagens de informação em cada um desses métodos eles só executar uma vez quando eu modificar um valor. Esse é o caso em 3.0. Eu não sei qual versão você está usando.

Talvez você poderia ser mais preciso sobre qual método de validação que você está testando?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top