Desplegar la nueva ficha en el formulario

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

¿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

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.

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.


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é

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.

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

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é

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