> For the complete documentation index, see [llms.txt](https://doc.velneo.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://doc.velneo.com/38/velneo-vclient/funcionalidades-especificas/rejillas-vclient.md).

# Manejo de rejillas

Una rejilla te permite consultar, ordenar, filtrar y editar registros.

Las opciones visibles pueden variar según la aplicación y la pantalla.

## Trabajar con fichas

### Alta de ficha

Puedes crear un registro desde el menú **Ficha**, la barra de herramientas, el menú contextual o con **Insert** y **Ctrl + N**.

La nueva fila entra en edición en la primera columna. Pulsa **Tab** para pasar a la siguiente celda.

Si pulsas **Tab** en la última columna, el registro se guarda y se crea una nueva fila.

Pulsa **Esc** para cancelar. Pulsa **Intro** para guardar.

### Modificación de ficha

Para editar un registro, sitúate sobre la celda y usa una de estas acciones:

* Pulsa **Intro**.
* Haz doble clic.
* Abre la opción **Modificación de ficha**.

En rejillas estándar también puedes usar la **barra espaciadora**. En [rejillas avanzadas](/38/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-aplicacion/rejilla-avanzada.md) esta tecla no inicia la edición.

Pulsa **Tab** para avanzar a la siguiente celda. Pulsa **Shift + Tab** para volver a la anterior.

Si pulsas **Tab** en la última columna, el registro se guarda y la edición continúa en la fila siguiente.

Pulsa **Esc** para cancelar. Pulsa **Intro** para guardar.

En pantallas táctiles, una pulsación prolongada puede abrir el formulario de edición.

### Baja de ficha

Para borrar un registro, selecciónalo y usa **Baja de ficha**, la barra de herramientas, el menú contextual o la tecla **Supr**.

El sistema te pedirá confirmación antes de borrar.

Si el registro tiene datos relacionados que impiden el borrado, tendrás que eliminarlos antes.

## Comandos de lista

Estas opciones actúan sobre la lista que ves en pantalla.

### Invertir

Invierte el orden actual de la lista.

Si la lista estaba en orden ascendente, pasará a descendente.

### Filtros

El submenú **Filtros** te permite dejar en la lista solo los registros que cumplen una condición.

Consulta [Submenú de filtros](/38/velneo-vclient/funcionalidades-especificas/rejillas-vclient/submenu-de-filtros.md) para ver todas las opciones disponibles.

### Ordenar

Reordena la lista por el campo que elijas.

Puedes ordenar por campos de la tabla y, en muchos casos, por campos relacionados.

El orden es ascendente por defecto. Si quieres el orden inverso, activa **Invertir lista**.

Algunas columnas especiales no admiten este tipo de ordenación.

### Partir

Divide la lista en dos vistas a partir del registro seleccionado.

La primera vista muestra los registros anteriores. La segunda muestra los posteriores.

También puedes usar **Ctrl + F5**.

### Multipartir

Divide la lista en varias vistas según el valor de un campo.

Cada valor distinto crea una vista independiente.

No todas las columnas admiten esta opción.

### Campos duplicados

Crea una nueva lista con los registros que tienen valores repetidos en el campo que selecciones.

Es útil para localizar códigos, claves o referencias duplicadas.

### Modificar campo

Permite cambiar un mismo campo en varios registros a la vez.

Antes de abrir la opción, puedes seleccionar los registros que quieras modificar.

Al iniciar el asistente, define estos datos:

* **Registros** — solo los seleccionados o todos.
* **Campo a modificar** — el campo que quieres actualizar.
* **Filtro** — una condición adicional para limitar los registros.
* **Nuevo valor** — un valor fijo o una fórmula.

Si abres la opción desde el menú contextual de una columna, el campo de esa columna se selecciona automáticamente.

{% hint style="warning" %}
No puedes modificar campos de tipo objeto binario ni campos fórmula.
{% endhint %}

Antes de aplicar el cambio, verás un resumen con el número de registros, el campo y el nuevo valor.

Si la operación afecta a muchos registros, el sistema te avisará.

Cuando confirmes, la modificación se ejecutará en segundo plano. Recibirás una notificación al terminar.

### Exportar a XML

Genera un archivo XML con el contenido completo de la rejilla.

### Copiar

Copia el contenido de la rejilla al portapapeles.

Puedes pegarlo en una hoja de cálculo, un editor de texto o cualquier otra aplicación compatible.

Se copian las cabeceras y los datos visibles. No se copian imágenes ni objetos binarios.

### Generar vista con los seleccionados

Crea una nueva vista con solo los registros seleccionados.

### Generar vista con otro visor

Abre la misma lista con otra presentación disponible, como otra rejilla o un informe.

Solo verás los visores que la aplicación tenga habilitados para esa tabla.

### Cestas

Si la aplicación usa cestas para esa tabla, en el menú contextual verás estas opciones:

* **Enviar seleccionados a la cesta**
* **Enviar todos a la cesta**
* **Abrir cestas**

Consulta [Manejo de cestas](/38/velneo-vclient/funcionalidades-especificas/manejo-de-cestas-de-la-compra.md) para ampliar la información.

## Filtro avanzado por columna

Cada columna de la rejilla incluye un icono de filtro en la cabecera. Al pulsarlo se abre un panel de filtrado para esa columna, con el selector **Filtrar por**, en el que eliges entre una condición o la opción Valores.

Las columnas que tengan un filtro activo lo muestran con un indicador en la cabecera.

En la parte inferior del panel están los botones **Aplicar**, que aplica el filtro, y **Quitar filtro**, que elimina el filtro de esa columna, incluidas todas sus condiciones si has definido varias.

### Filtrar por condición

Permite dejar en la rejilla solamente los registros que cumplan una condición sobre la columna. Las condiciones disponibles dependen del tipo de dato de la columna:

#### Columnas de texto

* El texto contiene / El texto no contiene.
* Es exactamente / No es exactamente.
* Empieza por / No empieza por.
* Termina en / No termina en.
* Está vacío / No está vacío.

#### Columnas numéricas

* Es igual a / Es distinto de.
* Mayor que / Mayor o igual que / Menor que / Menor o igual que.
* Está entre.
* Está vacío / No está vacío.

#### Columnas de fecha

* La fecha es / Antes de / Después de / Está entre.
* Está vacío / No está vacío.

#### Columnas de hora

* La hora es / Antes de / Después de / Está entre.
* Está vacío / No está vacío.

#### Columnas de tiempo

* La fecha y hora es / Antes de / Después de / Está entre.
* Está vacío / No está vacío.

#### Columnas booleanas

* **Todos**: no filtra por la columna; se muestran todos los registros, tanto los verdaderos como los falsos.
* **Verdadero** / **Falso**: dejan solo los registros que tienen ese valor.

Si has elegido una condición, puedes añadir más condiciones sobre la misma columna. La combinación sigue esta lógica:

#### primera condición Y/O (segunda condición Y tercera condición Y …)

Es decir, eliges si la primera condición se combina con **Y** o con **O** con el resto, y las condiciones a partir de la segunda se combinan siempre entre sí con **Y**. Por ejemplo, con tres condiciones y la combinación **O**, el filtro deja los registros que cumplen la primera condición, o que cumplen a la vez la segunda y la tercera.

En el panel de la columna, el selector **Combinar condiciones con** permite elegir **Y** u **O**, y la opción elegida queda marcada. Cada condición adicional incluye un botón con una ✕ para quitarla.

Las condiciones no se combinan en la opción Valores ni en las columnas booleanas. La combinación se guarda con la configuración de la rejilla.

Todavía no es posible introducir una fórmula de filtrado libre.

### Filtrar por valores

Al elegir la opción **Valores** en el selector **Filtrar por**, se muestra el campo **Buscar…**, para localizar valores en listas largas, los botones **Seleccionar todo** y **Borrar todo**, y la lista de todos los valores distintos que tiene esa columna, cada uno con una casilla para incluirlo o excluirlo del filtro.

### Combinación entre columnas

Los filtros de distintas columnas se combinan siempre con lógica **Y**: se muestran solo los registros que cumplen todos los filtros activos a la vez.

Para quitar todos los filtros de golpe, pulsa el botón **Quitar filtros** ![](https://1985084359-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSSuDG1WIgF9xPUK4NaFS%2Fuploads%2FXkUOagSf9O2eSD4hkFUw%2Fimage.png?alt=media\&token=557777ff-176b-446e-9728-c08fe49706a6) de la cabecera del [panel de configuración de la rejilla](#panel-de-configuracion). El botón solo aparece si la rejilla permite filtros avanzados y solo está activo cuando hay filtros configurados. Quita únicamente los filtros que el usuario podría aplicar: los de columnas que no permiten filtros avanzados, por ejemplo los que venían en una configuración cargada, se mantienen.

Para quitar el filtro de una sola columna, usa el botón **Quitar filtro** del panel de esa columna.

{% hint style="info" %}
Este filtro convive con el filtro por columna ya existente en el submenú de Filtros.
{% endhint %}

## Selección múltiple de registros (multiselección)

Puedes seleccionar varios registros para aplicar acciones sobre todos ellos.

Si la rejilla muestra una columna de multiselección a la izquierda, haz clic en cada marca para seleccionar o quitar registros.

Si haces clic en la cabecera de esa columna, se seleccionan todos los registros. Si vuelves a hacer clic, se deseleccionan.

También puedes seleccionar un registro haciendo clic en cualquier celda de su fila.

Usa estas combinaciones para ampliar la selección:

* **Shift** + clic, o **Shift** + flechas, para seleccionar un bloque continuo.
* **Ctrl** + clic para seleccionar registros no consecutivos.
* **Ctrl + Shift** + clic para añadir un bloque a la selección actual.

## Drag & Drop

Algunas aplicaciones permiten arrastrar registros desde una rejilla y soltarlos en otra.

Primero selecciona uno o varios registros. Después arrástralos con el ratón hasta la rejilla de destino.

Si la opción no está disponible en tu pantalla, esa rejilla no admite esta operación.

## Edición de campos en rejillas

En una rejilla editable, cada tipo de campo se comporta de forma distinta.

### Alfabético

Escribe el contenido directamente en la celda.

### Numérico

Escribe el número con el teclado.

Si el control muestra flechas, puedes aumentar o reducir el valor en una unidad.

Para los decimales, usa el separador definido en tu sistema.

### Fecha

Introduce día, mes y año en sus posiciones correspondientes.

Pulsa **Tab** o **Espacio** para pasar al siguiente bloque.

Si el control lo permite, también puedes abrir el calendario y elegir la fecha.

### Hora

Introduce horas, minutos y segundos por separado.

Pulsa **Espacio** para pasar de un bloque al siguiente.

### Tiempo

Combina una fecha y una hora en el mismo campo.

La edición sigue las mismas reglas que los campos de fecha y hora.

### Booleano

Selecciona **Verdadero** o **Falso**.

En la rejilla se mostrará normalmente como **Sí** o **No**.

### Imagen

Pulsa el botón lateral de la celda para abrir el editor de imágenes.

### Texto

Puedes escribir directamente en la celda o abrir el editor de texto desde el botón lateral.

Para cerrar la edición, usa **Ctrl + Fin** o las teclas de movimiento indicadas por el control.

### Texto enriquecido

Pulsa **Espacio** o empieza a escribir para activar la edición.

Usa el botón lateral para abrir el editor de texto enriquecido.

## Navegante

**Navegante** te permite abrir información relacionada sin salir de la lista actual.

Solo verás las rutas y vistas que estén disponibles en tu aplicación.

### Maestros

Muestra los registros maestros relacionados con la lista actual.

El resultado se abre en una nueva pestaña o vista.

### Plurales

Muestra los registros relacionados con el registro seleccionado.

Si hay varias opciones, podrás elegir cuál abrir.

También puedes usar **F4**.

### Plurales de todos

Abre los registros relacionados de todos los elementos de la lista actual.

### Navegación por esquemas

Si la aplicación incluye esquemas de navegación, podrás moverte entre tablas de forma visual.

Haz doble clic en la tabla de destino para abrir el resultado en una nueva vista.

## Scroll

En Android y iOS puedes desplazarte por la rejilla con el dedo.

## Mover columnas

En aquellas rejillas que dispone de cabecera horizontal y en las que se  haya programado esta funcionalidad, es posible cambiar el orden de las columnas. Para ello, hacer clic en la cabecera de la columna que se quiere mover y arrastrarla hasta la posición deseada.

Al soltarla, la rejilla mostrará las columnas en el nuevo orden.

## Panel de configuración

El panel de configuración permite personalizar la rejilla en tiempo de ejecución: [mostrar u ocultar columnas](#mostrar-ocultar-columnas), [editar el aspecto de cada columna](#editar-una-columna), [agrupar los registros](#agrupacion), [configurar totales y subtotales](#totales-y-subtotales), quitar todos los filtros aplicados y [guardar la configuración](#guardar-y-recuperar-configuracion) para recuperarla después.

Para que el panel esté disponible debe existir, en el contexto de la rejilla, una acción, o bien en una toolbar, o bien en el menú de contexto, con el nombre "Panel configuración rejilla" o similar.

A continuación desglosamos las opciones que contempla:

### Mostrar/ocultar columnas

Permite personalizar la rejilla de datos añadiendo nuevas columnas de forma rápida en tiempo de ejecución.

#### Cómo añadir una columna

En el panel de configuración de columnas, pulsa el botón **Añadir columna** y se abrirá un buscador de campos disponibles de la tabla:

* Escribe en el cuadro de búsqueda para localizar el campo por su nombre.
* Recorre el listado/árbol de campos si prefieres buscarlo visualmente.
* Marca el campo (o los campos) que quieras añadir como columna.

**Puedes seleccionar varios campos a la vez**: el buscador no se cierra después de marcar uno, así que puedes ir añadiendo todos los que necesites en una sola operación, sin repetir el proceso desde cero cada vez.

En cuanto marcas un campo, la columna aparece **inmediatamente en la rejilla**. No hace falta guardar, refrescar la pantalla ni realizar ninguna acción adicional: lo ves al instante.

#### Cómo quitar una columna

Las columnas visibles se muestran en el panel junto a una casilla de verificación. Para ocultar una, bastará con desactivar la casilla correspondiente.

Desde este panel, siempre y cuando se haya programado en la rejilla, también se podrá cambiar el orden de las columnas, bastará con hacer clic en una de ellas en el panel y moverla arriba o abajo para cambiar su posición.

#### Algo a tener en cuenta

Las columnas que añadas de esta forma se mantienen **mientras tengas la aplicación abierta**. Si cierras y vuelves a abrir el programa, la rejilla vuelve a mostrar las columnas configuradas originalmente en el diseño de la pantalla; es decir, por ahora esta personalización **no se guarda de forma permanente** entre sesiones.

### Agrupación

Es posible agrupar los registros de la rejilla por el valor de una o varias columnas, para ver la información organizada de forma jerárquica, con cada grupo desplegable o colapsable.

Podemos agrupar los registros de la rejilla por el valor de una o varias columnas, para ver la información organizada de forma jerárquica, con cada grupo desplegable o colapsable.

**Cómo agrupar**

Arrastra una columna hasta el área de agrupamiento, en la parte superior del panel de configuración de rejilla. La columna aparece ahí como una pastilla, y los registros pasan a mostrarse agrupados bajo la cabecera con el valor de esa columna.

Mientras se calcula la agrupación, sobre todo si la rejilla tiene muchos registros, verás un aviso de progreso.

Las columnas por las que agrupas se colocan siempre al principio de la rejilla, en el mismo orden en que las agrupaste.

**Varios niveles de agrupación**

Podemos arrastrar más columnas al área de agrupamiento para crear subgrupos dentro de cada grupo. La jerarquía se distingue por el sangrado.

Para cambiar el orden de los niveles ya aplicados, mueve las pastillas dentro del área de agrupamiento.

**Cómo quitar una agrupación**

Quita la pastilla de la columna correspondiente en el área de agrupamiento para volver a la vista sin agrupar por esa columna.

{% hint style="info" %}
No se puede agrupar por una columna oculta, ni por columnas de tipo imagen o texto enriquecido.
{% endhint %}

**Menú contextual de un grupo**

Haz clic con el botón derecho sobre la cabecera de cualquier grupo o subgrupo para acceder a:

* Expandir grupo
* Contraer grupo
* Expandir todos los grupos
* Contraer todos los grupos

Si la columna por la que se agrupa tiene totales, el subtotal se muestra en la cabecera del grupo, junto al número de registros, con el mismo icono que usan los totales normales de columna.

Si la columna por la que se agrupa tiene totales, ya sean los [definidos en el diseño de la rejilla](/38/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-aplicacion/rejilla/propiedades-de-columna.md#tipo-contenido-pie) o los que [configures en ejecución desde el panel](#totales-y-subtotales), el subtotal se muestra en la cabecera del grupo, junto al número de registros, con el mismo icono que usan los totales normales de columna.&#x20;

### Totales y subtotales

Desde el panel de configuración de rejilla puedes elegir qué cálculo muestra cada columna en el pie de la rejilla y, si la rejilla está agrupada, en el subtotal de cada grupo. Si la columna ya tiene un cálculo definido en el diseño de la rejilla, el que configures en ejecución lo sustituye.

**Cómo configurar el cálculo de una columna**

Para que aparezca el botón **Σ** (Configurar total), la rejilla debe tener activa la propiedad [Pie activo](/38/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-aplicacion/rejilla.md#pie-activo).

Pasa el puntero por la columna en el panel y pulsa el botón **Σ**. En el bloque **Cálculo en la columna** elige una de estas opciones:

* **Ninguno**: la columna no muestra ningún cálculo.
* **Suma**: suma de los valores de la columna.
* **Media**: media de los valores de la columna.
* **Mínimo**: valor más bajo de la columna.
* **Máximo**: valor más alto de la columna.
* **Cuenta**: número de elementos.
* **Fórmula de total…**: abre el editor de fórmulas de Velneo para que indiques tú mismo la fórmula del cálculo. La fórmula se evalúa en cada registro y su resultado se va acumulando en el total.

{% hint style="info" %}
**Suma**, **Media**, **Mínimo** y **Máximo** solo están disponibles en columnas numéricas. En las columnas de texto o de fecha aparecen deshabilitados.
{% endhint %}

El cálculo elegido se aplica al pie de la rejilla y, si la rejilla está agrupada, a los subtotales de cada grupo. Se guarda con la configuración de la rejilla (consulta [Guardar y recuperar configuración](#guardar-y-recuperar-configuracion)).

#### Alcance del cálculo del pie

En el menú de cálculo del pie de cada columna, además del tipo de cálculo, podremos elegir sobre qué registros de la rejilla se realizará. Las opciones disponibles son:

* **Todos**: el cálculo se realizará sobre todos los registros de la rejilla, estén o no seleccionados. Es la opción por defecto.
* **Seleccionados**: el cálculo se realizará únicamente sobre los registros que tengamos seleccionados en la rejilla (ver selección múltiple de registros).
* **No seleccionados**: el cálculo se realizará únicamente sobre los registros que no tengamos seleccionados en la rejilla.

El total del pie se recalculará automáticamente cada vez que cambiemos la selección de registros. El cálculo se realiza en el servidor, por lo que no penaliza el rendimiento de la rejilla aunque contenga un número elevado de registros.

{% hint style="info" %}
Cada columna solo puede tener un alcance de cálculo. Si queremos ver en el pie de la rejilla, por ejemplo, el total de todos los registros y el total de los seleccionados, tendremos que usar dos columnas distintas, cada una con su alcance.
{% endhint %}

### Editar una columna

Puedes personalizar cómo se muestra cada columna. En el panel, pasa el puntero por la columna y pulsa el botón **Editar columna**  ![](https://1985084359-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSSuDG1WIgF9xPUK4NaFS%2Fuploads%2FUtR3IjZ8HuTxpn9ApZCX%2Fimage.png?alt=media\&token=d36b1790-b621-4bfd-b643-2ec5b1414912), donde encontrarás:

* **Campo vinculado**
  * Identificador y tipo del campo que muestra la columna, por ejemplo #FCH (Fecha). Es de solo lectura.
* **Etiqueta**
  * El texto de la cabecera de la columna. Cambiarla no altera el identificador del campo ni afecta a las fórmulas.
* **Alineación**
  * La alineación del contenido de la columna, **Izquierda** o **Derecha**.
* **Tipo de ancho**
  * **Interactivo:** el usuario puede redimensionar la columna arrastrando.&#x20;
  * **Fijo**: el ancho de la columna será fijo y no podrá modificarse.
  * **Máximo disponible**: la columna ocupa el espacio sobrante.&#x20;
* **Ancho (px)**
  * El ancho exacto de la columna. No aparece si el tipo de ancho es **Máximo disponible**.
* **Ordenar como**
  * Permite configurar cómo se interpreta el contenido de la columna cuando se ordena por ella Los valores posibles son:  **Automático**, **Numérico**, **Fecha**, **Alfabético** o **Booleano**. Consulta [Ordenar como](/38/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-aplicacion/rejilla/propiedades-de-columna.md#ordenar-como) para ver cómo ordena cada valor.&#x20;
  * No ordena la rejilla por esa columna: solo cambia cómo se ordenará cuando ordenes por ella. Si la rejilla ya está ordenada por esa columna, al guardar los cambios se vuelve a ordenar con el nuevo criterio.
  * Este valor se guarda en la configuración de la rejilla solo si es distinto del definido en el proyecto. Las configuraciones guardadas antes de que existiera esta opción mantienen el valor del proyecto.

Pulsa **Guardar cambios** para aplicar los cambios a la rejilla. Para volver a la lista de columnas, usa la flecha de la parte superior del panel.

Las modificaciones se guardan con la configuración de la rejilla (consulta [Guardar y recuperar configuración](#guardar-y-recuperar-configuracion)).

### Guardar y recuperar configuración

Es posible guardar cómo tenemos configurada la rejilla —columnas visibles, orden, ancho, agrupación, subtotales y filtros— para recuperarla la próxima vez que abramos la aplicación. La configuración se guarda en el equipo, no en el servidor así que, si trabajamos desde otro equipo, no la tendremos disponible allí.

#### **Guardar una configuración**

En la cabecera del panel de configuración de rejilla, pulsa **Guardar** para actualizar la configuración que tengamos cargada con los cambios actuales.

Para no sobrescribir una configuración existente, usa **Guardar como** y ponle un nombre. Así conservaremos ambas por separado.

#### **Cargar una configuración guardada**

Abrir el listado de configuraciones guardadas. La que está activa aparece resaltada. Pulsa **Cargar** en la que se quiera aplicar, o hacer doble clic sobre ella.

#### **Eliminar una configuración**

Desde el mismo listado podemos eliminar una configuración guardada que ya no necesitemos.

{% hint style="info" %}
La configuración original, tal como se diseñó la pantalla, siempre está disponible como punto de partida: crea configuraciones nuevas a partir de ella con Guardar como, sin perderla.
{% endhint %}

En rejillas con muchos registros, aplicar una configuración guardada que incluya agrupación puede demorar su carga.
