AX7 - 3/5 La clase EventHandlerResult
En el siguiente ejemplo, el delegate recibe por parámetros una tabla y como esperamos que devuelva algo, le pasaremos por parámetros la clase EvendHandlerResult.
Ésta es la encargada de recuperar los valores del método ejecutado por el delegate; la clase deberá ser inicializada antes de llamar al delegate.
Si os fijáis, en esta ocasión, el método que hemos creado para validar los registros devolverá si el registro es válido. Con ret.result() recuperaremos lo que nos devuelva el delegate.
Observar que en el método getValidateCommonHandler el valor que debe devolver será guardado en la clase EventHandlerResult mediante _ret.result.
Ésta es la encargada de recuperar los valores del método ejecutado por el delegate; la clase deberá ser inicializada antes de llamar al delegate.
Si os fijáis, en esta ocasión, el método que hemos creado para validar los registros devolverá si el registro es válido. Con ret.result() recuperaremos lo que nos devuelva el delegate.
class Test
{
delegate void getValidateCommon(Common _common, EventHandlerResult _ret){}
public static void main(Args _args)
{
test test = new test();
EventHandlerResult ret = new EventHandlerResult();
CustTable custTable;
boolean ok = true;
select firstonly custTable;
test.getValidateCommon(custTable, ret);
if (ret.result() != null)
{
ok = ret.result();
if (!ok)
{
info("No válido");
}
}
}
[SubscribesTo(classstr(Test), delegatestr(Test, getValidateCommon))]
public static void getValidateCommonHandler(Common _common, EventHandlerResult _ret)
{
if (!_common.validateWrite())
_ret.result(checkFailed("Registro no válido."));
}
}
{
delegate void getValidateCommon(Common _common, EventHandlerResult _ret){}
public static void main(Args _args)
{
test test = new test();
EventHandlerResult ret = new EventHandlerResult();
CustTable custTable;
boolean ok = true;
select firstonly custTable;
test.getValidateCommon(custTable, ret);
if (ret.result() != null)
{
ok = ret.result();
if (!ok)
{
info("No válido");
}
}
}
[SubscribesTo(classstr(Test), delegatestr(Test, getValidateCommon))]
public static void getValidateCommonHandler(Common _common, EventHandlerResult _ret)
{
if (!_common.validateWrite())
_ret.result(checkFailed("Registro no válido."));
}
}
Observar que en el método getValidateCommonHandler el valor que debe devolver será guardado en la clase EventHandlerResult mediante _ret.result.
Comentarios
Publicar un comentario