Abrir nuevo marco


([N1] atarazona) #1

Buenas tardes, estoy de pruebas y he pretendido hacer algo que, a priori, me parecía muy sencillo, pero que parece que no tiene solución en Velneo.

Estoy tratando de hacer una apliación que tenga botones que lancen otras aplicaciones, pero quiero que todas se ejecuten de forma independiente y que no se ejecuten como pestañas dentro del marco inicial.

Si estuviera con C# o Delphi, estaría claro, desde un formulario MDI o nó, abriría tantos formularios como quisiera y luego los destruiría, pero en Velneo no lo tengo tan claro:

    No veo la forma de aplicar una acción para abrir un marco, únicamente formularios.
    Si abro un formulario desde un marco inicial, el resultado es que se abre como una pestaña y no es el resultado que buscaba.
    Por ejemplo, Si abro una nueva aplicación en blanco y quiero, desde una acción abrir vERP, únicamente puedo abrir vERP dentro de una pestaña, perdiendo la barra de menús porque eso se configura en el marco y no en el formulario

Soy completamente noob en Velneo y es posible que exista algún método, pero no doy con ello.

Espero haberme explicado bien, gracias al foro.


([N1] wikan) #2

Lo primero es cambiar el chip y no querer hacer las cosas como se hacían en otro lenguaje, cada herramienta tiene sus pecuriliadares, para bien y para mal.

No puedes ejecutar una aplicación independiente dentro de otra aplicación, todo es la misma aplicación. Da igual que los demás proyectos tengan su marco, se ejecuta el que le hayas dado permisos.

A partir de ahí abres los formularios y objectos que contenga toda la aplicación (conjunto de proyectos), puede ser en pestañas, sdi, mdi.


([N4] Infortic) #3

Si con lanzar otro marco te refieres a ejecutar una aplicación distinta puedes usar el comando

Lanzar aplicación

La aplicación que lanzas es vClient.exe

En los parámetros le pasas la vURL de la aplicación que tiene le forma:

“vatp://usuario:contraseña@ip_servidor/instancia_app”

Por ejemplo si la otra aplicación que quieres lanzar está en el mismo vServer sería algo así:



Lanzar Aplicación(Esperar,"C:/Program Files (x86)/Velneo/V7.18/vClient.exe","vatp://miusuario:123contraseña123@" + getServerIP() + "/ALIAS_INSTANCIA_APP")



([N3] pacosatu) #4

Hola infortic.

Aclarar 2 cosas para que atarazona lo tenga más claro:

  • Rodea el Path de la aplicación con comillas porque tiene espacios y seguramente no se ejecutará si no los lleva.
    Lanzar Aplicación(No esperar,"\cC:/Program Files (x86)/Velneo/V7.18/vClient.exe\c", …
  • El primer parámetro debe estar a “No esperar” para que la aplicación llamada no bloquee a la principal.

Aprovecho para recordar que vClient tiene ahora un nuevo parámetro “-platform minimal” que nos permitirá ejecutar una aplicación Velneo de forma desatendida y/o silenciosa.

Saludos
Paco Satué


([N4] gontorre) #5

Buenos días Paco

Respecto a lo que comentas del parámetro “-platform minimal”, ¿sabes cómo se comporta en caso de que se deshaga una transacción?

Yo ahora mismo tengo varias soluciones que se ejecutan de forma automática en un servidor. Mediante el programador de tareas de Windows, abro un vClient que ejecuta la solución y se cierra cuando termina. El problema es que de vez en cuando encuentra un registro bloqueado y deja en pantalla el aviso de que la transacción se ha deshecho y que si se quiere reintentar.

Como no hay ningún usuario para confirmar el mensaje, se queda hasta que alguien se da cuenta.

Un saludo


([N3] pacosatu) #6

Hola Gonzalo.

Personalmente no lo he probado, aunque lo puedes comprobar fácilmente.
Puede ocurrir 2 cosas:

  • Que ignore totalmente los comandos que necesitan interface gráfico
  • Que los ejecute y se quede bloqueado esperando

Haz una pequeña aplicación que intente modificar un registro bloqueado y nos cuentas el resultado.

De todas formas, cualquier proceso que hagamos para ejecutarse de forma desatendida deberá estar muy probado.
Con Velneo este tema es una tarea dificil, por la falta de una buena gestión de errores y de un ridículo log en el vServer.

Saludos
Paco Satué


([N1] atarazona) #7

Gracias a todos.

Wikan: tienes razón en lo que dices, pero quería solventar la duda :slight_smile:

Infortic: No quería hacer eso, pero me ha resultado ilustrador. No sabía que existía esa función.

Gracias de nuevo :slight_smile: