¿Pregunta? o ¡Afirmación!, he ahí la cuestión …
Asi es, otra de tantas decisiones que hay que tomar, y que YO mismo, como muchos otros, sobre todo de los que aprendimos con versiones anteriores de Velneo, hemos usado (y abusado) de ellas.
V7 es otra cosa, y a veces, nos empeñamos en decir que algo no funciona cuando en realidad somos nosotros los que hacemos un mal uso, o uso incorrecto de los elementos que tenemos a nuestar disposición, y uno de ellos es la Variable global.
Y ya puestos, el título del post incita a cuestionar si el uso de las Variables globales es recomendable o no. Y cada uno tendrá su propia respuesta y estara en la certeza de que sus aplicaciones son las mejores que hay y que todo lo que hace lo hace bien, igual que yo, por supuesto. No estaba criticando a nadie, yo me incluyo en ese paquete.
Pero es bueno reconocer cuando uno se equivoca, porque ello nos permite mejorar y poner los medios para evitar esa y otras equivocaciones similares en el futuro.
La respuesta a esa Pregunta/Afirmación es, por mi parte, una rotunda ¡AFIRMACIÓN!, que voy a escenificar con un sencillo ejemplo, que me temo, somos muchos los que hemos abusado de el (aunque solo puedo confirmar mi experiencia).
Tenemos una variable global “$BC_EJERCICIO@proyecto.dat” y como era costumbre adquirida, al cambiar a V7, esa costumbre paso a ser “un vicio”, y lejos de preguntarnos si era la forma correcta de hacerlo, la usamos y nos autoconvencimos de que debia ser asi.
Tenemos una Búsqueda de la tabla “Facturas”, que es, multiejercico, para este ejemplo, y en la búsqueda usamos un Índice por el campo #BC_EJERCICIO (Ejercicio) para mostrar unicamente las facturas del ejercicio actual.
A la búsqueda le incluimos un componente por el Índice “BC_EJERCICIO”, correposdiente al campo #BC_EJERCICIO, con resolución de la “Parte izquierda” y en el contenido, le indicamos directamente la Variable global: $BC_EJERCICIO@proyecto.dat
Y como realizamos el ejemplo:
Desde un proceso o evento, asignamos el valor a la variable global, lanzamos la búsqueda y retornamos la lista a la salida.
Hasta aqui todo es correcto, y el ejemplo debe funcionar bien.
Pero, …. ¿se puede mejorar el ejemplo?
Pues claro que se puede, piensa en ello y mañana tendremos la solución …

