Acceso a Variable Local desde formulario de un Separado de Formularios


([N3] blanyi) #1

Buenos días.

Recurro a ustedes para consultar lo siguiente: Tengo un formulario A el cual contiene un separador de formularios con los formularios B, C, D.

Hay alguna manera desde el formulario C (por ejemplo) de tener acceso a una variable local que está en el formulario A. No quisiera usar una variable global puesto que algo que solo necesito en este punto.

Agradezco de antemano a quien pueda responderme.

YIMY MORA ACONCHA


([N1] Pepeto) #2

Ahora mismo no es posible, al menos con variables locales.
Puedes hacerlo con variables globales, con una tabla en memoria, o de alguna otra forma.

un saludo
José Luis
http://www.ascsl.com


([N3] blanyi) #3

Gracias Pepeto.

Pensé que existía alguna forma de hacerlo.

YIMY


([N4] mittosoftware) #4

Considero que es un pendiente de la v7. A nivel conceptual, el uso de estas es visto como una mala práctica en el desarrollo de software. No deberían necesitarse variables globales, toda herramienta debería proveer del medio para solucionar los problemas sin recurrir a globales.
.
Hasta donde he visto, para no necesitarlas, debería en v7, entre otras cosas, poderse manejar parámetros entre objetos y tener mas eventos disponibles en algunas situaciones (por ejemplo, tener un evento estilo 'retorno desde actualización rejilla' cuando se actualizan plurales en una rejilla embedida dentro de un formulario de edición).


([N3] blavan) #5

Hola cjribera, bueno yo estoy metido en una aplicación bastante gorda y compleja y sólo tengo declaradas 4 variables globales que no utilizo.
Cuando comence fruto de mi desconocimiento declare variables globales pero conforme fui desarrollando y conociendo mejor la herramienta no me hacen falta para nada.
En V7 como en todo hay muchas formas de hacer las cosas o de obtener los objetivos unas son muy sencillas y rápidas pero claro tienen esas limitaciones y otras hay que tener un conocimiento mas profundo de la herramienta y las limitaciones serán menores.
Se pueden manejar parametros entre objetos,
"retorno desde actualización rejilla" no se bien a que refieres pero vamos la casuística maestros plurales en V7, creo que es muy completa
Saludos


([N4] mittosoftware) #6

Pues entonces voy a enviar un nuevo soporte, exclusivamente para que me expliquen como resolver un escenario que hice con ellos, sin globales, probablemente no explique bien que no queria resolver el problema asi.


([N1] Pepeto) #7

Como dice Benito, por aclarar un poco el asunto, es posible pasar parametros entre objetos, ¿como?
-Usando el manejador de objetos, logicamente. Podemos pasar valores a las variables de busquedas, procesos y formularios, entre otros.
Lo que no es posible a dia de hoy, es pasar valores las variables locales de los distintos subformularios de un separador de formularios, entre otras cosas, porque para eso, no usamos el manejador de objetos, simplemente ponemos incluimos el separador y listo.

Que podamos evitar el uso de variables globales, depende entre otras cosas, de cada caso, y en particular, de si podemos hacer uso del manejador de objetos, y si es asi, claro que podemos evitarlas, pero no siempre.

Edito:
El único caso que conozco en donde no es necesario usar el manejador de objetos para pasar valores entre objetos con variables locales, es entre la "Busqueda" y su correspondiente "Formulario" para introducir los valores de búsqueda, siempre y cuando, las variables esten declaradas con el mismo Identificador en los 2 objetos.

un saludo
José Luis
http://www.ascsl.com


([N1] comercial) #8

Hola, perdonar que meta baza, pero me gustaría proponer una cosa, a ver que problema le veis, en todas las aplicaciones que conozco ¿? existen tablas de parámetros, variables de uso general (públicas) etc, ¿cual es el problema de usar un on_init y cargar una tabla en memoria con estas cosillas, parámetros generales, opciones de usuario, variables de uso público (incluso con persistencia) etc. ?. Por favor poner las pegas que veais, gracias.

