Ir al contenido

Campo Metadata Matrix

El campo Matrix renderiza datos estructurados como una tabla interactiva. Según el type, las filas pueden estar predefinidas o añadirse dinámicamente en tiempo de ejecución, y las columnas pueden contener campos de texto, checkboxes u otros tipos de campo admitidos.

Atributo Descripción Obligatorio
label El texto mostrado como etiqueta en la interfaz de usuario. true
name Identificador único del campo.
Dos campos de metadatos no pueden tener el mismo nombre. El nombre debe ser único.
El nombre debe empezar por “okp:”.
Es buena práctica usar el nombre del grupo de metadatos como base para el nombre del campo. Por ejemplo, si se ha usado “okg:contracts” como nombre de grupo, use “okp:contracts.matrix” cambiando “okg” por “okp”. Esto ayuda a encontrar el grupo de metadatos a partir del nombre del campo.
Use solo letras, números y guiones bajos: “0-9a-zA-Z_”.
true
type Define la estructura y el modo de interacción de la tabla matrix. Valores permitidos:
- dynamic (por defecto): La tabla tiene columnas fijas pero sin filas predefinidas. Los usuarios pueden añadir y eliminar filas libremente en tiempo de ejecución.
- multi-select: La tabla tiene filas y columnas fijas. Los usuarios pueden introducir valores en cada celda usando los tipos de campo de columna configurados.
- single-select: La tabla tiene filas y columnas fijas. Cada columna es un checkbox, y el usuario debe seleccionar exactamente un checkbox por fila. Si una fila no tiene ningún checkbox seleccionado, se muestra un aviso de validación.
false
value Valor por defecto del campo. El valor se almacena internamente como un array JSON de objetos de fila. false
placeholder Texto de marcador de posición mostrado en las celdas editables antes de que el usuario introduzca un valor. false
width El ancho del elemento de tabla matrix. Por defecto: 100px.
En la interfaz de KCenter, los valores de ancho deben especificarse como porcentajes, por ejemplo:
- width=“100%” funcionará.
- width=“500px” se ignorará en la interfaz de KCenter.
false
height La altura del elemento de tabla matrix. Admite valores de tamaño CSS (por ejemplo, 200px). false
readonly Cuando se establece a true, la matrix no se puede modificar en la interfaz de usuario. Por defecto: false. false
description Descripción general del campo. false
dbColumnSize Establece el tamaño de la columna de base de datos donde se almacena el valor de la matrix.
Los valores de matrix se serializan como JSON y pueden ser considerablemente más grandes que los campos de valor único. El tamaño de columna por defecto es de 512 caracteres. Aumente este valor si el volumen de datos esperado supera ese límite.
Consulte la sección de documentación Metadata XML definition para una explicación detallada de cómo se almacenan los metadatos en la base de datos de OpenKM.
defaultAccess Política de acceso de seguridad por defecto. Por defecto está establecida en grant, de forma que todos los usuarios verán el campo.
  • Elementos hijos:

En modo dynamic, la tabla no tiene filas predefinidas. Las columnas son fijas, y los usuarios pueden añadir tantas filas como necesiten en tiempo de ejecución. Este es el tipo por defecto cuando se omite type.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE property-groups PUBLIC "-//OpenKM//DTD Property Groups 3.16//EN"
"http://www.openkm.com/dtd/property-groups-3.16.dtd">
<property-groups>
<property-group label="Purchase Order" name="okg:purchase">
<matrix label="Line Items" name="okp:purchase.line_items" type="dynamic" width="100%">
<input label="Product Description" name="description" type="text"></input>
<input label="Unit Price" name="unit_price" type="text"></input>
<input label="Quantity" name="quantity" type="text"></input>
</matrix>
</property-group>
</property-groups>

En modo multi-select, tanto las filas como las columnas están predefinidas. La estructura de la tabla es fija, y los usuarios rellenan los valores de las celdas. Se puede usar cualquier tipo de campo de columna admitido.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE property-groups PUBLIC "-//OpenKM//DTD Property Groups 3.16//EN"
"http://www.openkm.com/dtd/property-groups-3.16.dtd">
<property-groups>
<property-group label="Sales Planning" name="okg:sales">
<matrix label="Quarterly Targets" name="okp:sales.quarterly_targets" type="multi-select" width="100%">
<row label="Q1"/>
<row label="Q2"/>
<row label="Q3"/>
<row label="Q4"/>
<input label="Revenue Target" name="revenue_target" type="text"></input>
<input label="New Clients" name="new_clients" type="text"></input>
<input label="Region" name="region" type="text"></input>
</matrix>
</property-group>
</property-groups>

En modo single-select, la tabla tiene filas fijas y columnas de tipo checkbox. El usuario debe seleccionar exactamente un checkbox por fila. Si alguna fila se deja sin selección, se muestra un aviso de validación.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE property-groups PUBLIC "-//OpenKM//DTD Property Groups 3.16//EN"
"http://www.openkm.com/dtd/property-groups-3.16.dtd">
<property-groups>
<property-group label="Risk Management" name="okg:risk">
<matrix label="Risk Assessment" name="okp:risk.assessment" type="single-select" width="100%">
<row label="Security Risk"/>
<row label="Operational Risk"/>
<row label="Compliance Risk"/>
<checkbox label="Acceptable" name="acceptable"></checkbox>
<checkbox label="Moderate" name="moderate"></checkbox>
<checkbox label="Critical" name="critical"></checkbox>
</matrix>
</property-group>
</property-groups>