Hola alfredogarci

Tengo un problema de carácter urgente, que paso a detallar.
Tengo una función creada en un prg. Lo cual consiste en una lectura de tablas y según criterios
De un usuario graba a un archivo con el fin de crear un menú dinámico acordes a sus perfiles. La creación del archivo.
Como deben saber las funciones básicas de lectura -escrituras son estas.
Xfile= FCREATE("menu.mpr")
Y el insertado de línea al archivo es
fwrite(xfile,"dato a introducir") y para cerrarlo
FCLOSE(xfile)
Cuando corro el sistema bajo el administrador de proyecto no tengo ningún problema anda perfecto, cuando lo compilo y creo el ejecutable y teóricamente tendría que tener el mismo resultado que cuando estoy en el administrado de proyecto es ahí cuando se me presenta el dilema, me crea el archivo menu.mpr pero cuando llega a instrucción de llamado "do menu.mpr with this,.t." me dice que el archivo
Menu.mpr no existe, entonces probé setiendo el path, localizando el archivo con locflie("menu.mpr")
Y lo encuentra pero cuando quiere ejecutarlo me da el mismo error, si ustedes se le ocurre una solución estaría muy agradecido ya que me seria de gran utilidad.

2 Respuestas

Respuesta
1
Coloca una instrucción como esta en el programa principal:
Debes especificar en el programa principal que la ruta de acceso se adapte al lugar de ejecución del programa.
Para ello deberás poner un código como este:
** Buscar Directorio de Instalación, en donde se está ejecutando el programa
Dir_Ruta = Sys(16)
Dir_Ruta = SubStr(Dir_Ruta,1,Atc('\',Dir_Ruta,Occurs('\',Dir_Ruta)))
** Buscar Directorio de Instalación, en donde se está ejecutando el programa
Dir_Ruta = SYS(16)
Dir_Ruta = SUBSTR(Dir_Ruta,1,ATC('\',Dir_Ruta,OCCURS('\',Dir_Ruta)))
** Definir rutas de acceso
SET PATH TO (Dir_Ruta + 'Formul,Librerias,Reportes,Datos,BitMaps,Programs,Ayuda')
** Definir directorio predeterminado
SET DEFAULT TO SUBSTR(Dir_Ruta,1,LEN(Dir_Ruta)-1)
Esto te evitará que el sistema no encuentre un archivo dentro de tu aplicación, además verifica que el menu. Mpr no esté empaquetado dentro del ejecutable ya que si es así no encontrará el archivo debido a que lo busca físicamente en el disco duro.
Respuesta
1
Si quieres cargar menús personalizados lo que puedes hacer es llevarlo a un campo memo y luego ejecutarlo de la siguiente manera:
cMacro = tabla.cCampoMemo
* Para ejecutar esta macro seria
&cMacro
No lo he probado pero me gustaría que lo comentes para poder tenerlo en cuenta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas