Registros, enlaces y jerarquía
Un registro representa una tarea, un cliente, un pedido u otro objeto de negocio. Usa la API Facade para escribir por lotes, leer por páginas, vincular tablas y organizar registros padre e hijo.
Crear y leer registros
const base = univerAPI.getActiveBase()if (!base) throw new Error('Open a Base first')const table = base.insertTable('Tasks', { primaryFieldName: 'Title' })const titleId = table.getPrimaryFieldId()const records = table.addRecords([ { values: { [titleId]: 'Write documentation' } }, { values: { [titleId]: 'Review examples' } },])records[0].setValue(titleId, 'Publish documentation')const page = table.queryRecords({ offset: 0, limit: 20 })console.log(page.total, page.records)Los valores usan los ID de los campos como claves de forma predeterminada. Pasa univerAPI.Enum.BaseFieldKeyEnum.Name para datos cuyas claves sean nombres de campo. queryRecords() consulta los datos locales cargados; no recupera páginas del backend. Usa viewId para leer el ámbito de una vista o sort para especificar el orden.
Elimina un lote con table.deleteRecords(recordIds) o duplica un registro con record.duplicate(). Estas operaciones usan el sistema de comandos y admiten deshacer y rehacer.
Buscar registros
Busca texto en los campos seleccionados:
const matches = table.search({ query: 'documentation', fieldIds: [titleId], limit: 20 })console.log(matches)Vincular otra tabla
Por ejemplo, vincula cada tarea a un proyecto:
const projects = base.insertTable('Projects', { primaryFieldName: 'Name' })const project = projects.addRecord({ [projects.getPrimaryFieldId()]: 'Website' })const projectField = table.addField('Project', univerAPI.Enum.BaseFieldType.RecordLink, { field: { config: { targetTableId: projects.getId(), multiple: false } },})records[0].setLinkedRecordIds(projectField.getId(), [project.getId()])console.log(records[0].getLinkedRecordIds(projectField.getId()))Los destinos deben pertenecer a la misma Base. Configura multiple: true para vincular varios registros, displayFieldId para la etiqueta mostrada y pickerFieldIds para aportar contexto adicional en el selector. Usa las API de enlaces para leer y escribir ID en lugar de construir cadenas de almacenamiento internas.
Registros padre e hijo
Convierte una revisión de la API en un registro hijo de la tarea de documentación:
const parent = records[0]const parentFieldId = table.getHierarchyFieldId()const child = parent.addChild(parentFieldId, { [titleId]: 'Check API examples' })console.log(child.getParent(parentFieldId)?.getId())child.setParent(parentFieldId, null)La primera inserción de un hijo crea automáticamente el campo de enlace al padre necesario. Usa getChildren(), getAncestors() y getDescendants() para leer las relaciones. Las jerarquías admiten hasta cinco niveles; no se permite que un registro sea su propio padre ni que existan ciclos. Gestiona los errores de operación no válida en la interfaz.
La jerarquía pertenece a los datos de la tabla y no cambia al alternar o filtrar vistas. Consulta más métodos en Bases Facade.
¿Cómo es esta guía?