Campo Select de Workflow
| Atributo | Descripción | Obligatorio |
|---|---|---|
| label | El texto mostrado 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 (permite selección única, por defecto). - multiple (permite selección múltiple). |
false |
| value | Puede especificar un valor por defecto para este componente. | false |
| width | El ancho del elemento HTML. En el caso de KCenter, la interfaz debe usar valores de ancho basados en %, por ejemplo: - width=“50%” funcionará - width=“100px” se ignorará en la interfaz de KCenter. |
false |
| description | Descripción general. | false |
| optionsQuery | Una consulta SQL usada para obtener las opciones del select. La primera columna del resultado es el valor de la opción; la segunda es la etiqueta de la opción. | * |
| className | Una clase Java usada para obtener las opciones del select. | * |
| data | Cuando está presente, un identificador usado para cargar dinámicamente el valor seleccionado. | false |
| visible | Este atributo solo tiene sentido cuando se usa junto con un objeto mapeado en el atributo data; el valor visible del objeto mapeado en data se asigna al campo del formulario, haciendo que se muestre u oculte (el uso más común es ocultarlo). El valor por defecto de visible es true. | false |
| optionsData | Cuando está presente, un identificador usado para cargar dinámicamente la lista de opciones. | false |
| readonly | Cuando es true, el campo no se puede modificar en la interfaz de usuario. Por defecto es false. |
false |
-
* Hay tres formas mutuamente excluyentes de obtener los valores de las opciones:
-
Elementos hijos:
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 workflow-forms PUBLIC "-//OpenKM//DTD Workflow Forms 2.13//EN" "http://www.openkm.com/dtd/workflow-forms-2.13.dtd"><workflow-forms> <workflow-form task="select test"> <select label="select label" name="select" type="simple"> <option label="one" value="001" /> <option label="two" value="002" /> <option label="three" value="003" /> </select> </workflow-form></workflow-forms>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 workflow-forms PUBLIC "-//OpenKM//DTD Workflow Forms 2.13//EN" "http://www.openkm.com/dtd/workflow-forms-2.13.dtd"><workflow-forms> <workflow-form task="select test"> <select label="select label" name="select" type="multiple" > <option label="one" value="001" /> <option label="two" value="002" /> <option label="three" value="003" /> </select> </workflow-form></workflow-forms>Basado en consulta SQL
Sección titulada «Basado en consulta SQL»Los valores de las opciones también se pueden obtener mediante una consulta SQL colocada en el atributo optionsQuery. La primera columna de cada fila es el valor de la opción, y la segunda es la etiqueta de la opción.
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE workflow-forms PUBLIC "-//OpenKM//DTD Workflow Forms 2.6//EN" "http://www.openkm.com/dtd/workflow-forms-2.6.dtd"><workflow-forms> <workflow-form task="select test"> <select label="country" name="country" type="simple" optionsQuery="select CT_ID, CT_NAME from COUNTRY order by CT_NAME"/> </workflow-form></workflow-forms>La tabla usada 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 obtener una lista desde aplicaciones externas o para otros propósitos, puede construir una clase para obtener los valores de las opciones desde esos sistemas.
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE workflow-forms PUBLIC "-//OpenKM//DTD Workflow Forms 2.6//EN" "http://www.openkm.com/dtd/workflow-forms-2.6.dtd"><workflow-forms> <workflow-form task="select test"> <select label="select label" name="select" type="simple" className="com.openkm.plugin.form.values.OptionSelectUserList" /> </workflow-form></workflow-forms>Para más información, lea: Creating your own Option Select Values plugin.
Relación jerárquica
Sección titulada «Relación jerárquica»- El valor de opción del campo “childrenSelect” tiene una relación padre con “parentSelect”. Se define mediante parentElement=“parentSelect”
- El valor de opción “benefits” del campo “childrenSelect” tiene un valor padre “directives” del área “parentSelect”.
Relaciones en árbol:
- directives
- benefits
- eligibility
- services
- handbook
- basic
- normal
- advanced
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE workflow-forms PUBLIC "-//OpenKM//DTD Workflow Forms 2.13//EN" "http://www.openkm.com/dtd/workflow-forms-2.13.dtd"><workflow-forms> <workflow-form task="select test"> <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="eligibility" 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> </workflow-form></workflow-forms>Relación jerárquica con SQL
Sección titulada «Relación jerárquica con SQL»El siguiente ejemplo usa dos tablas relacionadas para rellenar campos select jerárquicos.
create table LOCATION ( LOC_ID varchar(8), LOC_NAME varchar(32), primary key (LOC_ID));
create table SUBLOCATION ( UBI_ID varchar(8), UBI_LOC varchar(8), UBI_NAME varchar(32), primary key (UBI_ID));
insert into LOCATION (LOC_ID, LOC_NAME) values ('l0', 'Location 0');insert into LOCATION (LOC_ID, LOC_NAME) values ('l1', 'Location 1');insert into LOCATION (LOC_ID, LOC_NAME) values ('l2', 'Location 2');
insert into SUBLOCATION (UBI_ID, UBI_LOC, UBI_NAME) values ('u0', 'l0', 'Sub-location 0');insert into SUBLOCATION (UBI_ID, UBI_LOC, UBI_NAME) values ('u1', 'l0', 'Sub-location 1');insert into SUBLOCATION (UBI_ID, UBI_LOC, UBI_NAME) values ('u2', 'l0', 'Sub-location 2');insert into SUBLOCATION (UBI_ID, UBI_LOC, UBI_NAME) values ('u3', 'l1', 'Sub-location 4');insert into SUBLOCATION (UBI_ID, UBI_LOC, UBI_NAME) values ('u4', 'l1', 'Sub-location 5');insert into SUBLOCATION (UBI_ID, UBI_LOC, UBI_NAME) values ('u5', 'l1', 'Sub-location 6');insert into SUBLOCATION (UBI_ID, UBI_LOC, UBI_NAME) values ('u6', 'l2', 'Sub-location 7');insert into SUBLOCATION (UBI_ID, UBI_LOC, UBI_NAME) values ('u7', 'l2', 'Sub-location 8');insert into SUBLOCATION (UBI_ID, UBI_LOC, UBI_NAME) values ('u8', 'l2', 'Sub-location 9');Esta es la definición del formulario:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE workflow-forms PUBLIC "-//OpenKM//DTD Workflow Forms 2.13//EN" "http://www.openkm.com/dtd/workflow-forms-2.13.dtd"><workflow-forms> <workflow-form task="task"> <!-- Parent-child --> <select name="location" label="Location" optionsQuery="select LOC_ID, LOC_NAME from LOCATION" /> <select name="sublocation" label="Sub-location" parentElement="location" optionsQuery="select UBI_ID, UBI_NAME, UBI_LOC from SUBLOCATION" /> </workflow-form></workflow-forms>