# Desplegar la nueva ficha en el formulario

**URL:** <https://foros.velneo.com/t/desplegar-la-nueva-ficha-en-el-formulario/9102>\
**Category:** Velneo\
**Created:** [20 Septiembre, 2016 20:03 UTC](https://foros.velneo.com/t/desplegar-la-nueva-ficha-en-el-formulario/9102 "2016-09-20T20:03:36Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![garcia.vidales](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/garcia.vidales/32/5427_2.png) [@garcia.vidales](https://foros.velneo.com/u/garcia.vidales)\
**Post date:** [20 Septiembre, 2016 20:03 UTC](https://foros.velneo.com/t/desplegar-la-nueva-ficha-en-el-formulario/9102/1 "2016-09-20T20:03:36Z")

</div>

Hola Amigos de Velneo:

Tengo una sencilla duda en esta ocasión

Tengo un formulario en donde despliego los datos de una factura y una rejilla con el detalle de esta.  
también tengo un botón “COPIA FACTURA” lo que hace es ejecutar un Manejador de Eventos que crea una nueva  
ficha en memoria de la factura, y cambia el numero de esta por la correspondiente en tiempo.  
Ademas copia el detalle de la factura original a la nueva.

Hasta allí todo bien, solo me falta que cuando regreso al formulario, quiero que se despliegue  
la nueva factura creada, no la original.

Ya intente con INTERFAZ: RECALCULAR e INTERFAZ: PROCESAR y en ninguno de los dos casos funciona

Si cierro el formulario y regreso a el, ya puedo acceder a la nueva factura, y esta correcto,  
pero quiero llegar allí sin tener que salir y volver a entrar.

Gracias de antemano

Luis Garcia

---

<div class="post-metadata">

**Author:** ![ccuesta](https://avatars.discourse-cdn.com/v4/letter/c/c77e96/32.png) [@ccuesta](https://foros.velneo.com/u/ccuesta)\
**Post date:** [21 Septiembre, 2016 07:17 UTC](https://foros.velneo.com/t/desplegar-la-nueva-ficha-en-el-formulario/9102/2 "2016-09-21T07:17:55Z")

</div>

¿Que tal si lanzas una nueva instancia de ese formulario con la nueva ficha? te quedaría el primer formulario con la original y el segundo con la nueva

---

<div class="post-metadata">

**Author:** ![eic](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/eic/32/5064_2.png) [@eic](https://foros.velneo.com/u/eic)\
**Post date:** [21 Septiembre, 2016 10:03 UTC](https://foros.velneo.com/t/desplegar-la-nueva-ficha-en-el-formulario/9102/3 "2016-09-21T10:03:57Z")

</div>

Hola.

Mi consejo para abir esa segunda ficha:

1. Guarda su ID en una variable global en memoria
2. Lanza una acción (Interfaz: ejecutar acción), que ejecutará un proceso y el formulario de factura
3. El proceso debe buscar esa ficha por ID (mediante la variable global) y la pasa a la salida, abriéndose en el formulario de factura

No es posible cerrar la factura original, sino que tendrás dos formularios abiertos, la factura original y la nueva factura.

---

<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:** [21 Septiembre, 2016 15:23 UTC](https://foros.velneo.com/t/desplegar-la-nueva-ficha-en-el-formulario/9102/4 "2016-09-21T15:23:30Z")

</div>

Hola Luis.

Puedes probar otra opción, aunque necesitarás conocer el API de Velneo.  
Crea un manejador javascript con el siguiente código y lo llamas una vez copiada la factura.

```auto

var oForm = theRoot.dataView()
// El ID del nuevo registro o factura
var nID = theRoot.varToInt("NID_NUEVA_FAC")
// Obtenemos el Registro actual de la Factura original
var oRegistro = theRegisterIn
// Buscamos el registro de la nueva factura
if (oRegistro.readRegister("ID", [nID], VRegister.SearchThis) ) {
    // Cargamos la nueva factura en el formulario
    oForm.setRegister(oRegistro)
}

```

Pruébalo  
Saludos  
Paco Satué

---

<div class="post-metadata">

**Author:** ![vgegeo](https://avatars.discourse-cdn.com/v4/letter/v/278dde/32.png) [@vgegeo](https://foros.velneo.com/u/vgegeo)\
**Post date:** [21 Septiembre, 2016 15:41 UTC](https://foros.velneo.com/t/desplegar-la-nueva-ficha-en-el-formulario/9102/5 "2016-09-21T15:41:41Z")

</div>

En el manejador de evento de tu boton COPIA FACTURA, al dar de alta conoces el ID de la nueva factura.

–Cargas lista (FACTURAS, INDICE ID, ID de la nueva factura)  
----Seleccionas ficha por posicion (1)  
----Modificar ficha seleccionada con formulario (EL FORMULARIO QUE TE INTERESA ABRIR)

Con esto consigues lo mismo que te indica Fran.  
Tendras dos formularios abiertos, pero lo puedes hacer desde el manejador.

---

<div class="post-metadata">

**Author:** ![garcia.vidales](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/garcia.vidales/32/5427_2.png) [@garcia.vidales](https://foros.velneo.com/u/garcia.vidales)\
**Post date:** [21 Septiembre, 2016 17:38 UTC](https://foros.velneo.com/t/desplegar-la-nueva-ficha-en-el-formulario/9102/6 "2016-09-21T17:38:50Z")

</div>

Gracias amigos, a todos por sus consejos y soluciones.

La verdad es que lo que mas me interesa es la solución en javaScript  
que abre la factura en el mismo formulario.

solo que no se usar el java, pero me pondré a aprender

No seria mala idea que pusieran un tutorial en Velneo que nos enseñe  
aunque sea lo básico de Java

así que por lo pronto usare alguna de las otras sugerencias

Gracias de Nuevo

---

<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:** [21 Septiembre, 2016 21:59 UTC](https://foros.velneo.com/t/desplegar-la-nueva-ficha-en-el-formulario/9102/7 "2016-09-21T21:59:27Z")

</div>

Hola Luis.

No hace falta el API, se puede hacer todo con Velneo nativo, aunque tenemos que cambiar el diseño del formulario.

- Defines una variable Global GID\_FACTURA donde guardas la factura a Visualizar
- Creas un proceso PRO\_FAC\_CARGAR sin Origen y con salida Ficha de Factura. Se Carga lista con el ID = GID\_FACTURA y se añade la Ficha resultante a la Salida
- Creas un formulario Sin Origen FRM\_FAC\_SIN\_ORIGEN en el que incrustas una Vista de Datos donde mostrarás el Formulario original de la Factura FRM\_FAC que quieres copiar. La Vista de Datos ejecuta como primer Objeto el proceso PRO\_FAC\_CARGAR.

Una vez que has copiado la Factura, estableces el nuevo ID en la variable Global GID\_FACTURA y ejecutas un Recalcular de la Vista de datos para mostrar la nueva Factura. Todo en el mismo Formulario.

Con este sistema ya no se puede ejecutar directamente el formulario Sin Origen FRM\_FAC\_SIN\_ORIGEN desde una Rejilla de Facturas. Tendrás que ejecutarlo de otra manera mediante una Acción.

Pruébalo  
Saludos  
Paco Satué

---

<div class="post-metadata">

**Author:** ![garcia.vidales](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/garcia.vidales/32/5427_2.png) [@garcia.vidales](https://foros.velneo.com/u/garcia.vidales)\
**Post date:** [22 Septiembre, 2016 06:07 UTC](https://foros.velneo.com/t/desplegar-la-nueva-ficha-en-el-formulario/9102/8 "2016-09-22T06:07:37Z")

</div>

Paco:

Gracias mil por tu ayuda, ya logre hacerlo usando tu recomendación del  
formulario sin origen, tuve que ajustar algunas cosas anteriores,pero  
funciona y muy bien ahora.

De nuevo gracias a todos

Luis Garcia
