# VFinder

**Hereda de:** [VObjectInstance](https://doc.velneo.com/22/velneo-vdevelop/scripts/lenguajes/javascript/clases/vobjectinstance).

La clase VFinder representa un localizador en ejecución. Nos permite ejecutar el objeto de proyecto localizar. Construimos un objeto VFinder pasándole el objeto [VRoot](https://doc.velneo.com/22/velneo-vdevelop/scripts/lenguajes/javascript/clases/vroot) con el cual podemos operar.

Esta clase se ha incorporado al API en la versión 7.15.

## Funciones

**Constructor**

| Función               |
| --------------------- |
| VFinder( VRoot root ) |

**Inicialización**

| Retorno | Función                                         |
| ------- | ----------------------------------------------- |
| void    | [setFinder](#setfinder)( String szIdRefFinder ) |

**De operaciones**

| Retorno                                                                                              | Función             |
| ---------------------------------------------------------------------------------------------------- | ------------------- |
| Boolean                                                                                              | [exec](#exec)()     |
| [VRegister](https://doc.velneo.com/22/velneo-vdevelop/scripts/lenguajes/javascript/clases/vregister) | [result](#result)() |

## Documentación de funciones

### Constructor

#### VFinder( VRoot root) <a href="#vfinder" id="vfinder"></a>

Crea una instancia de objeto de la clase [VQuery](https://doc.velneo.com/22/velneo-vdevelop/scripts/lenguajes/javascript/clases/vquery). Debe ejecutarse la función setQuery() para asignarle la búsqueda.

Parámetros:

* root: [VRoot](https://doc.velneo.com/22/velneo-vdevelop/scripts/lenguajes/javascript/clases/vroot) que indica el objeto [VRoot](https://doc.velneo.com/22/velneo-vdevelop/scripts/lenguajes/javascript/clases/vroot) en curso del que se hará uso, normalmente theRoot.

### Inicialización <a href="#ini" id="ini"></a>

#### void setFinder( String szIdRefFinder ) <a href="#setfinder" id="setfinder"></a>

Fija el localizador del proyecto que se asocia al objeto.

Parámetros:

* szIdRefFinder: String que contiene el identificador referencia (IdRef=Alias\_Proyecto/Id\_Localizador) del localizador.

### Funciones de operaciones

#### Boolean exec() <a href="#exec" id="exec"></a>

Ejecuta el objeto localizador y devuelve true si finaliza correctamente.

#### VRegister result() <a href="#result" id="result"></a>

Devuelve un objeto [VRegister](https://doc.velneo.com/22/velneo-vdevelop/scripts/lenguajes/javascript/clases/vregister) con el registro encontrado mediante el localizador.

## Ejemplos

### 1. Proceso sin origen que lanza un localizador de peliculas

```javascript
// --------------------------------------------------------------------------------
// Proceso sin origen que lanza un localizador de peliculas y si seleccionan una
// la presenta en formulario en diálogo
// --------------------------------------------------------------------------------

importClass("VFinder");

// Crea localizador
var finder = new VFinder(theRoot);
finder.setFinder("CINE/PELICULAS");

// Ejecuta localizador
if (finder.exec())
{
 // Si hay resultados
 if (finder.result())
 {
  // Crea el lanzador del formulario en cuadro de dialogo con el formulario de peliculas
  var dlg = new VDataViewDialog(theRoot);
  dlg.setDataView(VObjectInfo.TypeForm, "CINE/PELICULA");

  // Le inicializa el resultado del localizador (una peli)
  if (dlg.setRegister(finder.result()))
  {
   // presenta formulario en cuadro de dialogo
   dlg.exec();
  };
 };
};
```

### 2. Ejemplo de localizador con subindexación para multiempresa

```javascript
// ------------------------------------------------------------------------------------------
// Ejemplo de localizador multiempresa
// Localizador subindexado a un parámetro que le pasemos a la variable local que lo subindexa
// ------------------------------------------------------------------------------------------

//Importamos la clase
importClass("VFinder");

//Creamos el localizador
var Finder = new VFinder(theRoot);
Finder.setFinder("49z6dckf.vca/VFINDER");

//Le indicamos la subindexación(por ejemplo para multiempresa) sin el uso de variables globales
Finder.setVar("TIP", 1);

//Mostramos el localizador
if(Finder.exec())
{
  //Si se obtienen resultados
  if(Finder.result()){

  //Mostramos el formulario seleccionado
  var formulario = new VDataViewDialog(theRoot);
  formulario.setDataView(VObjectInfo.TypeForm, "49z6dckf.vca/DUMMY")
  formulario.setRegister(Finder.result());
  formulario.exec(); 
  };
};
```
