Campo Suggestbox de parámetros
Esta es una implementación del típico componente de cuadro de sugerencias AJAX:
| Atributo | Descripción | Obligatorio |
|---|---|---|
| label | El texto se muestra como etiqueta en la interfaz de usuario. | true |
| name | Identificador único del campo. Dos campos no pueden tener el mismo nombre en la misma definición de tarea. El nombre debe ser único. |
true |
| table | Nombre de la tabla de metadatos. La aplicación puede almacenar valores en una tabla de metadatos que se puede utilizar en esta consulta. |
* |
| width | El ancho del elemento HTML. En el caso de KCenter, la interfaz de usuario debe utilizar valores de ancho basados en %, por ejemplo: - width=“50%” funcionará - width=“100px” se ignorará en la interfaz de usuario de KCenter. |
false |
| height | El alto del elemento HTML. | false |
| filterQuery | Una consulta de Hibernate para filtrar los datos. Utilice {0} para colocar el texto introducido por el usuario. | * |
| valueQuery | Una consulta de Hibernate para obtener el valor de un identificador. Utilice {0} para colocar el identificador. | * |
| className | Una clase utilizada para obtener las opciones seleccionadas. | * |
| filterMinLen | El número mínimo de caracteres de la entrada para empezar a filtrar los resultados. | true |
| dialogTitle | El título del cuadro de diálogo HTML. | true |
-
* Hay tres opciones para obtener los valores del cuadro de sugerencias (es obligatorio utilizar una de ellas):
-
Elementos hijo:
Basado en table, filterQuery y valueQuery
Sección titulada «Basado en table, filterQuery y valueQuery»Los valores del cuadro de sugerencias se definen en tablas de metadatos.
- La aplicación utiliza dos tablas denominadas OKM_DB_METADATA_TYPE Y OKM_DB_METADATA_VALUE para ayudar a almacenar los valores de opción utilizados en los select. Esto es muy útil cuando se dispone de un gran número de valores.
- OKM_DB_METADATA_TYPE almacena las definiciones de las tablas de metadatos (nombre de la tabla, nombre de la columna y tipo de columna) en la tabla.
- En la tabla OKM_DB_METADATA_VALUE se almacenan los valores de los registros.
Cree la definición de la tabla de metadatos.
- Vaya a Administration > Utilities > Database query.
- En la parte inferior derecha, seleccione jdbc de la lista.
- Pegue el SQL en el cuadro.
DELETE FROM OKM_DB_METADATA_TYPE WHERE DMT_TABLE='country';INSERT INTO OKM_DB_METADATA_TYPE (DMT_TABLE, DMT_REAL_COLUMN, DMT_TYPE, DMT_VIRTUAL_COLUMN) VALUES ('country', 'col00', 'integer', 'country_id');INSERT INTO OKM_DB_METADATA_TYPE (DMT_TABLE, DMT_REAL_COLUMN, DMT_TYPE, DMT_VIRTUAL_COLUMN) VALUES ('country', 'col01', 'text', 'country_name');- Haga clic en el botón Execute de la parte inferior derecha.
Inserte los valores de la tabla de metadatos:
- Vaya a Administration > Utilities > Database query.
- En la parte inferior derecha, seleccione jdbc de la lista.
- Pegue el SQL en el cuadro.
DELETE FROM OKM_DB_METADATA_VALUE WHERE DMV_TABLE='country';INSERT INTO OKM_DB_METADATA_VALUE (DMV_TABLE, DMV_COL00, DMV_COL01) VALUES ('country', '001', 'Australia');INSERT INTO OKM_DB_METADATA_VALUE (DMV_TABLE, DMV_COL00, DMV_COL01) VALUES ('country', '002', 'Canada');- Haga clic en el botón Execute de la parte inferior derecha.
Por último, la definición XML:
- En optionsQuery, los valores que empiezan por el carácter $ se identifican como nombres de columna. Vea $country_id y $country_name más abajo.
- Puede utilizar cláusulas SQL normales como lower, like, order by, etc.
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE report-parameters PUBLIC "-//OpenKM//DTD Report Parameters 2.1//EN" "http://www.openkm.com/dtd/report-parameters-2.1.dtd"><report-parameters> <suggestbox label="country" name="suggestbox" width="200px" table="country" dialogTitle="Choose country" filterMinLen="3" filterQuery="select $country_id, $country_name from DatabaseMetadataValue dmv where dmv.table='country' and lower(dmv.$country_name) like '%{0}%' order by dmv.$country_name" valueQuery="select $country_id, $country_name from DatabaseMetadataValue dmv where dmv.table='country' and dmv.$country_id='{0}'" /></report-parameters>Basado en filterQuery y valueQuery (sin el atributo table)
Sección titulada «Basado en filterQuery y valueQuery (sin el atributo table)»Ahora filterQuery y valueQuery pueden ser consultas SQL normales.
Cree la tabla COUNTRY:
create table COUNTRY ( CT_ID varchar(2), CT_NAME varchar(32), primary key(CT_ID));
insert into COUNTRY (CT_ID, CT_NAME) values ('es', 'Spain');insert into COUNTRY (CT_ID, CT_NAME) values ('pt', 'Portugal');insert into COUNTRY (CT_ID, CT_NAME) values ('it', 'Italy');Definición de metadatos:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE report-parameters PUBLIC "-//OpenKM//DTD Report Parameters 2.1//EN" "http://www.openkm.com/dtd/report-parameters-2.1.dtd"><report-parameters> <suggestbox label="country" name="okp:consulting.suggestbox" width="200px" dialogTitle="Choose country" filterMinLen="3" filterQuery="select ct_id, ct_name from country where ct_name like '%{0}%' order by ct_name" valueQuery="select ct_id, ct_name from country where ct_id='{0}'" /></report-parameters>Basado en className
Sección titulada «Basado en className»Para ayudar a obtener una lista de aplicaciones externas o con otros fines, puede construir su clase para que recupere los valores de las opciones de esos sistemas.
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE report-parameters PUBLIC "-//OpenKM//DTD Report Parameters 2.1//EN" "http://www.openkm.com/dtd/report-parameters-2.1.dtd"><report-parameters> <suggestbox label="country" name="okp:consulting.suggestbox" width="200px" dialogTitle="Choose country" filterMinLen="3" className="com.openkm.plugin.form.values.SuggestBoxUserList" /></report-parameters>Para más información, lea Creación de su propio plugin de Suggestbox.