Saludos.
Miguel.

PD:Esperando la super-rejilla, como un poseso. :-).


([N1] Giuseppe::Komenco) #9

@comercial
.
Si no recuerdo mal, creo que era sobre todo por un bug que causaba que la escritura de variables globales a disco fuera leeeeeeentooooooooooo


([N1] Synetic) #10

@pepeto
por añadir, también en los tubos, con las variables declaradas igual, obtiene los valores.

@cjribera.yahoo
Sería muy interesante publicaras el soporte si te dan alguna solución sin uso de variables globales.
Otro problema que te vas a encontrar con el uso del separador de formularios es que si actualizas datos en un formulario contenido en este, el resto de formularios no se refresca con el nuevo dato, como bien indica Pepeto en su blog. Seguro que habrá alguna manera de refrescarlo. Ahí me encuentro.

Saludos.


([N1] Velasco) #11

Buenas blanyl.

La única solución que tienes ahora es tener en el formulario "A" todos los eventos que necesites lanzar en los subformularios y desde ahí refresques los objetos de los subformularios "B" , "C" y "D"

Un saludo.


([N1] Pepeto) #12

@Comercial.Arhes2000

¡POS ESO! :D

un saludo
José Luis
http://www.ascsl.com


([N4] mittosoftware) #13

@benito.lavandeira el problema que tengo es justo con un separador de formularios, que tiene una rejilla de plurales y el registro padre es el que se edita en el formulario principal.
.
Por lo que dice Pepeto, en ese caso, no hay como usar el manejador de objetos, y justo lo que yo quiero, es cuando se termine de hacer un ABM de uno de los plurales de uno de los subformularios, que actualice muchos valores. Un par de incidencias se abrieron con 1 solo form mío que usa separadores (la 2918 y la 3009, para que verifiquen en el vBugman, y eso que creo había otra mas por ahí), así que tan culpa de mi falta de experiencia con Velneo no debe ser.
.
Terminé parchando algunas cosas con globales, el punto es que quisiera tener que no necesitarlas.
.
Espero que con la 7.9 lo de cerrar la ventana con 'X' ya este arreglado (incidencia 2055 que directamente hace imposible instalar una aplicación que requiera de marcos transaccionales complejos), mas estas incidencias, tal que con actualizaciones funcionando siempre, ya no se necesitaran varios de estos workarounds.
.
Aunque creo que aun así, quedaría pendiente el no usar globales en casos donde hay actualizaciones de origen múltiple y a múltiples tablas (que desde una misma tabla hija, se puedan actualizar X, Y o Z tabla según determinadas condiciones sacadas de una base de conocimiento, esto debe hacerse en tiempo real, al salir del subformulario y debe reflejarse refrescado en el formulario principal y en los subformularios respectivos), esperaré la 7.9 para confirmar si está todo solucionado o necesitaría plantear un nuevo soporte.


([N3] blavan) #14

Hola, cjribera, pero hombre tu comenzaste exponiendo un problema conceptual y yo comenté sobre eso, los manejadores de objetos traspasan variables locales, lo de rejillas ya te expuse que no entendia bien a que te referias.
Otra cosa es que hablemos de bugs concretos, que los hay y están expuestos, ese que comentas lo sufrí yo y creo que lo generé yo a soporte.


([N4] mittosoftware) #15

Las incidencias 2918 y el 3009 se generaron en un soporte mío con certeza, lo tengo registrado en en mis soportes (El 2055 no creo, al menos eso no me quedo claro), son referidas al bloqueo duro y actualizaciones, que terminaron obligándome a usar globales.
.
Por eso dije que es un problema conceptual, porque una herramienta debe permitirte resolver sin globales siempre, no a veces, ni casi siempre. Por eso es que dije que planeo esperar la 7.9, y ver si se soluciona todo, o necesitaré soporte adicional para descartar totalmente el uso de globales.