# Asignar valor a Data Catcher edit

**URL:** <https://foros.velneo.com/t/asignar-valor-a-data-catcher-edit/7803>\
**Category:** Velneo\
**Created:** [17 Febrero, 2015 13:42 UTC](https://foros.velneo.com/t/asignar-valor-a-data-catcher-edit/7803 "2015-02-17T13:42:07Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![gontorre](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/gontorre/32/5728_2.png) [@gontorre](https://foros.velneo.com/u/gontorre)\
**Post date:** [17 Febrero, 2015 13:42 UTC](https://foros.velneo.com/t/asignar-valor-a-data-catcher-edit/7803/1 "2015-02-17T13:42:07Z")

</div>

Buenos días

Tengo un formulario sin origen en el que tengo un control Data catcher edit para seleccionar un valor de una lista de formatos. El data catcher me muestra bien el contenido de la tabla y puedo seleccionar el formato que quiero, pero lo que no consigo es que me aparezca un elemento seleccionado por defecto al abrir el formulario.

¿Sabe alguien la manera de asignar un contenido inicial al data catcher? Es decir, que me aparezca seleccionado uno de los elementos de la lista.

Gracias y un saludo

Gonzalo Torre

---

<div class="post-metadata">

**Author:** ![velavisual1](https://avatars.discourse-cdn.com/v4/letter/v/dbc845/32.png) [@velavisual1](https://foros.velneo.com/u/velavisual1)\
**Post date:** [17 Febrero, 2015 15:34 UTC](https://foros.velneo.com/t/asignar-valor-a-data-catcher-edit/7803/2 "2015-02-17T15:34:40Z")

</div>

@gontorre

Existe una incidencia en vBugman al respecto,la número 003974.

Esta incidencia nos impide ponerle un valor inicial al Datacatcher edit.

---

<div class="post-metadata">

**Author:** ![gontorre](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/gontorre/32/5728_2.png) [@gontorre](https://foros.velneo.com/u/gontorre)\
**Post date:** [17 Febrero, 2015 16:56 UTC](https://foros.velneo.com/t/asignar-valor-a-data-catcher-edit/7803/3 "2015-02-17T16:56:37Z")

</div>

Gracias Antonio

Al final he sustituido el data catcher por una vista de datos alimentada por proceso y que muestra un combo. Ahí si que puedo seleccionar uno de los elementos.

Un saludo

Gonzalo Torre

---

<div class="post-metadata">

**Author:** ![pacosatu](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/pacosatu/32/5131_2.png) [@pacosatu](https://foros.velneo.com/u/pacosatu)\
**Post date:** [22 Febrero, 2015 18:35 UTC](https://foros.velneo.com/t/asignar-valor-a-data-catcher-edit/7803/4 "2015-02-22T18:35:26Z")

</div>

Hola.

Mientras arreglan el bug (que hubiera justificado, junto con otros bugs, una release 7.16.01) podemos usar la función setRegister() de la clase VDataCatcherEdit del API.

Os pongo un ejemplo que uso para los formularios maestro-detalle en los que quiero seleccionar el maestro de forma dinámica.

- El formulario maestro-detalle tiene como origen la tabla TAB\_MAESTROS.
- El control DataCatcherEdit CBO\_MAESTROS tiene como contenido la variable local NID\_MAESTRO y como Lista apuntada la tabla TAB\_MAESTROS o cualquier otra mediante la cual podamos obtener el valor del maestro, esta es la gran ventaja de usar el DataCatcherEdit.
- Creamos una conexión de evento EVT\_CAMBIO\_MAESTRO que se dispara con CBO\_MAESTROS.(Value Changed) y ejecuta el manejador CAMBIO\_MAESTRO.
- En el evento Post-inicializado del formulario fijamos el valor inicial de NID\_MAESTRO (que será el valor #ID de la ficha u otro que obtengamos de la tabla TAB\_MAESTROS en el caso de que #ID sea 0) y llamamos al manejador CAMBIO\_MAESTRO.

El manejador CAMBIO\_MAESTRO contiene lo siguiente:  
Rem (Cambiar el registro Maestro del formulario mediante el API)  
Interfaz: Ejecutar manejador de evento(CAMBIO\_MAESTRO\_JS)  
Rem (Mostrar en la Rejilla los plurales del Mestro seleccionado)  
…

El código JS del manejador CAMBIO\_MAESTRO\_JS será el siguiente:

```auto

var oForm = theRoot.dataView()
// Construimos un objeto Lista de Maestros
var oListaMaestros = new VRegisterList(theRoot)
oListaMaestros.setTable("Alias/TAB_MAESTROS")
// Obtenemos el ID del Maestro
var nIDMaestro = theRoot.varToInt("NID_MAESTRO")

if (nIDMaestro > 0 && oListaMaestros.load("ID",[nIDMaestro])) {
        // Obtenemos la Ficha del Maestro seleccionado
   	var oMaestro = oListaMaestros.readAt(0)
        // Cambiamos el Registro asociado al Formulario
	oForm.setRegister(oMaestro)
        // Cambiamos el valor mostrado en el DataCatcherEdit
	var oCboMaestros = oForm.control("CBO_MAESTROS")
	oCboMaestros.setRegister(oMaestro)
}

```

Como vemos, la línea oCboMaestros.setRegister(oMaestro) fijará el maestro que queremos mostrar en el DataCatcherEdit.  
El formulario cambia dinámicamente de maestro mediante la línea oForm.setRegister(oMaestro).

Saludos  
Paco Satué

---

<div class="post-metadata">

**Author:** ![conextamiguel](https://avatars.discourse-cdn.com/v4/letter/c/a9adbd/32.png) [@conextamiguel](https://foros.velneo.com/u/conextamiguel)\
**Post date:** [21 Noviembre, 2020 19:12 UTC](https://foros.velneo.com/t/asignar-valor-a-data-catcher-edit/7803/5 "2020-11-21T19:12:22Z")

</div>

"!!! Casi seis años y sigue igual, he escrto este pedazo de código y aunque he comprobado que los valores son correctos, alm,imp,reg. en el formulario sigue en blanco el dataCatcherEdit, alguna ayuda?

//se obtiene el control DataCatcherEdit, y el valor de la clave a buscar  
var ctr = theRoot.dataView().control(“IMP”);  
var imp = theRegisterIn.fieldToInt(“IMP\_M”);  
var alm = theRegisterIn.fieldToInt(“ALM\_M”);

// Se crea un registro de la tabla del DataCatcherEdit, y se carga por id  
var reg = new VRegister(theRoot);  
reg.setTable(“appcloud\_plus\_dat/IMP\_ALM”);  
reg.readRegister(“IMP\_ALM”, [imp, alm], VRegister.SearchThis);

// Se asigna el registro al control  
ctr.setRegister(reg);

![image](https://canada1.discourse-cdn.com/flex035/uploads/velneo/original/2X/b/bc795707ed008ea273c997175518779211faf290.png)
