> 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-vdevelop/interfaz-de-velneo-vdevelop/menu-objetos.md).

# Menú Objetos

Este menú de Velneo vDevelop contiene las opciones siguientes:

## Generar interfaz (Control + G)

Velneo incorpora una potentísima herramienta que genera la interfaz de una aplicación en muy pocos segundos.

Una vez creadas las tablas del proyecto, si ejecutamos esta opción desde el proyecto de aplicación, se abrirá una ventana donde podremos configurar lo siguiente:

#### Nueva aplicación

Esta opción la activaremos cuando queramos generar los objetos para una nueva aplicación. Si la aplicación ya había sido creada y queremos usarlo para añadir, por ejemplo, objetos para nuevas tablas que hemos creado, esta opción la desactivaremos.

#### Compatible Velneo vERP

Esta opción se activará automáticamente si lo que estamos editando es la plantilla [Velneo vERP](https://velneo.es/verp/) o una solución que la herede y nos permitirá añadir los objetos de interfaz manteniendo la compatibilidad con la plantilla, lo que implica:

* Ajustar los siguientes elementos aplicando la misma configuración que tienen en vERP:
  * Alturas de cabecera, detalle y pie de [rejillas](/38/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-aplicacion/rejilla.md).
  * Márgenes de [layouts](/38/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-aplicacion/formulario/layout.md) igual que está en vERP.
  * Refactorización de la generación de formularios de menú con compatibilidad vERP.
  * Seleccionar tema: claro, oscuro o los dos y aplicar la CSS seleccionada como *default.css.*
  * Selección de tema: basado en las CSS y temas de vERP.
  * Para la edición de campos booleanos usará el control [switch](/38/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-aplicacion/formulario/controles-de-entrada/switch.md) en lugar del [botón de check](/38/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-aplicacion/formulario/controles-de-entrada/boton-de-check.md).
  * Aplicar estilo claro/oscuro para la barra de título de ventanas.
  * Añadir control de permisos en el [evento](/38/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-aplicacion/sub-objetos-de-vistas-de-datos/conexion-de-evento.md) de [pre inicializado](/38/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-aplicacion/sub-objetos-de-vistas-de-datos/conexion-de-evento.md#pre-inicializacion) de formulario principal.
  * Añadir personalización en [pos\_ini](/38/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-aplicacion/sub-objetos-de-vistas-de-datos/conexion-de-evento.md#post-inicializacion) de formulario principal.
  * Añadir control de validación dinámica programado en vERP (requiere [conexión de evento](/38/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-aplicacion/sub-objetos-de-vistas-de-datos/conexion-de-evento.md) y [manejador](/38/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-aplicacion/sub-objetos-de-vistas-de-datos/manejador-de-evento.md) previo al botón aceptar).

Esta opción podemos activarla en otra solución, pero debemos tener en cuenta que hará uso de objetos que son de vERP y que no existirán en nuestra solución.

Si la opción está desactivada, la CSS generada no utiliza los iconos de vERP y tampoco se crea el script que los guarda en la caché del cliente. En ese caso, el indicador para desplegar y plegar los árboles se muestra con el aspecto nativo de la plataforma.

#### Checkbox para booleanos

Si activamos esta opción, para la edición de campos booleanos en formulario usará controles de tipo [botón de check](/38/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-aplicacion/formulario/controles-de-entrada/boton-de-check.md) en lugar de controles de tipo [switch](/38/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-aplicacion/formulario/controles-de-entrada/switch.md).

#### Añadir importaciones

Si hemos usado el [importador de tablas](#importador-de-tablas) en el proyecto de datos, activando esta opción se añadirán las opciones para importar registros que el sistema haya programado.

#### Columnas en rejillas

En este parámetro podemos configurar cuántas columnas, como máximo se generarán para las rejillas. El valor por defecto es 5. Si establecemos el valor 0, generará tantas columnas como campos tenga cada tabla.

#### Botones de menú

Permite configurar la posición de los [botones incrustados](/38/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-aplicacion/formulario/controles-de-edicion/edicion-alfabetica.md#boton-izquierda) en controles de edición de formularios.

#### Modos toolbars en menú

Permite configurar el aspecto que tendrán las [toolbars](/38/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-aplicacion/toolbar.md) en los menús. Los valores posibles son:

* **Icono y texto debajo**: en el botón de la toolbar se mostrará el icono configurado la [acción](/38/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-aplicacion/accion.md) y debajo el texto configurado en la misma.
* **Icono y texto al lado**: en el botón de la toolbar se mostrará el icono configurado la [acción](/38/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-aplicacion/accion.md) y al lado el texto configurado en la misma.
* **Icono**: en el botón de la toolbar se mostrará solo el icono configurado la [acción](/38/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-aplicacion/accion.md).
* **Texto**: en el botón de la toolbar se mostrará solamente el texto configurado en la [acción](/38/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-aplicacion/accion.md).

#### Posición toolbars

Permite configurar dónde estarán posicionadas las toolbars en las rejillas de los formularios que se generan como menú para cada tabla. Los valores posibles son:

* **Arriba**: las toolbars estarán en la parte inferior de las rejillas.
* **Abajo**: las toolbars estarán en la parte superior de las rejillas.

#### Tema CSS

Nos permite configurar un tema para la CSS que se generará en la aplicación. Son temas basados en los temas de vERP. Si hacemos clic en el botón ![](https://content.gitbook.com/content/SSuDG1WIgF9xPUK4NaFS/blobs/koPO0CjBNGLPLfYYL0FA/image.png)se mostrará una imagen de una interfaz con el tema aplicado.

#### Organización por módulos

El generador de interfaz permite agrupar las tablas, y los objetos que se generan para ellas, en módulos. Para ello, en la propiedad comentarios de cada tabla del proyecto de datos escribiremos la directiva siguiente:

`@module(nombre del módulo)`

Por ejemplo, si en los comentarios de las tablas *Clientes* y *Facturas* escribimos `@module(Ventas)`, ambas se agruparán en el módulo *Ventas*.

A partir de esta información, el generador:

* Organiza los objetos del proyecto de aplicación en carpetas por módulo, del mismo modo que en el proyecto de datos.
* Añade, en un dock a la izquierda de la interfaz, un menú arbolado organizado por módulos, que sustituye a la toolbar principal.
* Genera un icono para cada módulo en el menú general.

Las tablas que no tengan la directiva `@module()` en sus comentarios se agruparán en el módulo *General*.

#### Tablas

Se mostrará una lista de tablas de los proyectos de datos heredados.

En la lista podemos seleccionar, o bien todas las tablas (marcando en la casilla de verificación del encabezado de la lista) o bien seleccionar algunas tablas concretas para las que queremos que se geren los objetos.

Una vez configurado todo a nuestro gusto, pulsaremos el botón "Generar interfaz". Una vez haya terminado, se mostrará un mensaje informativo de los objetos creados en el pie de la ventana:

![](https://content.gitbook.com/content/SSuDG1WIgF9xPUK4NaFS/blobs/KwRU4wb0RcmnOXTbF0Vc/mensaje.png)

Esta ventana se adapta al modo claro u oscuro que se tenga configurado en el sistema.

## Historial de cambios de un objeto

Esta opción permite a los desarrolladores visualizar todos los cambios realizados en el objeto seleccionado a través de todas las versiones almacenadas en vVersion. Esta herramienta es esencial para el control de versiones y la gestión de cambios en proyectos de desarrollo.

### Requisitos previos

Descargar el componente vVersion desde nuestra página de [descargas](https://velneo.es/mivelneo/descargas/) e instalarlo en nuestro servidor de desarrollo.

Una vez instalado e instanciado, debemos [publicar la instancia de datos de vVersion en la API REST por instancia del servidor HTTPS de Velneo vServer](/38/velneo-vadmin/web.md#rutas).

Para ello, en la configuración del *virtualhost* añadiremos una ruta con los siguientes datos:

* **Ruta**: la dirección de acceso que queramos, por ejemplo `/vversion_dat`. Esta ruta es la que indicaremos después, sin la barra inicial, en el parámetro **Ruta de la API** de la configuración de la conexión.
* **Tipo**: `Apirest instancia`.
* **Usuario**: un usuario declarado en Velneo vServer con acceso a la instancia.
* **Instancia**: `VVERSION_APP_VVERSION_DAT` (la instancia de datos de vVersion).

Si modificamos los identificadores de las instancias en el servidor, debemos actualizarlos también en la configuración.

<figure><img src="https://1985084359-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSSuDG1WIgF9xPUK4NaFS%2Fuploads%2F7fFHlhNtJpaWUYUVza03%2Fimage.png?alt=media&amp;token=841c3749-5f99-4587-9a3b-cfbc1599cf02" alt=""><figcaption></figcaption></figure>

En los [**Perfiles de seguridad**](/38/velneo-vadmin/web.md#perfiles-de-seguridad) de la ruta debemos tener un perfil habilitado con autenticación por API Key. Esa API Key es la que indicaremos en el parámetro **ApiKey** de la configuración de la conexión.

La extensión no accede a ninguna tabla de vVersion: únicamente ejecuta procesos. Por eso, el perfil solo necesita permiso para ejecutar los siguientes procesos:

* **OBJ\_CHG\_LST**: obtiene la lista de cambios del objeto. Es imprescindible.
* **OBJ\_CHG\_DET**: obtiene el detalle de los cambios entre dos versiones. Es imprescindible.
* **OBJ\_GET\_VER**: obtiene el objeto en una versión concreta. Es necesario para usar las opciones Restaurar versión y Recuperar copia.
* **VERSION**: solo lo usa el botón **Probar conexión**. El historial de cambios funciona sin este permiso.

No es necesario dar permiso sobre ninguna tabla.

{% hint style="warning" %}
Si el perfil de seguridad está deshabilitado, la extensión no podrá conectar con vVersion.
{% endhint %}

{% hint style="info" %}
Si el perfil tiene restricción de IP, debe incluir las IP de los equipos en los que se ejecuta Velneo vDevelop, ya que la extensión se conecta con vVersion directamente desde el equipo del desarrollador.
{% endhint %}

#### Configuración de la conexión

Con el botón de configuración podremos establecer la conexión con la instancia de vVersion en el servidor al que estemos conectados. Al pulsarlo se abre el formulario **Configuración del servidor**:

<figure><img src="https://1985084359-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSSuDG1WIgF9xPUK4NaFS%2Fuploads%2F7wlH6O8WFQPqHdJW4hqd%2Fimage.png?alt=media&amp;token=1db29fe6-366b-4c61-8a46-a6e622b19ca6" alt=""><figcaption></figcaption></figure>

Los parámetros a configurar son los siguientes:

* **Dominio del servidor**: dominio del servidor al que estamos conectados con Velneo vDevelop. Este dato no es editable.
* **Usar HTTPS**: activado si el *virtual host* está configurado como https.
* **Puerto**: puerto de escucha del *virtual host* en el que se ha publicado la instancia de datos de vVersion. El puerto estándar es el 443; solo hay que cambiarlo si es necesario. En los servidores de Velneo Cloud es el puerto de Apache: el 443 en los de producción y, en los de desarrollo, el que se indique en la sección Apache del panel de control cloud.
* **ApiKey**: API Key definida en el perfil de seguridad de la ruta de vVersion.
* **Ruta de la API**: ruta de la instancia de datos de vVersion en el servidor HTTPS, sin la barra inicial. Por ejemplo, si escribimos `vversion_dat`, la extensión accederá a `https://dominio/vversion_dat/...`.

La configuración se guarda para cada servidor, por lo que solo es necesario realizarla una vez por cada servidor al que nos conectemos.

El botón **Probar conexión** realiza una prueba de conexión con vVersion para verificar que la configuración es correcta. Si hay algún error, se mostrará debajo del botón junto con el código de error y la URL a la que se ha intentado acceder, lo que permite comprobar si el dominio, el puerto o la ruta son los correctos.

Pulsando **Aceptar** se guarda la configuración.

#### Funcionamiento

Al seleccionar un objeto en vDevelop, la opción **Histórico de cambios** se conecta automáticamente con vVersion en el servidor conectado para obtener y mostrar la lista de cambios del objeto.

Si cambiamos de objeto en el árbol de objetos del proyecto, podemos usar el botón **Refrescar** para actualizar la lista de cambios del nuevo objeto seleccionado.

Los cambios se presentan en forma de **tarjetas**, donde cada una representa una versión en la que el objeto fue modificado.

Al hacer **doble clic** sobre un cambio específico, vDevelop obtiene de vVersion el detalle del cambio y lo muestra en una ventana emergente.

**Filtros**

La funcionalidad permite filtrar los cambios por **texto de descripción** y por **usuario**, facilitando la localización de cualquier modificación específica en proyectos con un historial extenso.

**Restaurar versión**

Al pasar el ratón sobre una card del historial, se muestra el botón **Restaurar**. Al pulsarlo, se sobrescribe el objeto actual en el proyecto con el contenido que tenía en la versión seleccionada.

Tras restaurar, aparece un mensaje de confirmación con un botón **Editar** que permite abrir directamente el objeto restaurado en el editor de vDevelop.

Bastará volver a conectarnos de nuevo al servidor con Velneo vDevelop y solicitar de nuevo el proyecto para trabajar con la versión restaurada. Será muy útil la información que provee el número de historial y que podemos ver en las propiedades del proyecto para confirmar que estamos trabajando en la versión deseada.

**Recuperar copia**

Al pasar el ratón sobre una tarjeta del historial, se muestra también el botón **Recuperar como copia**. Al pulsarlo, se crea un nuevo objeto en el proyecto con el contenido de la versión seleccionada y un identificador nuevo. El nuevo objeto recibe el sufijo `_N`, donde "N" es el número de historia de la versión. Por ejemplo, si el objeto original se llama `MiObjeto` y recuperamos la versión del historial número 3, se creará un nuevo objeto llamado `MiObjeto_3`.

Tras recuperar la copia, aparece un mensaje de confirmación con un botón **Editar** que permite abrir directamente el nuevo objeto en el editor de vDevelop.

Las opciones de restaurar y recuperar como copia funcionan tanto con objetos visuales (formularios, rejillas, etc.) como con scripts.

## Servicios IA

Permite consultar el consumo de los servicios de IA de Velneo y gestionar el plan de IA de la cuenta de Velneo con la que hemos iniciado sesión en Velneo vDevelop. Estos servicios son los que usa, por ejemplo, el [Asistente IA](/38/velneo-vdevelop/interfaz-de-velneo-vdevelop/asistente-ia.md).

Desde esta opción podemos:

* Ver el plan actual, el consumo realizado, el límite del plan, el porcentaje consumido y el saldo disponible.
* Contratar un plan.
* Cambiar a un plan superior o inferior.
* Cancelar el plan.

Esta opción también está disponible en la barra de herramientas de Velneo vDevelop.

{% hint style="info" %}
Desde la versión 38, el generador IA de aplicaciones desaparece. Para crear aplicaciones con IA usaremos el [Asistente IA](/38/velneo-vdevelop/interfaz-de-velneo-vdevelop/asistente-ia.md), al que podemos pedir, por ejemplo, *"Crea una aplicación para gestionar las citas de una clínica veterinaria con clientes, mascotas y citas"*.
{% endhint %}

## Galería de objetos

(F6)

Abre la [galería de objetos](/38/velneo-vdevelop/interfaz-de-velneo-vdevelop/menu-objetos.md#galeria-de-objetos).

## Nuevo objeto

Permite añadir un nuevo objeto al proyecto actual. Esta opción desplegará un submenú con toda la lista de objetos disponibles, en la que seleccionaremos el objeto que se desea crear.

## Nuevo sub-objeto

Permite añadir un nuevo sub-objeto al objeto actual. Si el objeto actual puede contener sub-objetos, esta opción desplegará un submenú con toda la lista de sub-objetos disponibles para el objeto actual en la que seleccionaremos el que se desea crear.

## Importador de tablas

Opción específica para [proyectos de datos](/38/velneo-vdevelop/buenas-practicas-de-programacion/buenas-practicas-de-organizacion/proyecto-de-datos-1-carpetas-esquemas-tablas-e-indices-complejos.md).

Nos permite, en edición, crear una tabla a partir de un origen de datos (o bien desde el portapapeles, o bien desde un fichero en disco) y, en ejecución, importar los datos de ese mismo origen de datos.

Al ejecutar esta opción debemos cumplimentar las opciones siguientes:

### Origen

Declaración del origen de datos a partir del cual se creará la tabla y se importarán los datos. Los tipos de origen permitidos son:

* Excel (portapeles): el contenido de una hoja de cálculo copiado en el portapapeles.
* Fichero csv: un fichero csv en disco.
* Fichero JSON: un fichero json en disco.

### Separador

Esta opción solamente estará disponible si el origen es Excel o fichero CSV.

Debemos especificar qué tipo de separador se usa en el origen de datos elegido. Debe ser uno de éstos:

* Tabulador.
* Coma (,).
* Punto y coma (;).
* *Pipe* (|).

En el caso de que el origen sea un fichero json, estas opciones no estarán disponibles.

### Nombre en 1ª fila

Esta opción solamente estará disponible si el origen es Excel o fichero CSV.

Activaremos esta opción si en el origen de datos en la primera fila se incluyen los nombres de los campos.

Si el origen de datos elegido es un texto en el portapapeles, se activará el botón **Pegar del portapapeles**, al pulsarlo pasaremos a la fase de [configuación de tabla y campos](#configuracion-de-campos).

Si el origen de datos elegido es un fichero csv en disco, se activará el botón **Seleccionar fichero**, al pulsarlo, el sistema nos pedirá que seleccionemos el fichero y, una vez seleccionado, pasaremos a la fase de [configuación de tabla y campos](#configuracion-de-campos).

### Seleccionar fichero

En el caso de que el origen sea un fichero CSV o un fichero JSON, este botón nos permitirá seleccionar el archivo a importar.

### Configuración de tabla y campos

En base al origen de datos y el separador especificado, el sistema nos propondrá un nombre de tabla en la propiedad **Nombre tabla,** nombre que podemos cambiar.

Si pulsamos el botón ![](https://content.gitbook.com/content/SSuDG1WIgF9xPUK4NaFS/blobs/6Tp7Nv9iVAfSTsIiTRgN/image.png) que se encuentra junto al nombre de la tabla, podremos desplegar las opciones de configuración de la importación de la tabla, que son:

* **Campo primario**: si en el origen existe un campo primario (que identifica a cada registro de forma única y exclusiva), desplegando esta opción podremos indicar cuál es. En el caso de que en el origen haya una columna llamada "ID", "Código" o "Code" se asignará automáticamente si el origen es Excel o CSV. En el caso de que el origen sea JSON solamente hará la asignación automática si el JSON contiene un campo "ID". En la generación de la tabla se generará un índice de [clave única](/38/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-datos/tabla/indice.md#clave-unica) con el campo seleccionado.
* **Campo nombre**: si en el origen existe un campo que contiene el nombre del registro, desplegando esta opción podremos indicar cuál es. En el caso de que en el origen haya una columna llamada "Nombre" o "Name" lo asignará automáticamente si el origen es Excel o CSV. En el caso de que el origen sea JSON solamente hará la asignación automática si el JSON contiene un campo "NAME". En la generación de la tabla se generará los índices de tipo [acepta repetidas](/38/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-datos/tabla/indice.md#acepta-repetidas), [palabras](/38/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-datos/tabla/indice.md#palabras) y [trozos de palabras](/38/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-datos/tabla/indice.md#trozos-de-palabras) del campo seleccionado.
* **Al importar, preguntar si se vacía la tabla**: si activamos esta opción, en el proceso de importación de datos que se generará, se le preguntará al usuario si quiere vaciar la tabla antes de importar los registros. Si no acepta, los registros importados serán añadidos a la tabla sin borrar los que ya hubiese.

En base al origen de datos y el separador indicados, el sistema nos mostrará, de forma automática la lista de campos detectados, indicando su nombre, tipo y longitud aunque puede requerir modificar la configuración según el tipo de campo para adecuarse a las necesidades.&#x20;

Para cambiar el tipo de un campo no tendremos más que hacer clic en el botón ![](https://content.gitbook.com/content/SSuDG1WIgF9xPUK4NaFS/blobs/6Tp7Nv9iVAfSTsIiTRgN/image.png) para desplegar la lista de tipos de campo y seleccionar el adecuado.

{% hint style="info" %}
En el caso de que el fichero de origen sea un JSON y éste incluya campos de tipo [objeto dibujo](/38/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-datos/tabla/campo.md#objeto) u [objeto binario](/38/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-datos/tabla/campo.md#objeto), éstos serán identificados como alfabéticos, así que tendremos que asignarle el tipo de campo adecuado.
{% endhint %}

Los formatos de fecha soportados son:

* dd-mm-yyyy, d-m-yyyy, dd-mm-yy (año 2000), d-m-yy (año 2000), yyyy-mm-dd
* dd/mm/yyyy, d/m/yyyy, dd/mm/yy (año 2000), d/m/yy (año 2000), yyyy/mm/dd
* dd.mm.yyyy, d.m.yyyy, dd.mm.yy (año 2000), d.m.yy (año 2000), yyyy.mm.dd

Los formatos numéricos soportados son:

* Enteros.
* Sin separadores de miles.
* Con separadores de miles:
  * 1000, 1,000, 1.000
* Con decimales:
  * 0.02, 0,02
* Combinación de separadores y decimales:
  * 1000.02, 1,000.02, 1.000,02

Así mismo, si un campo debe contemplar signo, debemos activar la casilla de verificación. correspondiente al signo.

Si pulsamos el botón ![](https://content.gitbook.com/content/SSuDG1WIgF9xPUK4NaFS/blobs/6Tp7Nv9iVAfSTsIiTRgN/image.png) que se encuentra junto al nombre de cada campo, podremos desplegar las opciones de configuración de la importación de dicho, que son:

* **Tabla enlazada:** si la tabla a importar tiene un campo enlazado a una tabla maestra del proyecto o de algún proyecto heredado, la seleccionaremos en este parámetro. Al seleccionarlo se activará la opción **Indexar**, de este modo, al generar la tabla se creará el campo enlazado al maestro y el índice correspondiente.
* **Indexar**: creará un [índice](/38/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-datos/tabla/indice.md) de tipo [acepta repetidas](/38/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-datos/tabla/indice.md#acepta-repetidas) de ese campo.
* **Trozos**: añadirá el campo al [índice PARTS](/38/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-datos/tabla/indice.md#trozos-de-palabras) de la tabla que se va a crear en la tabla.
* **Palabras**: añadirá el campo al [índice WORDS](/38/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-datos/tabla/indice.md#palabras) de la tabla que se va a crear en la tabla.

Podemos crear una nueva solución si no estamos conectados a ninguna, o crear la en el proyecto de datos que tengamos abierto.

Esta opción creará también un [proceso](/38/velneo-vdevelop/proyectos-objetos-y-editores/de-aplicacion-y-datos/proceso.md) en primer plano para la obtención de los datos en ejecución, y otro en 3er plano para su importación.

En el caso de que el origen sea  un CSV (tanto en disco como en memoria), y éste contiene un campo ID, si el registro de origen ya existe en la tabla de destino, lo actualizará, si no existe, lo dará de alta.

Se pueden usar ya esos objetos, pero también se usar la opción de [Generar Interfaz](#generar-interfaz) para completar la interfaz, pues esta extensión crea un menú de importación en el que incorpora los procesos de importación generados por esta opción.

{% hint style="warning" %}
Cuando hay comillas en la hoja de cálculo a exportar, puede haber confusiones con las comillas (") ya que a través del portapapeles no se exporta de forma estandarizada, unas veces usa las comillas para indicar comillas y otras para indicar textos que contienen líneas de retorno o similar, creando un texto no importable de forma directa. Para esos casos, se ha de usar la exportación a csv para importar posteriormente, desde el archivo generado, lo que asegurará la correcta importación de textos con comillas.
{% endhint %}

## Importar dibujos

Permite hacer una importación masiva de dibujos en el proyecto actual. Ver el capítulo dedicado a los [dibujos ](/38/velneo-vdevelop/proyectos-objetos-y-editores/de-aplicacion-y-datos/dibujo.md)para ampliar información al respecto.

## Buscador (Control + B)

Esta opción nos permite encontrar objetos, subobjetos de nivel 1 y 2, incluso propiedades de forma muy sencilla, con múltiples opciones de filtrado: por tipo de objeto, por proyecto, por propiedad, etc.

Cuando lanzamos el buscador, este se abrirá en una pestaña en el panel central. Al buscar, lo hará en todos los proyectos de todas las soluciones cargadas en esa sesion de Velneo vDevelop.

![](https://content.gitbook.com/content/SSuDG1WIgF9xPUK4NaFS/blobs/WBH1Ji8WjHH9GU2mpZwF/image.png)

Incluye un control donde escribir el texto a buscar. La búsqueda se irá haciendo a medida que vayamos escribiendo. Además disponemos de un botón "Buscar"

Una vez disparada la búsqueda, nos mostrará todos los objetos que coincidan con el criterio de la búsqueda. Si hacemos doble clic en alguno se editará directamente (no es necesario haber abierto antes el proyecto, porque ya al buscar lo abrirá).

Se puede elegir sobre qué proyectos queremos que realice la búsqueda, y sobre cuáles no, simplemente marcando o desmarcándolos.

{% hint style="info" %}
Solo buscará sobre aquellos proyectos que estén abiertos. En caso de no haber podido abrir un proyecto en edición, no devolverá resultados del mismo.
{% endhint %}

Podemos establecer filtros para refinar la búsqueda disparada. Para ello pulsaremos el botón ![](https://content.gitbook.com/content/SSuDG1WIgF9xPUK4NaFS/blobs/EfSQ85K6xwzF5h7NWVJc/image.png). Podremos filtrar por:

* **Objetos**: permite seleccionar uno o varios tipos de objeto para .
* **Sub-objetos**: permite seleccionar uno o varios tipos de sub-objeto.
* **Sub-objetos 2**: permite seleccionar uno o varios tipos de sub-objeto de sub-objetos.
* **Valores**: permite filtrar por valores.

También pdemos aplicar un filtro desde el listado de objetos encontrados. Al pasar el cursor sobre un tipo de objeto/sub-objeto se activará el icono de filtro, si hacemos clic sobre él, se aplicará el filtro por el objeto, sub-objeto seleccionado:

![](https://content.gitbook.com/content/SSuDG1WIgF9xPUK4NaFS/blobs/0o7urwlzWovcQLGtmclw/2021-10-14_12-35-15.jpg)

El botón ![](https://content.gitbook.com/content/SSuDG1WIgF9xPUK4NaFS/blobs/KZa6FVzb8NWRifcU0VaN/image.png)nos permite configurar las opciones siguientes:

* **Coincidir mayúsculas/minúsculas**: si queremos que la búsqueda se haga respetando mayúsculas y minúsculas.
* **Mostrar por defecto el panel de filtros**: si queremos que por defecto nos muestre el panel de filtros.

El botón "Limpiar filtros" nos permite limpiar todos los filtros que hayamos configurado.

### Opciones de búsqueda

Se establece la expresión `$OBJ` como reservada. Si la escribimos en el campo de búsqueda devolverá todos los objetos de todos los proyectos de todas las soluciones cargadas.

Podemos utilizar el carácter **|** para refinar búsquedas, o el carácter **&** para sumar resultados de búsqueda. Ejemplos:

`$OBJ | formulario&rejilla`  devolverá todos los objetos, luego sobre ese resultado, refinará la búsqueda para encontrar todo lo que sean formularios y rejillas, y esta sera lo que muestre en pantalla como resultado de búsqueda.

`$OBJ | rejilla | columna` devolverá todos los objetos, luego hará una búsqueda por todo lo que sea rejilla, y luego por todo lo que sea columna.

`$OBJ | rejilla | conexion&manejador` devolverá todos los objetos, luego hará una búsqueda por todo lo que sea rejilla, y luego por todo lo que sea conexión de evento o manejador de evento.

`Articulos | Formulario & rejilla | conexión` devolverá todo lo que coincida con el texto buscado "Articulos" para luego rebuscar todo lo que sean formularios o rejilla y por último volver a rebuscar por conexión.

Importante resaltar que se pueden utilizar tanto | o & como se quiera.

{% hint style="info" %}
Los filtros sólo muestras valores que tengan relación con la búsqueda obtenida, es decir, si tras buscar solo encuentra formularios y rejillas, en la sección de filtros -> objetos, solo tendrás disponible para filtrar por esos 2.&#x20;
{% endhint %}

{% hint style="info" %}
Los filtros no solo están en el panel izquierdo, sino que puedes aplicar filtros rápidos desde la misma lista de resultados. Haciendo clic en el enlace que aparece en la segunda fila de cada columna.
{% endhint %}

A continuación mostramos los nombres de objetos, sub-objetos y sub-sub-objetos que podemos usar.

#### Objetos

Tabla

Indice complejo

Variable global

Tabla estática

Dibujo

Rejilla

Árbol visor de tablas arboladas

Casillero

Formulario

Multivista

Impresora lógica

Informe

Búsqueda&#x20;

Lupa&#x20;

Localizador&#x20;

Cesta&#x20;

Proceso&#x20;

Función&#x20;

Librería externa&#x20;

Acción

Menú&#x20;

Toolbar&#x20;

Tubo de lista&#x20;

Tubo de ficha&#x20;

Protocolo TCP/IP&#x20;

Constante&#x20;

Marco&#x20;

Bloc de formularios&#x20;

Cola de procesos&#x20;

Esquema&#x20;

Puerto serie&#x20;

Fichero adjunto&#x20;

Imagen SVG&#x20;

Control SVG&#x20;

ViewFlow&#x20;

Alternador de lista&#x20;

ComboView&#x20;

ListView&#x20;

Lista QML&#x20;

Rejilla Avanzada&#x20;

Formulario QML&#x20;

Gráfico&#x20;

Reemplazo

#### Sub-objetos

Campo

Índice

Enlace plural

Actualizacion

Parte de índice complejo

Variable

Item de tabla estática

Trigger

Columna de rejilla

Control

Seccion de informe

Agrupamiento de informe

Calculo de informe

Componente de búsqueda

Indice del localizador

Conexion de evento

Manejador de evento

Instrucción de proceso

Lanzador de acción

Dock

Drop

Item de un esquema

Funcion de DLL Inserción

Intercomunicador TCP

Modelo auxiliar

Columna de rejilla avanzada

Banda de rejilla avanzada

Traspaso de campo

Ficha de extensión de formulario

Serie de un gráfico

Eje de un gráfico

#### Sub-sub-oobjetos

Componente de actualizacion

Subcontrol

Control de informe

Instrucción de proceso

Parametro de funcion de DLL

Subindexador

Condicion de estilo de rejilla

User role

{% hint style="info" %}
No podemos buscar textos de menos de tres caracteres.
{% endhint %}

## Cambiar altos de cabecera, detalle y pie en rejillas

Esta opción nos permite cambiar los altos de las secciones de cabecera, detalle y pie de [rejillas](/38/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-aplicacion/rejilla.md) y [rejillas avanzadas](/38/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-aplicacion/rejilla-avanzada.md) de un proyecto.

Nos presentará una lista con todas las rejillas y rejillas avanzadas del proyecto.

Permite buscar rejillas y rejillas avanzadas usando expresiones regulares, y busca a medida que vamos escribiendo.

Permite hacer multiselección sobre los resultados obtenidos.

Una vez seleccionadas las rejillas que queramos modificar, podremos establecer los siguientes valores:

* **Alto cabecera**: nos permite configurar el alto que queramos que tengan las cabeceras de las rejillas seleccionadas. Si lo dejamos vacío, no se modificará dicha propiedad.
* **Alto detalle**: nos permite configurar el alto que queramos que tengan la sección de detalle de las rejillas seleccionadas. Si lo dejamos vacío, no se modificará dicha propiedad.
* **Alto pie/grupo**: nos permite configurar el alto que queramos que tengan la sección de pie de las rejillas seleccionadas y pies de grupo en las rejillas avanzadas seleccionadas. Si lo dejamos vacío, no se modificará dicha propiedad.

Tras seleccionar los valores, pulsaremos el botón "Aplicar" para hacer efectivos los cambios.

## Cambiar el modo de visualización de las opciones en las toolbars y menús

Permite unificar el modo de visualización de las opciones en [toolbars](/38/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-aplicacion/toolbar.md) y [menús](/38/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-aplicacion/menu.md) para mantener una experiencia coherente en toda la aplicación. Nos permite buscar este tipo de objetos por distintos criterios:

* **Texto a buscar**: buscará en identificadores y nombres de los objetos
* **Tipo de objeto**: en el que podemos seleccionar el tipo de objeto a buscar, que podrá ser:
  * ***Todos***: devolverá todas las toolbars y menús que cumplan con la búsqueda.
  * ***Toolbars***: devolverá solamente las toolbars que cumplan con la búsqueda.
  * ***Menús***: devolverá solamente los menús que cumplan con la búsqueda.
* **Modo**: nos permite configurar el modo de visualización que queremos aplicar a los objetos encontrados en la búsqueda. Los valores posibles son:
  * ***Icono y texto***: los objetos encontrados serán configurados para que cada ítem que contenga muestre el icono y el texto configurados en la [acción](/38/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-aplicacion/accion.md).
  * ***Icono***: los objetos encontrados serán configurados para que cada ítem que contenga muestre únicamente el icono que tenga configurada la [acción](/38/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-aplicacion/accion.md).
  * ***Texto***: los objetos encontrados serán configurados para que cada ítem que contenga muestre únicamente el texto que tenga configurado la [acción](/38/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-aplicacion/accion.md).

## Cambiar márgenes en formularios

Esta opción nos permite cambiar los márgenes de [formularios](/38/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-aplicacion/formulario.md) de un proyecto.

Nos presentará una lista con todos los formularios del proyecto.

Permite buscar formularios usando expresiones regulares, y busca a medida que vamos escribiendo.

Permite hacer multiselección sobre los resultados obtenidos.

Una vez seleccionados los formularios que queramos modificar, podremos establecer los siguientes valores:

* **Espaciado**: espacio de separación en píxeles entre los layouts y controles que se distribuyen en el formulario.
* **Margen izq.**: espacio de separación en píxeles, en el margen izquierdo, de los controles incluidos en el formulario.
* **Margen der.**: espacio de separación en píxeles, en el margen derecho, de los controles incluidos en el formulario.
* **Margen sup.**: espacio de separación en píxeles, en el margen superior, de los controles incluidos en el formulario.
* **Margen inf.**: espacio de separación en píxeles, en el margen inferior, de los controles incluidos en el formulario.

Si dejamos algún valor vacío, no se aplicará a los formularios.

Tras seleccionar los valores, pulsaremos el botón "Aplicar" para hacer efectivos los cambios.

## Cambiar posición de las toolbars en alternadores y rejillas

Permiten aplicar de forma masiva cambios en la interfaz de un proyecto, ajustando la posición de la [toolbar](https://doc.velneo.com/v/37/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-aplicacion/toolbar) asociada a [alternadores de lista](/38/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-aplicacion/alternador-de-lista.md) y [rejillas](/38/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-aplicacion/rejilla.md).

Permite hacer búsquedas por identificador y seleccionar, de los objetos encontrados, aquellos en los que queramos modificar la posición de la toolbar que podrá ser: **Arriba** o **Abajo**.

## Cambiar posición del botón de menú en controles de edición

Esta opción nos permite cambiar la posición del [menú de botón](/38/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-aplicacion/formulario/controles-de-edicion/edicion-alfabetica.md#menu-de-boton) en [controles de edición](/38/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-aplicacion/formulario/controles-de-edicion.md) de formularios del proyecto.

Nos presentará una lista con todos los formularios del proyecto.

Permite buscar formularios usando expresiones regulares, y busca a medida que vamos escribiendo.

Permite hacer multiselección sobre los resultados obtenidos.

Una vez seleccionados los formularios que queramos modificar, en el desplegable cuyo título es **Tipo de menú de botón** seleccioanremos la nueva posición que queramos que tenga el botón menú de cada control de edición. Los valores posibles son:

* **Ninguno**: el control carecerá de menú de botón.
* **Botón izquierda**: el botón será incluido a la izquierda del control.
* **Botón derecha**: el botón será incluido a la derecha del control.
* **Botón oculto**: el botón no será visible pero podrán dispararse las [acciones](https://doc.velneo.com/36/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-aplicacion/accion) contenidas en el menú asociado al mismo usando las teclas aceleradoras definidas en las mismas.

Tras seleccionar el tipo de menú de botón, pulsaremos el botón "Aplicar" para hacer efectivos los cambios.

En el caso de que uno de los formularios seleccionados contenga un control que no tenga botón de menú, no le aplicará cambio alguno.&#x20;

{% hint style="danger" %}
Debemos tener en cuenta que si seleccionamos la opción "ninguno", limpia el valor de la propiedad "[menú de botón](/38/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-aplicacion/formulario/controles-de-edicion/edicion-alfabetica.md#menu-de-boton)", de todos los controles y no se podrá deshacer, tendríamos que volver a asignar a mano el menú que corresponda en cada control.
{% endhint %}

## Cambiar estilos de objetos de un tipo

Esta opción nos permite marcar o desmarcar un **estilo** a todos los objetos de un mismo tipo. Nos pedirá el tipo de objeto, el estilo y si queremos activarlo o desactivarlo. Ejemplo de uso: activar el [estilo personalizable](/38/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-aplicacion/formulario.md#estilos) a todos los formularios de un proyecto.

Es posible cambiar el estilo de un grupo de objetos usando el checkbox de selección de la primera columna o cambiar un objeto individual usando el interruptor de la columna de la derecha.

Esta opción se adapta al modo claro u oscuro que se tenga configurado en el sistema.

## Iconos material

Esta opción nos permite buscar y encontrar en español el icono que necesitas entre más de 5.000 iconos [estilo Material](https://es.wikipedia.org/wiki/Material_Design), darle el tamaño, color, nombre que deseas y crearlo directamente en tu proyecto como [dibujo](/38/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-aplicacion/formulario/controles-de-visualizacion/dibujo-control.md) o como [imagen SVG](/38/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-aplicacion/formulario/controles-de-visualizacion/imagen-svg-control.md) o bien exportarlo a disco.

Esta ventana se adapta al modo claro u oscuro que se tenga configurado en el sistema.

## Crear rejilla estándar desde rejilla avanzada

Esta opción nos permite crear una [rejilla](/38/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-aplicacion/rejilla.md) estándar equivalente a partir de una [rejilla avanzada](/38/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-aplicacion/rejilla-avanzada.md) existente. Facilita la migración de proyectos anteriores a la 38 donde se usaba la rejilla avanzada a la rejilla estándar, que a partir de dicha versión incluye configuración por el usuario, filtros avanzados y agrupación.

Para usarla, el proyecto en curso debe ser un proyecto de aplicación abierto en modo edición, no en modo de solo lectura.

Nos presentará una lista con las rejillas avanzadas de los proyectos de aplicación de la solución en curso, con su proyecto, identificador, nombre, tabla, número de columnas y de bandas, y el identificador que tendrá la rejilla estándar. Este identificador aparece en rojo cuando ya existe una rejilla estándar con ese identificador en el proyecto, y en negro cuando todavía no existe. Las rejillas que aparecen en rojo se omiten al crearlas.

Permite buscar rejillas con el campo **Texto a buscar** y hacer multiselección sobre los resultados. La casilla de la cabecera de la lista marca o desmarca todas las rejillas.

Antes de crearlas, podemos configurar:

* **Sufijo del ID**: texto que se añade al identificador de la rejilla avanzada para formar el de la estándar. Por defecto es `_STD`, que también se usa si se deja vacío. Por ejemplo, con el sufijo `_NEW`, la rejilla MAESTROS genera la rejilla MAESTROS\_NEW. Los espacios y los caracteres que no se permiten en un identificador se eliminan del sufijo. Si ya existe una rejilla estándar con ese identificador, no se sobrescribe y se informa.
* **Simular (no crea nada, solo genera el informe)**: mientras está marcada, el botón **Crear rejillas** pasa a llamarse **Simular**. Genera el el pie de la ventana un informe de resultados sin crear ninguna rejilla.
* **Anteponer el título de la banda al título de la columna**: la rejilla estándar no tiene bandas. Con esta opción, el título de la banda se antepone al de cada una de sus columnas.

Al pulsar **Crear rejillas**, se crea una rejilla estándar por cada rejilla avanzada marcada, en la misma carpeta, con la misma tabla, nombre, comentarios, estilo personalizable y estilos. Se trasladan sus columnas, en el mismo orden y con el mismo identificador, con su contenido, título, ancho, fuentes, colores, alineamientos, formatos y pie, siempre que tengan equivalente en la rejilla estándar. También se copian las condiciones de estilo, las conexiones de evento, los manejadores de evento, las variables locales y los *drops*.

Las cabeceras de la rejilla estándar se activan según la rejilla avanzada: si tenía las cabeceras visibles y multiselección, se activan la horizontal y la vertical; si solo tenía las visibles, la horizontal; si solo tenía multiselección, la vertical; y si no tenía ninguna, ninguna.

Crear las rejillas estándar no modifica ni borra las rejillas avanzadas originales.

El botón **Usar rejilla estándar** reemplaza, en todos los objetos de la solución, las referencias a las rejillas avanzadas seleccionadas por su rejilla estándar ya creada (vistas de datos, acciones, multivistas…). Solo está disponible cuando ya existe la rejilla estándar correspondiente. Con la opción de simular marcada, pasa a llamarse **Simular reemplazo** y genera el informe sin cambiar nada.

Al terminar, se muestra bajo la lista un **informe**. Empieza con un resumen: en una simulación indica cuántas rejillas estándar se crearían, cuántas se omitirían porque el identificador de destino ya existe y cuántos avisos habría. Después hay una línea por rejilla, con el proyecto, el identificador de origen y el de destino, y el resultado: creada, omitida o con error (por ejemplo, si el proyecto está bloqueado por otro usuario). También se listan los avisos de las propiedades que no tienen equivalente en la rejilla estándar y que tenían un valor distinto del valor por defecto: por ejemplo, las bandas o los cálculos de pie de mínimo, máximo y media. Los manejadores de evento se copian tal cual, y conviene revisarlos manualmente. El botón **Copiar informe** copia el informe.

{% hint style="warning" %}
Una vez hemos generado las rejillas, la operación no se podrá deshacer, siendo necesario usar la opción [deshacer desprotección](/38/velneo-vdevelop/interfaz-de-velneo-vdevelop/menu-proyectos.md#deshacer-desproteccion-del-proyecto) del proyecto del menú **Proyectos** de vDevelop, para deshacer la operación.
{% endhint %}

## Cambiar propiedades de configuración y agrupación en rejillas

Esta opción nos permite activar o desactivar de forma masiva las propiedades de configuración por el usuario y de agrupación de las rejillas de los proyectos abiertos.

Nos presentará una lista con todas las rejillas, con su proyecto, identificador y nombre, y una columna por propiedad que muestra su fórmula actual. Si una propiedad no tiene fórmula, se indica como *vacía*. Al pie de la lista se indica el número de rejillas encontradas.

Para localizar las rejillas disponemos de:

* **Texto a buscar**: busca a medida que vamos escribiendo, usando expresiones regulares.
* **Propiedad**: indica la propiedad que se modificará en las rejillas que seleccionemos: una propiedad concreta o **Todas las propiedades**.
* **Filtro**: permite mostrar solo las rejillas según el valor de sus propiedades: **Vacía (permitido)**, **0 (no permitido)** u **Otra fórmula**. Con **Todas** no se filtra y se muestran todas las rejillas.

Permite hacer multiselección sobre los resultados obtenidos. La casilla de la cabecera de la lista marca o desmarca todas las rejillas.

Las propiedades que podemos modificar son:

* [Permitir configurar rejilla](/38/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-aplicacion/rejilla.md#permitir-configurar-rejilla)
* [Permitir mover columnas](/38/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-aplicacion/rejilla.md#permitir-mover-columnas)
* [Permitir ocultar columnas](/38/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-aplicacion/rejilla.md#permitir-ocultar-columnas)
* [Permitir añadir columnas de campo](/38/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-aplicacion/rejilla.md#permitir-anadir-columnas-de-campo)
* [Permitir filtros avanzados](/38/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-aplicacion/rejilla.md#permitir-filtros-avanzados)
* [Permitir agrupación](/38/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-aplicacion/rejilla.md#permitir-agrupacion)
* [Permitir guardar configuración por usuario](/38/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-aplicacion/rejilla.md#permitir-guardar-configuracion-por-usuario)
* [Ocultar columna agrupada](/38/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-aplicacion/rejilla.md#ocultar-columna-agrupada)
* [Agrupaciones colapsadas por defecto](/38/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-aplicacion/rejilla.md#agrupaciones-colapsadas-por-defecto)

Una vez marcadas las rejillas que queramos modificar, pulsaremos:

* **Activar**: establece a 1 la propiedad seleccionada en **Propiedad** en todas las rejillas marcadas. Si hemos elegido **Todas las propiedades**, establece a 1 todas ellas.
* **Desactivar**: igual que **Activar**, pero establece las propiedades a 0.

Si marcamos la casilla **Solo las que no estén vacías**, la acción no modifica las rejillas marcadas en las que la propiedad esté vacía; solo se aplica a las que ya tienen una fórmula.

{% hint style="danger" %}
Esta opción no permite deshacer los cambios, y la acción se aplica a todas las rejillas marcadas. Antes de pulsar **Activar** o **Desactivar**, comprobemos la selección. Si necesitamos descartar los cambios, debemos cerrar el proyecto sin guardarlos con la opción [Deshacer desprotección](/38/velneo-vdevelop/interfaz-de-velneo-vdevelop/menu-proyectos.md#deshacer-desproteccion-del-proyecto) del proyecto del menú **Proyectos**.
{% endhint %}

Esta opción no permite escribir fórmulas. Si necesitamos una condición especial en una rejilla, debemos editar la propiedad directamente en esa rejilla.

{% hint style="info" %}
Esta opción solo modifica las propiedades de la rejilla. Las propiedades de columna **permitir filtros avanzados** y **permitir agrupación** no se modifican.
{% endhint %}

## Editar informe personalizable

Permite Abrir el editor de [informes personalizables ](/38/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-aplicacion/informe-personalizable.md)para para poder editar un fichero XML con la definición del informe.

## Nueva carpeta

Las carpetas son objetos que nos permitirán organizar los objetos de un proyecto en el panel central de **Velneo vDevelop**. Esta opción añadirá una carpeta en el panel central del proyecto en mismo nivel que el objeto o la carpeta que estuviese seleccionada en el momento de su ejecución.

## Nueva carpeta hija

Esta opción añadirá una carpeta en el panel central del proyecto dentro de la carpeta seleccionada en el momento de su ejecución.

## Propiedades de carpeta

(Alt + Intro)

Permite modificar las propiedades de la carpeta seleccionada en el panel central de Velneo vDevelop. Podremos modificar su nombre, el color de la fuente y el icono de la carpeta.

## Localizar en proyecto

Esta opción localiza en el panel central de **Velneo vDevelop** el objeto que seleccionemos en el [Inspector de objetos](/38/velneo-vdevelop/inspectores.md#inspector-de-objetos).

## Inspector de modificación (Control + M)

Se trata de un inspector que nos permite buscar directamente dónde se modifican [campos](/38/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-datos/tabla/campo.md) o [variables](/38/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-datos/variable.md).&#x20;

Un campo o una variable puede usarse en multitud de sitios (en controles de formulario, rejillas, contenidos iniciales, fórmulas, procesos (en lectura o escritura), pues bien, esta extensión lo que nos permite es ver únicamente dónde se modifica un campo o una variable. Para ello, no tenemos más que seleccionar el campo o la variable y ejecutar esta opción.

Si la ventana del inspector ya está abierta y queremos ver dónde se modifica otro campo o variable, una vez seleccionado en vDevelop, pulsaremos el botón ![](https://content.gitbook.com/content/SSuDG1WIgF9xPUK4NaFS/blobs/g7pizgblaIFrFJYqJytD/image.png) del inspector para forzar su refresco.

También podemos filtrar por valores, es decir, buscar dónde se modifica el campo o la variable con un valor determinado.

## Buscar en contenido de objetos

Esta opción permite buscar un texto en el contenido de objetos de la solución y de las soluciones heredadas, permite buscar tanto en propiedades de objetos como en fórmulas y en el nombre de los comandos de instrucción de proceso. La búsqueda incluye los campos fórmula de tipo Javascript.

Al ejecutarla se abrirá un panel en la parte inferior de Velneo vDevelop. En dicho panel podremos hacer búsquedas dentro del contenido de los [objetos](/38/velneo-vdevelop/proyectos-objetos-y-editores.md) tanto del proyecto en curso como en los heredados.

Incluye un control en el que podemos escribir la cadena a buscar. Para iniciar la búsqueda, una vez escrita la cadena, pulsaremos la tecla intro.

En la parte inferior del panel se mostrará la lista de todos los objetos que coincidan con el criterio de búsqueda y el primero de ellos será editado automáticamente.

Si desmarcamos la opción **coincidir mayúsculas y minúsculas**, no se tendrán en cuenta las mayúsculas y las minúsculas a la hora de buscar las coincidencias.

El sistema buscará tanto en propiedades de objetos como en [fórmulas](/38/velneo-vdevelop/proyectos-objetos-y-editores/editores/asistente-de-formulas.md) y en [procesos](/38/velneo-vdevelop/proyectos-objetos-y-editores/de-aplicacion-y-datos/proceso.md) de Velneo. Así, por ejemplo, podremos buscar en qué fórmulas o propiedades se  usa un campo o  una cadena determinada, en qué procesos se usa un comando de instrucción de proceso concreto, etc.

## Objetos no usados directamente

Esta opción permite buscar objetos que no sean usados de forma directa por otros objetos de la aplicación. Debemos tener en cuenta que el que no se use un objeto directamente no quiere decir que no se use realmente, por ejemplo, si un proceso es usado solamente en un script, esta opción lo devolverá como no usado directamente por ningún objeto.

Si tenemos un proceso público y que es usado solamente para ser ejecutado a través de Internet por [Velneo vModApache](/38/velneo-vmodapache/que-es-velneo-vmodapache.md), también será devuelto por esta opción, objetos que hayamos creado para ser usados en soluciones que hereden nuestra solución, también serían devueltos al ejecutar esta opción. Por lo tanto, debemos ser cautelosos a la hora de borrar los objetos que retorne esta opción.

Esta opción se adapta al modo claro u oscuro que se tenga configurado en el sistema.

## Eliminar carpeta

Borra la carpeta seleccionada en el panel central de Velneo vDevelop. Debemos tener precaución pues no borrará solamente la carpeta seleccionada sino que borrará también todos los objetos y sub-carpetas que contenga.

## Eliminar

Elimina el objeto que seleccionemos tanto en el Inspector de objetos como en el panel central de Velneo vDevelop.

## Mover de proyecto

Permite mover el objeto actual a un [proyecto heredado](/38/velneo-vdevelop/herencia.md). Ver el capítulo [mover objeto](/38/velneo-vdevelop/proyectos-objetos-y-editores/objeto.md#mover-objeto) para ampliar información al respecto.

## Últimos modificados

Presenta la lista de los últimos objeto modificados en la sesión actual de Velneo vDevelop. Si seleccionamos uno, será editado.

## Navegante de objetos

Nos permite navegar entre propiedades y sus objetos. Contiene las opciones siguientes:

### Anterior objeto editado

Nos permite navegar al objeto que haya sido editado con anterioridad. Si hacemos clic en el botón de la flecha situado junto a este icono, se desplegará una lista con todos los objetos editamos con anterioridad. Seleccionando uno, accederemos a él.

### Siguiente objeto editado

Nos permite navegar al objeto que haya sido editado con posterioridad al objeto actual. Si hacemos clic en el botón de la flecha situado junto a este icono, se desplegará una lista con todos los objetos editamos posteriormente. Seleccionando uno, accederemos a él.

### Editar objeto de la propiedad

Si en una propiedad tenemos asignado un objeto, nos permite editarlo directamente. Por ejemplo, en las propiedades de una [acción](/38/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-aplicacion/accion.md) que dispara una [búsqueda](/38/velneo-vdevelop/proyectos-objetos-y-editores/de-aplicacion-y-datos/busqueda.md), editar esta última.

### Editar objeto padre

Nos permite editar el objeto padre de un sub-objeto. Por ejemplo, estando en las propiedades de una [columna](/38/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-aplicacion/rejilla/propiedades-de-columna.md) de rejilla, editar la [rejilla](/38/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-aplicacion/rejilla.md).

Crear objeto para la propiedad

Nos permite crear directamente un objeto desde una propiedad. Por ejemplo, desde una [conexión de evento](/38/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-aplicacion/sub-objetos-de-vistas-de-datos/conexion-de-evento.md) nos permite crear el [manejador de evento](/38/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-aplicacion/sub-objetos-de-vistas-de-datos/manejador-de-evento.md) a disparar.&#x20;

##
