Mashup Builder > Widgets > Cuadrículas avanzadas > Clasificación, búsqueda y filtrado en cuadrículas avanzadas y cuadrículas de árbol
Clasificación, búsqueda y filtrado en cuadrículas avanzadas y cuadrículas de árbol
La clasificación, la búsqueda y el filtrado de los datos de la cuadrícula se gestionan a través de un servicio de consulta de plataforma estándar con un único evento Filter y un parámetro QueryFilter. Cuando se activa el evento Filter, ya sea para clasificar, buscar o filtrar los datos de la cuadrícula, el parámetro QueryFilter garantiza que los datos devueltos cumplan todas las condiciones especificadas.
Los datos para la clasificación, la búsqueda y el filtrado se pueden consultar de las siguientes maneras:
Configure una tabla de datos que contenga los datos y acceda a ella mediante la API estándar de QueryDataTableEntries Platform.
Si se generan datos dinámicamente, a través de un servicio de datos, se debe utilizar la función de consulta de InfoTable para clasificar y buscar datos en una InfoTable.
Para obtener más información sobre los parámetros de consulta, consulte la sección Parámetro de consulta para servicios de consulta del centro de ayuda de ThingWorx.
Implementación de la clasificación
1. Defina la propiedad EnableSorting en verdadero, ya sea pulsando en el panel de propiedades de Mashup Builder o definiéndola en el script JSON de un servicio de configuración dinámica. La propiedad QueryFilter y el evento Filter aparecen en el panel de propiedades.
2. Enlace la propiedad QueryFilter al parámetro de consulta de salida donde se encuentran los datos que se van a clasificar:
Si los datos están en una tabla, enlace QueryFilter al parámetro de consulta del servicio QueryDataTableEntries.
Si se generan datos a través de un servicio de datos, se debe enlazar QueryFilter al parámetro queryFilter del servicio de datos.
3. Enlace el evento de filtro al servicio que se activa cuando empieza la clasificación:
Si se utiliza una tabla de datos, enlace el evento Filter al servicio QueryDataTableEntries.
Si se generan datos a través de un servicio de datos, enlace el evento Filter al servicio de datos.
En el siguiente ejemplo se muestra un parámetro de consulta con el nombre y el título de las columnas de clasificación aplicados:
{"maxItems":100000,"query":{"sorts":[{"fieldName":"name","isAscending":true},{"fieldName":"title","isAscending":true}]}}
Cuando se hayan completado estos pasos de enlace, el panel Conexiones debe tener el aspecto siguiente:
Implementación de la búsqueda
La búsqueda proporciona la capacidad de buscar un valor de cadena en cualquier columna de una cuadrícula.
1. Defina la propiedad EnableGridSearch en verdadero, ya sea pulsando en el panel de propiedades de Mashup Builder o definiéndola en el script JSON de un servicio de configuración dinámica. La propiedad GridSearchLocation, la propiedad QueryFilter y Filtro aparecen en el panel de propiedades.
2. Utilice la propiedad GridSearchLocation, ya sea en el panel de propiedades de Mashup Builder o en un script JSON, para configurar una ubicación para el campo de búsqueda en la cuadrícula. Entre las opciones disponibles se incluyen: superior derecha, superior izquierda, inferior derecha e inferior izquierda.
3. Enlace la propiedad QueryFilter al parámetro de consulta de salida donde se encuentran los datos que se deben buscar:
Si los datos están en una tabla, enlace QueryFilter al parámetro de consulta del servicio QueryDataTableEntries.
Si se generan datos a través de un servicio de datos, se debe enlazar QueryFilter al parámetro queryFilter del servicio de datos.
4. Enlace el evento Filter al servicio que se activa cuando empieza la búsqueda:
Si se utiliza una tabla de datos, enlace el evento Filter al servicio QueryDataTableEntries.
Si se generan datos a través de un servicio de datos, enlace el evento Filter al servicio de datos.
En el siguiente ejemplo se muestra una consulta de búsqueda que busca el evento Rain en todas las columnas:
{"maxItems":100000,"query":{"filters":{"type":"OR","filters":[{"fieldName":"id","type":"LIKE","value":"%Rain%"},{"fieldName":"date","type":"LIKE","value":"%Rain%"},{"fieldName":"max_temp","type":"LIKE","value":"%Rain%"},{"fieldName":"min_temp","type":"LIKE","value":"%Rain%"},{"fieldName":"cold","type":"LIKE","value":"%Rain%"},{"fieldName":"visibility","type":"LIKE","value":"%Rain%"},{"fieldName":"wind","type":"LIKE","value":"%Rain%"},{"fieldName":"precipitation","type":"LIKE","value":"%Rain%"},{"fieldName":"events","type":"LIKE","value":"%Rain%"},{"fieldName":"image","type":"LIKE","value":"%Rain%"},{"fieldName":"key","type":"LIKE","value":"%Rain%"},{"fieldName":"location","type":"LIKE","value":"%Rain%"},{"fieldName":"source","type":"LIKE","value":"%Rain%"},{"fieldName":"sourceType","type":"LIKE","value":"%Rain%"},{"fieldName":"tags","type":"LIKE","value":"%Rain%"},{"fieldName":"timestamp","type":"LIKE","value":"%Rain%"}]}}}
Implementación de filtrado
Para implementar el filtrado en una cuadrícula, añada un widget de filtro de datos al mashup en el que se crea la cuadrícula. Solo se puede añadir un widget de filtro de datos a una cuadrícula que esté enlazada a una tabla de datos basada en una definición de datos subyacente.
1. En la ficha Widgets del lado izquierdo de Mashup Builder, seleccione el widget de filtro de datos y arrástrelo al mashup.
2. Enlace el parámetro de consulta de salida del widget de filtro de datos a la propiedad QueryFilter de la cuadrícula avanzada. En este escenario, la propiedad QueryFilter está atendiendo a una función de entrada y de salida. Recibe la entrada del filtro de datos, que se combina automáticamente con cualquier entrada de clasificación y búsqueda activa, y genera una única salida para el parámetro de consulta.
3. Enlace la propiedad QueryFilter al parámetro de consulta del servicio QueryDataTableEntries de la tabla de datos que se filtra, clasifica o busca.
En el siguiente ejemplo se muestra una consulta de filtro de datos con un único parámetro de filtro, un valor de evento Rain:
{"maxItems":100000,"query":{"filters":{"fieldName":"events","type":"LIKE","value":"Rain*"}}}
Una consulta de filtro puede ser mucho más compleja cuando se aplican varios filtros o cuando la entrada de filtro se combina con parámetros de búsqueda y clasificación. En el siguiente ejemplo se muestra una combinación de parámetros de clasificación, búsqueda y filtro en una única consulta de salida:
{"maxItems":100000,"query":{"sorts":[{"fieldName":"id","isAscending":true},{"fieldName":"min_temp","isAscending":true}],"filters":{"type":"And","filters":[{"type":"And","filters":[{"fieldName":"events","type":"LIKE","value":"Rain*"},{"fieldName":"cold","type":"EQ","value":false}]},{"type":"OR","filters":[{"fieldName":"id","type":"LIKE","value":"%21%"},{"fieldName":"date","type":"LIKE","value":"%21%"},{"fieldName":"max_temp","type":"LIKE","value":"%21%"},{"fieldName":"min_temp","type":"LIKE","value":"%21%"},{"fieldName":"cold","type":"LIKE","value":"%21%"},{"fieldName":"visibility","type":"LIKE","value":"%21%"},{"fieldName":"wind","type":"LIKE","value":"%21%"},{"fieldName":"precipitation","type":"LIKE","value":"%21%"},{"fieldName":"events","type":"LIKE","value":"%21%"},{"fieldName":"image","type":"LIKE","value":"%21%"}]}]}}
En la cuadrícula avanzada, cuando se utiliza el filtrado junto con la clasificación y/o la búsqueda, los enlaces deben tener el aspecto del siguiente diagrama al completarse: