Axapta: evita que el usuario cambie la consulta de formulario con la búsqueda

StackOverflow https://stackoverflow.com/questions/1615081

  •  06-07-2019
  •  | 
  •  

Pregunta

He creado un formulario de búsqueda personalizado en Axapta 3.0 en el que un usuario puede seleccionar un OprId de una fuente de datos ProdRoute. Antes de mostrar la búsqueda, ProdId está configurado y no puede ser modificado por el usuario. El usuario solo puede seleccionar un OprId del ProdRoute de la orden de producción con el ProdId válido. Según la documentación, se puede evitar que el usuario altere la consulta bloqueando el rango. Lo he hecho así:

qbrProdId.value(queryValue(_prodId));
qbrProdId.status(RangeStatus::Locked);

Aquí qbrProdId es una variable de tipo QueryBuildRange y _prodId especifica el ProdId .

Cuando se muestra la búsqueda y el usuario intenta cambiar el filtro, el ProdId está bloqueado. Bueno. Sin embargo, cuando el usuario presiona Ctrl + F en el campo ProdId de la búsqueda, o si el usuario hace clic en Buscar en la barra de herramientas, se puede ingresar un ProdId diferente.

¿Cómo puedo prevenir esto?

He pensado en cambiar el campo ProdId en la cuadrícula de la búsqueda para que sea del tipo " Mostrar " En lugar de ser un campo de fuente de datos. ¿Pero no hay una mejor solución para esto?

(Por cierto, la consulta no se crea automáticamente sino que se crea manualmente en el método " init " del origen de datos del formulario).

¿Fue útil?

Solución

De acuerdo, puede anular el método task (). Esto debería deshabilitar la funcionalidad del filtro en el formulario de búsqueda.

public int task(int _taskId)
{
    int ret;

    switch(_taskId)
    {
        case 2855:
        case 2844:
        case 2837:
        case 799:
            return 0;
    }

    ret = super(_taskId);

    return ret;
}

Otros consejos

Solo usa un enlace dinámico en lugar de un rango.

HTH

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top