Creación de consultas de selección por atributos
Esta funcionalidad permite buscar y seleccionar elementos de una capa utilizando los valores de sus atributos o utilizando una base de datos vinculada a la capa. En JMap Admin, los administradores crean las consultas y sus formularios asociados. Los usuarios de las aplicaciones JMap utilizan luego esos formularios para especificar los valores de atributos para efectuar las búsquedas. Todos los elementos cuyos valores de atributos corresponden a los valores ingresados son seleccionados y presentados en el explorador de elementos.
Puede acceder a la sección de configuración de las consultas presionando Consultas desde la sección Proyectos.
Crear una nueva consulta de selección por atributos
Para crear una nueva consulta presione Añadir consulta en la sección Consultas de selección por atributos. En la interfaz de configuración de las consultas los parámetros varían en función del tipo de consulta seleccionado.
Consulta de selección por atributos |
|
Título |
Ingrese un título para la consulta. Los usuarios verán ese título en la lista de consultas. |
Capa |
Seleccione la capa en la que se ejecutará la consulta. |
Escala máxima |
Ingrese la escala máxima para la visualización de los resultados en el mapa. Esto es útil para evitar los zooms demasiado detallados sobre los resultados. |
Nro. max. de valores devueltos |
Ingrese el número máximo de elementos que pueden ser devueltos por la consulta. Ésta no se ejecutará si el tamaño del resultado es superior a este límite. Este parámetro evita la ejecución de consultas demasiado voluminosas que podrían lentificar el sistema. |
Modelo de consulta |
Básico: En este tipo de consulta la búsqueda se efectúa únicamente en los atributos de la capa. Es el tipo más simple de consulta. Base de datos externa: En este tipo de consulta la búsqueda se efectúa en una base de datos externa que posee un campo que la vincula a un atributo de la capa. Este tipo de consulta es más complejo para configurar pero ofrece más flexibilidad para las búsquedas. |
Consultas en la capa
Consulta básica |
|
WHERE |
Cláusula WHERE de la expresión SQL que se ejecuta para realizar la búsqueda. Típicamente esta cláusula contiene parámetros numerados ($param1, $param2, etc.) que serán reemplazados por los valores ingresados por el usuario en el formulario. Ejemplos: COUNTRY='$param1' Selecciona los elementos de la capa que tienen el valor del atributo COUNTRY igual al valor ingresado por el usuario. El valor del atributo debe corresponder perfectamente al valor ingresado ($param1). lower(COUNTRY) like lower('$param1%') Selecciona los elementos de la capa que tienen el valor del atributo COUNTRY similar al valor ingresado por el usuario. El valor del atributo debe comenzar por el valor ingresado ($param1). Gracias al operador lower la búsqueda no es sensible a las mayúsculas y minúsculas. POP2000>=$param1 and POP2000<$param2 Selecciona los elementos de la capa que tienen el valor del atributo POP2000 dentro del rango definido por los dos valores ingresados ($param1 y $param2). |
Para configurar el formulario que el usuario utilizará para efectuar la consulta, presione Diseño de formulario. La sección Formularios ofrece más detalles sobre el tema.
Consultas externas
Este tipo de consultas se utiliza cuando se debe hacer una búsqueda en datos contenidos en una base de datos externa. La base de datos externa debe tener un campo que permita vincularla con un atributo de la capa. En primer lugar se ejecuta una consulta SQL de tipo select en la base de datos externa y los valores devueltos por la misma son luego asociados a los elementos de la capa, utilizando el campo de vinculación.
Consulta en base de datos externa |
|
Atributo de la capa |
Especifique, entre los atributos de la capa, el atributo que servirá para establecer el vínculo con la base de datos. |
Base de datos |
Seleccione la la base de datos en la que desea efectuar la búsqueda. |
Expresión SQL |
Ingrese la expresión SQL que será ejecutada en la base de datos para buscar los elementos. Posteriormente se presenta más información sobre el tema. Ejemplos: select * from cities where CITY_LANGUAGE='$param1' Búsqueda en la tabla cities de la base de datos seleccionada. Devuelve los registros cuyo valor del campo CITY_LANGUAGE es igual al valor ingresado por el usuario ($param1). |
Campo |
Seleccione, entre los campos devueltos por la consulta SQL, el campo que servirá para establecer el vínculo con la capa. |
Para configurar el formulario que el usuario utilizará para efectuar la consulta, presione Diseño de formulario. La sección Formularios ofrece más detalles sobre el tema.
Parámetros obligatorios y opcionales
Aunque en el diseño de los formularios de búsqueda los campos están marcados como obligatorios u opcionales, la cláusula where de la expresión de consulta debe ser ajustada para soportar esta opción. Para ello, las partes de la consulta que estén asociadas a parámetros opcionales deben estar incluidas entre llaves ( { } ).
Ejemplo de cláusula where:
CITY = '$param1' and { COUNTRY = '$param2' }
Este ejemplo efectúa la búsqueda de las ciudades cuyo valor para el atributo CITY es igual al valor del parámetro 1 ingresado por el usuario ($param1) y que opcionalmente tienen el valor del atributo COUNTRY igual al valor del parámetro 2 ingresado por el usuario ($param2). Si el parámetro 2 no se ingresa, todo el bloque { COUNTRY = '$param2' } es eliminado de la consulta, así como el operador and que se vuelve huérfano. Atención: el administrador debe obligatoriamente definir $param2 como opcional en el diseño del formulario. La sección Formularios ofrece más detalles sobre este tema.
Valores múltiples para un mismo parámetro
Se puede permitir el ingreso de valores múltiples para un mismo campo de texto en los formularios. Los valores se separan mediante un carácter delimitador. Esta opción puede ser activada en la cláusula where de la consulta. La sintaxis es la siguiente:
$multiple{true|false} {$delimiter{,|;|...}}
Ejemplo:
CITY = '$param1{$multiple{true} $delimiter{,}}'
Selecciona las ciudades cuyo valor del atributo CITY es igual a uno de los valores ingresados en el parámetro 1. Los valores están separados por comas (,). Atención: el delimitador por defecto es la coma (,), por lo que no es necesario especificarlo, tal como se muestra en el siguiente ejemplo:
CITY = '$param1{$multiple{true}}'