Filtros

Es posible crear un tipo especial de consulta llamada consulta filtrada. Mientras las consultas estándar se usan para mostrar listas de información de la base de datos, las consultas filtradas se pueden utilizar para:

  • reducir los valores disponibles para los usuarios en determinados lugares
  • mostrar una lista filtrada por un valor que se determina de forma automática en tiempo de ejecución.

Por ejemplo, hay dos opciones para agregar una pestaña a la ventana incidencia que muestre las notas que tenga añadidas una incidencia.

  • como colección, que mostraría TODAS las notas añadidas a la incidencia o
  • como filtro, que mostraría tan solo aquellas notas añadidas a la incidencia por el usuario que la elevó.

Para obtener más información sobre cómo agregar pestañas como éstas a una ventana, consulte Colecciones.

La tabla siguiente enumera las diferencias principales entre las consultas estándar y las filtradas.

Consultas estándar

Consultas filtradas

Los criterios de filtrado que se seleccionan afectarían solo al objeto de negocio en que se basa la consulta.

Es posible seleccionar el objeto del que elegir los criterios de filtrado.

Los criterios deben establecerse como valor absoluto: puede ser en tiempo de diseño o en tiempo de ejecución solicitándole al usuario el valor necesario.

Los criterios se pueden establecer como un valor absoluto o un valor de tiempo de ejecución.
Con una lista de incidencias, sería posible por ejemplo establecer un criterio absoluto como Usuario es igual a David, para obtener una lista de incidencias en las que el usuario es David. Alternativamente sería posible establecer un valor de tiempo de ejecución como Usuario Es igual a (Elevado por), para obtener una lista de incidencias para el usuario que elevara la incidencia actual.

Puede incluir agrupación.

No puede incluir agrupación.

Entre los usos habituales de las consultas filtradas están:

  • filtrar datos usando objetos relacionados en el Diseñador de objetos.
  • como pestañas en diseños de ventana para proveer listas de información relativa a algún atributo de la ventana.

Para obtener más información sobre el filtrado de datos en objetos relacionados en el Diseñador de objetos, consulte Filtrado de datos.

El procedimiento siguiente describe cómo crear un filtro que se pueda añadir como una pestaña de la ventana Incidencia para mostrar solo las notas en las que el usuario Elevado por es el mismo de la incidencia. Se deben cumplir dos condiciones para este filtro:

  • la Incidencia del objeto Nota es igual a la Incidencia mostrada en la ventana.
  • el usuario Elevado por del objeto Nota es igual al del objeto Incidencia.

El filtro selecciona inicialmente todas las notas del módulo Gestión de incidencias. La primera filtra todas las notas añadidas a la incidencia seleccionada, mientras la segunda condición filtra todas aquellas notas cuyo usuario elevado por coincide con el de la incidencia.

Para crear un filtro:
  1. En la lista Acciones del Diseñador de consultas e informes, haga clic en Nuevo filtro.
    Aparece el cuadro de diálogo Nuevo filtro.
  2. Escriba un Título y una Descripción para este filtro.
  3. En el grupo Basado en, seleccione el Módulo y el Objeto de negocio que contienen los datos que se desea que aparezcan en la lista.
    En este ejemplo, seleccione Gestión de incidencias y Nota: queremos ver una lista con información sobre las notas.
  4. En el grupo Filtrar por seleccione el Módulo y el Objeto de negocio del objeto que contiene el valor por el que debe filtrar la lista. Sobre este objeto se basará la ventana.
    En el ejemplo, seleccione Gestión de incidencias e Incidencias: se quiere filtrar por Incidencia y el valor del usuario Elevado por de la incidencia.
  5. Seleccione el botón de opción Todos y a continuación, haga clic en Aceptar.
    Aparece el Diseñador de filtros; que resulta similar al Diseñador de consultas e informes estándar.
  6. Agregue los atributos que desea que aparezcan en la lista y a continuación, haga clic en Siguiente.
    Aparece la página Criterios. Si no se establece ningún criterio, el filtro mostrará TODAS las notas que haya en el módulo Gestión de incidencias.
  7. Desde el árbol Atributos arrastre el atributo para el primer criterio de filtrado hasta la lista Criterios actuales.
    En primer lugar, se desea mostrar tan solo las notas añadidas a la incidencia mostrada en pantalla, para lo que se arrastrará la relación Incidencia () hasta la lista Criterios actuales.
    Aparece el cuadro de diálogo Criterios. Ya que se desea utilizar la incidencia actual, será necesario especificar un valor de tiempo de ejecución, no un valor absoluto.
  8. Haga clic en Especificar un valor de tiempo de ejecución.
    El cuadro de diálogo Criterios se actualizará.

Se debe recordar que los valores disponibles para este cuadro de diálogo se basan en Gestión de incidencias\Incidencia, que es el valor por el que se desea filtrar, por lo que no es necesario seleccionar ninguno. Se desea filtrar por el valor de nivel superior: Incidencia.

  1. Haga clic en Aceptar.
    La lista Criterios actuales se actualizará para mostrar Incidencia es igual a (Incidencia). Es decir: la incidencia de la nota coincide con la Incidencia mostrada en la ventana.
  2. Desde el árbol Atributos arrastre el siguiente atributo sobre el que quiere basar los criterios hasta la lista Criterios actuales.
    En el ejemplo se quiere utilizar el atributo Elevado por.
    Aparece el cuadro de diálogo Criterios.

Se observa que el cuadro de diálogo Criterios es distinto del anterior, dado que se está filtrando por un atributo de Incidencia, y no sobre la propia Incidencia.

  1. En el grupo Valor de comparación, seleccione Especificar un valor de tiempo de ejecución.
    el control Valor pasa de ser un cuadro de lista que sirve para especificar un valor absoluto a ser un árbol para especificar un valor que se determinará en tiempo de ejecución. Los valores disponibles en el árbol se toman del objeto seleccionado en el grupo Filtrar por del cuadro de diálogo Nuevo filtro.
  2. En el árbol Valor, se selecciona el atributo que desea que tome el valor de tiempo de ejecución para cumplir la condición de filtrado y a continuación, haga clic en Aceptar.
    En el ejemplo se quiere utilizar el atributo Elevado por.
    La lista Criterios actuales se actualiza.
  3. Haga clic en y a continuación, haga clic en Finalizar.

En el ejemplo, los criterios de filtrado quedan como: Incidencia Es igual a (Incidencia) y Elevado por Es igual a (Elevado por). Puesto que el filtro se basaba en Gestión de incidencias\Nota, pero filtrado por Gestión de incidencias\Incidencia, este criterio será verdadero cuando la Incidencia de la nota coincida con la mostrada en la ventana y el usuario Elevado por del la nota coincida con el de la incidencia actual.
Al agregar este filtro a una ventana de Incidencias mediante el control Consulta (véase Agregar consultas a las ventanas) se creará una pestaña tras la ventana con la lista de las notas adjuntas a la incidencia que tengan el mismo usuario Elevado por que la incidencia.