Campo Metadata Select
| 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 de metadatos no pueden tener el mismo name. El name debe ser único. El name debe empezar por “okp:.” Es buena práctica usar el nombre del grupo de metadatos como base para el nombre del campo de metadatos. Por ejemplo, si se ha usado “okg:consulting” como nombre de grupo, use “okp:consulting.select” cambiando “okg” por “okp”. Esto ayuda a encontrar el grupo de metadatos a partir del nombre del campo de metadatos. Use solo letras, números y guiones bajos: “0-9a-zA-Z_”. |
true |
| type | Valor de tipo. Tipos permitidos: - Simple (permite una única elección). - Multiple (permite varias selecciones). |
false |
| width | El ancho del elemento HTML. En el caso de la interfaz de KCenter, los valores de ancho deben especificarse como porcentajes, por ejemplo: - width=“50%” funcionará - width=“100px” se ignorará en la interfaz de KCenter. |
|
| optionsQuery | Se usa una consulta de metadatos para obtener las opciones seleccionadas. | * |
| className | Se usa una clase para obtener las opciones seleccionadas. | * |
| suggestion | La aplicación puede sugerir automáticamente valores basándose en el análisis del contenido del documento al añadir metadatos a los documentos. Por defecto, la aplicación tiene algunas implementaciones que se pueden extender fácilmente. - com.openkm.form.suggestion.DocumentContentContainsSuggestion: obtiene recomendaciones 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 recomendaciones basadas en los vectores de términos del documento. Para más información, lea Creating your own Suggestion Analyzer. |
false |
| parentElement | Valor del nombre del campo padre. En este caso, el valor es jerárquico con otros valores de campo (el padre). | false |
| description | Descripción general. | false |
| readonly | Este campo no se puede modificar en la interfaz de usuario. Por defecto, el valor es “false.” | false |
| dbColumnSize | Establece el tamaño del campo de base de datos donde se almacena el valor. Por defecto, los campos se almacenan en una columna de base de datos con un tamaño de 128 caracteres. Como la longitud de sus datos puede ser mayor de 128 caracteres, el administrador debería actualizar el tamaño de columna por defecto. Consulte la sección de documentación Metadata XML definition para una explicación detallada de los metadatos almacenados en la base de datos de OpenKM. |
|
| defaultAccess | Política de acceso de seguridad por defecto. Por defecto, está establecido en “grant”, de modo que todos los usuarios verán la propiedad. | |
| filterQuery | Consulta SQL para filtrar dinámicamente las opciones disponibles. Se usa junto con valueQuery. El resultado de la consulta rellena las opciones del select. |
false |
| valueQuery | Consulta SQL para recuperar valores de opción según el valor actual del campo. Se usa junto con filterQuery para selects dependientes/en cascada. |
false |
| suggestbox | Cuando es true, renderiza el select como un campo de tipo suggestbox en lugar de un desplegable. Por defecto: false. |
false |
| filterMinLen | Número mínimo de caracteres a escribir antes de que se active el filtro del suggestbox (solo se usa cuando suggestbox="true"). Por defecto: 3. |
false |
| height | Altura del widget select. Acepta valores de tamaño CSS (p. ej. 150px). Por defecto: 25px. Nota: este atributo se hereda de FormElement pero no tiene efecto visual para este tipo de campo. |
false |
-
* Hay tres opciones para obtener los valores de las opciones:
-
Elementos hijo:
Ejemplo básico de select
Sección titulada «Ejemplo básico de select»- Type es igual a simple.
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE property-groups PUBLIC "-//OpenKM//DTD Property Groups 3.15//EN" "http://www.openkm.com/dtd/property-groups-3.15.dtd"><property-groups> <property-group label="Consulting" name="okg:consulting"> <select label="select label" name="okp:consulting.select" type="simple"> <option label="one" value="001" /> <option label="two" value="002" /> <option label="three" value="003" /> </select> </property-group></property-groups>Permitir múltiples opciones
Sección titulada «Permitir múltiples opciones»- Type es igual a multiple.
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE property-groups PUBLIC "-//OpenKM//DTD Property Groups 3.15//EN" "http://www.openkm.com/dtd/property-groups-3.15.dtd"><property-groups> <property-group label="Consulting" name="okg:consulting"> <select label="select label" name="okp:consulting.select" type="multiple"> <option label="one" value="001" /> <option label="two" value="002" /> <option label="three" value="003" /> </select> </property-group></property-groups>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 considera una 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 property-groups PUBLIC "-//OpenKM//DTD Property Groups 3.15//EN" "http://www.openkm.com/dtd/property-groups-3.15.dtd"><property-groups> <property-group label="Location" name="okg:location"> <select label="Country" name="okp:location.country" type="simple" optionsQuery="select CT_ID, CT_NAME from COUNTRY order by CT_NAME" /> </property-group></property-groups>La tabla usada en este ejemplo se define así:
create table COUNTRY ( CT_ID varchar(2), CT_NAME varchar(32), primary key(CT_ID));Basado en className
Sección titulada «Basado en className»Para ayudar a obtener una lista desde aplicaciones externas u otros propósitos, se puede construir su clase para recuperar los valores de las opciones de esos sistemas.
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE property-groups PUBLIC "-//OpenKM//DTD Property Groups 3.15//EN" "http://www.openkm.com/dtd/property-groups-3.15.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.values.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 recomendadas se mostrarán en verde.
La aplicación tiene algunas implementaciones que se pueden extender fácilmente.
- com.openkm.form.suggestion.DocumentContentContainsSuggestion: obtiene recomendaciones 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 recomendaciones 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 3.15//EN" "http://www.openkm.com/dtd/property-groups-3.15.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>Relación jerárquica
Sección titulada «Relación jerárquica»- Los valores de opción del campo “okp:consulting.children” tienen una relación de padre con “okp:consulting.parent”. Se define con parentElement=“okp:consulting.parent”.
- El valor de opción “benefits” del campo “okp:consulting.children” tiene un valor padre “directives” en el campo “okp:consulting.parent”.
Relaciones en árbol:
- directives
- benefits
- eligibility
- services
- handbook
- basic
- normal
- advanced
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE property-groups PUBLIC "-//OpenKM//DTD Property Groups 3.15//EN" "http://www.openkm.com/dtd/property-groups-3.15.dtd"><property-groups> <property-group label="Consulting" name="okg:consulting"> <select label="Parent" name="okp:consulting.parent" type="simple"> <option value="directives" label="Directives" /> <option value="handbook" label="Handbook Paragraphs" /> </select> <select label="Children" name="okp:consulting.children" type="simple" parentElement="okp:consulting.parent"> <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> </property-group></property-groups>Relación jerárquica con SQL
Sección titulada «Relación jerárquica con SQL»En este caso usamos un par de tablas para obtener la información.
create table LOCALIDAD ( LOC_ID varchar(8), LOC_NAME varchar(32), primary key (LOC_ID));
create table UBICACION ( UBI_ID varchar(8), UBI_LOC varchar(8), UBI_NAME varchar(32), primary key (UBI_ID));
insert into LOCALIDAD (LOC_ID, LOC_NAME) values ('l0', 'Localidad 0');insert into LOCALIDAD (LOC_ID, LOC_NAME) values ('l1', 'Localidad 1');insert into LOCALIDAD (LOC_ID, LOC_NAME) values ('l2', 'Localidad 2');
insert into UBICACION (UBI_ID, UBI_LOC, UBI_NAME) values ('u0', 'l0', 'Ubicación 0');insert into UBICACION (UBI_ID, UBI_LOC, UBI_NAME) values ('u1', 'l0', 'Ubicación 1');insert into UBICACION (UBI_ID, UBI_LOC, UBI_NAME) values ('u2', 'l0', 'Ubicación 2');insert into UBICACION (UBI_ID, UBI_LOC, UBI_NAME) values ('u3', 'l1', 'Ubicación 4');insert into UBICACION (UBI_ID, UBI_LOC, UBI_NAME) values ('u4', 'l1', 'Ubicación 5');insert into UBICACION (UBI_ID, UBI_LOC, UBI_NAME) values ('u5', 'l1', 'Ubicación 6');insert into UBICACION (UBI_ID, UBI_LOC, UBI_NAME) values ('u6', 'l2', 'Ubicación 7');insert into UBICACION (UBI_ID, UBI_LOC, UBI_NAME) values ('u7', 'l2', 'Ubicación 8');insert into UBICACION (UBI_ID, UBI_LOC, UBI_NAME) values ('u8', 'l2', 'Ubicación 9');Esta es la definición del formulario:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE property-groups PUBLIC "-//OpenKM//DTD Property Groups 3.15//EN" "http://www.openkm.com/dtd/property-groups-3.15.dtd"><property-groups> <property-group label="Sample" name="okg:sample"> <!-- Parent child --> <select label="Localidad" name="okp:sample.localidad" optionsQuery="select LOC_ID, LOC_NAME from LOCALIDAD" /> <select label="Ubicacion" name="okp:sample.ubicacion" parentElement="okp:sample.localidad" optionsQuery="select UBI_ID, UBI_NAME, UBI_LOC from UBICACION" /> </property-group></property-groups>