Ir al contenido
Otras versiones

Cargando…

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:

  • 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>
  • 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>
  • 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>
  • 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>

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');

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.

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>