¿Cómo "simular" un "call variable" en Visual Basic y C/SQL?
En estos lenguajes no existe la posibilidad, como en FoxPro y Visual FoxPro, de hacer "call variables" (ejemplo: call(&Programa)). El modo de programarlo es sustituir el call(&programa) por programas o rutinas que implementen ...
En estos lenguajes no existe la posibilidad, como en FoxPro y Visual FoxPro, de hacer "call variables" (ejemplo: call(&Programa)).
El modo de programarlo es sustituir el call(&programa) por programas o rutinas que implementen el DO CASE ("feature" disponible a partir de GeneXus 6.1).
Por ejemplo
DO CASE
CASE &Programa = "pgmname1"
Call( pgmname1, ...)
CASE &Programa = "pgmname2"
Call( pgmname2, ...)
...
OTHERWISE
Msg( "Programa no existe").
ENDCASE
Depende de lo que se necesite desarrollar, pero es probable que la lógica de los "calls" sea programada en objetos que representan los dominios de llamadas. Es decir, no es recomendable programar las llamadas en cada objeto "llamador" puesto que el mantenimiento de esto es costoso, lo que si se puede hacer es un procedimiento que "encapsule" la llamada y pasarle al mismo los parámetros necesarios.
En todo caso es necesario conocer el dominio que puede tomar la variable &programa, lo cual también es necesario en el caso de Fox/VFP puesto que los programas a llamar deben incluirse en el EXE.