# VFinder

**Hereda de:** [VObjectInstance](https://doc.velneo.com/32/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/32/velneo-vdevelop/scripts/lenguajes/javascript/clases/vroot) con el cual podemos operar.

## Indice de funciones

### **Constructor**

[VFinder](#vfinder)( VRoot root )

### **Inicialización**

void  [setFinder](#setfinder)( String szIdRefFinder )

### **De operaciones**

Boolean [exec](#exec)()

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/32/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/32/velneo-vdevelop/scripts/lenguajes/javascript/clases/vroot) que indica el objeto [VRoot](https://doc.velneo.com/32/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: cadena 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/32/velneo-vdevelop/scripts/lenguajes/javascript/clases/vregister) con el registro encontrado mediante el localizador.

## Ejemplos

### 1. Proceso sin origen que lanza un localizador de películas

```javascript
// --------------------------------------------------------------------------------
// Proceso sin origen que lanza un localizador de películas 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 películas
  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(); 
  };
};
```
