Skip to content

TABLE y COLUMN

El componente TABLE muestra registros en un formato de grilla estructurada con definiciones de columnas y soporte de paginación.

TABLE

text
PAGE
 └─ TABLE
     ├─ COLUMN (uno o más)
     └─ BUTTON (opcional, cero o más)
PropiedadTipoRequeridoValor predeterminadoDescripción
typestringDebe ser TABLE
namestringIdentificador del componente
sourcestringNoname del componenteNombre de la variable que contiene el Resultset
paginationbooleanNofalseHabilita la paginación. Cuando es false, la tabla muestra todas las filas del Resultset sin paginar
pageSizeVarstringNoNombre de la variable que contiene el número de filas por página. Requiere pagination: true. Si no se especifica, se usa 10
offsetVarstringNoNombre de la variable donde Autobase asignará el offset calculado (páginaActual - 1) * pageSize. Requiere pagination: true
currentPageVarstringSí (con paginación)Nombre de la variable que almacena la página actual. Requerido solo si pagination: true
totalRowsVarstringNoNombre de la variable con el total de filas. Si no se especifica, se calcula de rs.Rows.Count. Requiere pagination: true
onPageChangestringNoScript Lua que se ejecuta cuando cambia la página. Requiere pagination: true
cssClassstringNo""Clases CSS para el elemento table
cssStylestringNo""Estilos CSS para el elemento table
visiblebooleanNotrueIndica si el componente es visible
columnscollectionColumnas de la tabla (ver sección COLUMN)
buttonscollectionNoAcciones por fila (ver sección Botones)

El TABLE trabaja con un Resultset que debe estar disponible en una variable (definida por source).

Cuando pagination: true, se habilita la paginación: el usuario debe indicar la página actual (currentPageVar), el tamaño de página (pageSizeVar) y opcionalmente el total de filas (totalRowsVar) y la variable de offset (offsetVar). Cuando el usuario cambia de página, se dispara el evento onPageChange que debe actualizar tanto el Resultset en source como la variable totalRowsVar si corresponde.

Cuando pagination: false (valor por defecto), la tabla muestra todas las filas del Resultset sin paginación.

yaml
- name: customersTable
  type: TABLE
  source: customersRs
  pagination: true
  currentPageVar: customersPage
  totalRowsVar: customersTotal
  pageSizeVar: pageSize
  offsetVar: offset

  columns:
    - name: customerId
      title: ID
      field: id

    - name: customerName
      title: Cliente
      field: name

    - name: customerEmail
      title: Email
      field: email

    - name: customerPhone
      title: Teléfono
      field: phone

En el evento onPageChange, Autobase calcula automáticamente el offset (páginaActual - 1) * pageSize y lo asigna en la variable indicada en offsetVar.

Entonces se puede hacer, suponiendo que rs es la variable que contiene el Resultset referenciado en la propiedad source:

sql
rs = sql("SELECT * FROM table LIMIT {{pageSize}} OFFSET {{offset}}")

Botones por fila

Se pueden agregar botones de acción en cada fila de la tabla usando la colección buttons. Cada botón se renderiza en una columna adicional al final.

yaml
- name: customersTable
  type: TABLE
  source: customersRs
  pagination: true
  currentPageVar: customersPage
  totalRowsVar: customersTotal
  pageSizeVar: pageSize
  offsetVar: offset

  columns:
    - name: customerName
      title: Cliente
      field: name

    - name: customerPhone
      title: Teléfono
      field: phone

  buttons:
    - name: editCustomer
      text: Editar
      icon: edit
      variant: primary
      onClick: editCustomer

    - name: deleteCustomer
      text: Eliminar
      icon: trash
      variant: danger
      onClick: deleteCustomer

Propiedades de botón

PropiedadTipoRequeridoValor predeterminadoDescripción
namestringIdentificador del botón
textstringNo""Texto del botón
iconstringNo""Ícono Tabler (https://tabler.io/icons)
variantstringNoprimaryVariante visual: primary, secondary, success, danger, warning, info, light, dark
stylestringNosolidEstilo visual: solid, outline, link
sizestringNomdTamaño: sm, md, lg
onClickstringNombre del evento a ejecutar al hacer clic

Contexto de fila

Al hacer clic en un botón de fila se pasarán automáticamente los valores de cada campo de la fila a variables del mismo nombre que el campo. Así, en el evento onClick del botón estarán disponibles los valores de la fila clickeada en forma de variables.

Ejemplo de script para el evento editCustomer, suponiendo que había dos columnas en la tabla llamadas "id" y "name":

lua
local customerId = {{id}}
local customerName = {{name}}

COLUMN

El componente COLUMN define la estructura y renderizado de columnas individuales dentro de un componente TABLE.

PropiedadTipoRequeridoValor predeterminadoDescripción
typestringDebe ser COLUMN
namestringIdentificador de la columna
fieldstringNombre del campo del Resultset a mostrar
titlestringNo""Texto del encabezado de la columna
showAsCheckBoxbooleanNoSi es true, muestra el campo como checkbox (automático para campos Boolean)
cssClassstringNo""Clases CSS para las celdas (automático: text-end para números)
visiblebooleanNotrueIndica si la columna es visible