Me explico:
Tengo una funcion que tiene unas instrucciones al comienzo y unas instrucciones al final, que siempre son las mismas.
function xxx
local a1,a2,a3,etc
Lo unico que cambia es un conjunto de instrucciones que iria en el medio.
Mi pregunta es si yo puedo hacer algo como usar una funcion de cabecera, e incluir una parte de codigo como si fuera parte de la misma funcion. (es decir que no me toque volver a declarar variables ni nada por el estilo, sino que todo lo que contenga sea como de la funcion principal)
algo asi como usar un include
function xxx1 //abro mi funcion para empezar a trabajar
local a1,a2,a3
bla bla bla
abro bases de datos
bla bla bla
//aqui quiero incluir un pedazo de codigo que me reconozca todo lo hecho en xxx1 sin tener que enviarle parametros, ni declarar las variables como públicas
include codigo01
aqui cierro mi funcion
bla bla bla
cerrar base de datos
bla bla bla
return(.t.)
inicio de codigo01
//aqui trabajo como si lo estuviera haciendo en xxx1
?a1
bla bla bla
?a2
fin de codigo01
voy a especificar un poco mas con otro ejemplo bien pequeño:
Por ejemplo tengo la funcion f1 que me recibe un parametro que me indica que codigo utilizar y otros dos parametros que son los que deberia utilizar el codigo uincluido
function f1(p1,p2,p3)
local a1,a2,a3
a1:=1
a2:=6
do case
case p1==1
include cod001
case p1==2
include cod002
endcase
return(.T.)
cod001
a3:=p2+p3
fin cod001
cod002
a3:=p3-p2
Aqui normalmente, para trabajar con p3 y p2 me tocaría enviarselos a cod001 y a cod002 tambien como parámetros o hacer una declaracion private o public, que es justamente lo que quiero evitar
Es un ejemplito breve para explicar lo que quiero lograr, pero en la vida real tengo funciones bastante largas y con muchos parámetros. Es por eso que no quiero tener que manipular mas parámetros.
Alguna sugerencia ??
Gracias de antemano