Campo Select de parámetros
| Atributo | Descripción | Obligatorio |
|---|---|---|
| label | El texto que 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 |
| type | Valor del tipo. Tipos permitidos: - simple (se permite una sola opción). - multiple (se permite elegir varias opciones). |
true |
| table | Nombre de la tabla de metadatos. La aplicación puede almacenar valores en una tabla de metadatos que pueden utilizarse en esta consulta. |
* |
| width | El ancho del elemento HTML. | false |
| height | El alto del elemento HTML. | false |
| optionsQuery | Una consulta de metadatos o una consulta SQL utilizada para obtener las opciones del select. | * |
-
* Hay dos opciones para obtener los valores de las opciones:
-
Elementos hijo:
Ejemplo básico de select
Sección titulada «Ejemplo básico de select»- El tipo es igual a simple.
<?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> <select label="select label" name="select" type="simple"> <option label="one" value="001" /> <option label="two" value="002" /> <option label="three" value="003" /> </select></report-parameters>Permitir selección múltiple
Sección titulada «Permitir selección múltiple»- El tipo es igual a multiple.
<?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> <select label="select label" name="select" type="multiple"> <option label="one" value="001" /> <option label="two" value="002" /> <option label="three" value="003" /> </select></report-parameters>Relación jerárquica
Sección titulada «Relación jerárquica»- Los valores de opción del campo “childrenSelect” tienen una relación de parentesco con “parentSelect”. Se define mediante parentElement=“parentSelect”.
- El valor de opción “benefits” del campo “childrenSelect” tiene un valor padre “directives” del campo “parentSelect”.
Relaciones en árbol:
- directives
- benefits
- eligibility
- services
- handbook
- basic
- normal
- advanced
<?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> <select label="Parent" name="parentSelect" type="simple"> <option value="directives" label="Directives" /> <option value="handbook" label="Handbook Paragraphs" /> </select> <select label="Children" name="childrenSelect" type="simple" parentElement="parentSelect"> <option value="benefits" label="Benefits" parentValue="directives" /> <option value="elegibility" label="Eligibility" parentValue="directives" /> <option value="services" label="Services" parentValue="directives" /> <option value="basic" label="Basic" parentValue="handbook" /> <option value="normal" label="Advanced" parentValue="handbook" /> <option value="advanced" label="Normal" parentValue="handbook" /> </select></report-parameters>Opciones basadas en una tabla de metadatos
Sección titulada «Opciones basadas en una tabla de metadatos»- La aplicación utiliza dos tablas llamadas OKM_DB_METADATA_TYPE y OKM_DB_METADATA_VALUE que ayudan a almacenar los valores de opción utilizados en los selects. Es muy útil cuando tiene un gran número de valores.
- En la tabla OKM_DB_METADATA_TYPE se almacena la definición de la tabla de metadatos (nombre de la tabla, nombre de la columna y tipo de la columna).
- 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, en 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, en 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. Véanse $country_id y $country_name a continuación.
- Pueden utilizarse cláusulas sql normales como “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> <select label="country" name="country" type="simple" table="country" optionsQuery="select $country_id, $country_name from DatabaseMetadataValue dmv where dmv.table='country' order by $country_name" /></report-parameters>Basado en una consulta SQL
Sección titulada «Basado en una consulta SQL»También podemos obtener estos valores de opción mediante una consulta SQL. Esta sentencia SQL debe ponerse en el atributo optionsQuery, pero el atributo table debe estar vacío (de lo contrario, esta consulta se utiliza como consulta de metadatos). Tenga en cuenta que el primer elemento devuelto en cada fila es el valor de la opción y el segundo es la etiqueta de la opción.
<?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> <select label="country" name="country" type="simple" optionsQuery="select CT_ID, CT_NAME from COUNTRY order by CT_NAME" /></report-parameters>La tabla utilizada en este ejemplo se define así:
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');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 propia clase para recuperar los valores de opción de esos sistemas.
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE property-groups PUBLIC "-//OpenKM//DTD Property Groups 2.5//EN" "http://www.openkm.com/dtd/property-groups-2.5.dtd"><property-groups> <property-group label="Consulting" name="okg:consulting"> <select label="select label" name="okp:consulting.select" type="simple" className="com.openkm.plugin.form.OptionSelectUserList" /> </property-group></property-groups>Para más información, lea Creating your own Option Select Values plugin.
Opciones sugeridas
Sección titulada «Opciones sugeridas»Basándose en el analizador de contenido, la aplicación puede sugerir algunos valores de opción. En la interfaz de usuario, las opciones sugeridas se mostrarán en verde.
La aplicación dispone de algunas implementaciones que pueden ampliarse fácilmente.
- com.openkm.form.suggestion.DocumentContentContainsSuggestion: Obtiene sugerencias basadas en el contenido del documento (usa String.contains)
- com.openkm.form.suggestion.DocumentContentTokenizerSuggestion: Obtiene sugerencias basadas en el contenido del documento (usa StringTokenizer).
- com.openkm.form.suggestion.DocumentTermsSuggestion: Obtiene sugerencias basadas en los vectores de términos del documento.
Para más información, lea Creating your own Suggestion Analyzer.
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE property-groups PUBLIC "-//OpenKM//DTD Property Groups 2.5//EN" "http://www.openkm.com/dtd/property-groups-2.5.dtd"><property-groups> <property-group label="Consulting" name="okg:consulting"> <select label="select label" name="okp:consulting.select" type="multiple" suggestion="com.openkm.form.suggestion.DocumentContentContainsSuggestion"> <option label="one" value="001" /> <option label="two" value="002" /> <option label="three" value="003" /> </select> </property-group></property-groups>