Saber la ruta completa del form actual.

349 views
Skip to first unread message

Martín Lezama

unread,
Nov 8, 2013, 3:42:58 PM11/8/13
to publice...@googlegroups.com
Gente, tengo un problema, ignoro cómo saber la ruta completa del form en el que estoy parado.

Resulta que yo genero mis listados en archivos DBF, para no tener problemas cuando voy al cliente si un listado falla. En lugar de tener que modificar el código fuente y compilar, simplemente accedo a la tabla en donde está el listado, y modifico el SELECT directamente desde el campo memo. Ahora bien, cada vez que modifico dichos listados, en el sistema se actualizan si yo recuerdo cambiarles el parámetro de la fecha de última actualización.

Yo tengo ganas de hacer que se actualicen automáticamente, o sea, sabiendo la fecha de última modificación del formulario (con la función FTIME()), si veo que los listados que se ejecutan a través de ese form tienen una fecha anterior, actualizo todos los selects. Pero para utilizar FTIME() preciso saber exactamente la ruta del form en el que estoy parado.

Podría hacerlo por "deducción", digamos... todos mis forms del módulo sueldos tienen el prefijo "sue" adelante, todos los de tesorería se llaman "tes" y así... pero quisiera directamente una función que me diga la ruta exacta del archivo del form, para saber su DATETIME().

Sé que lo debe de tener en algún lado, pero estoy buscando entre las funciones SYS() y todavía no encuentro ninguna.

Saludos.

Martín Lezama.

Ricardo Pina

unread,
Nov 8, 2013, 5:15:06 PM11/8/13
to Grupo VFP
Hola Martin
 
Revisa
 
SYS(16)
FULLPATH()
SYS(2014)
 
a ver cuál se adecúa más a tu necesidad
 
Saludos
--
            

                   Ricardo Pina

Desarrollo y Servicios Informáticos

                  Profesionales
               www.dsip.com.ar

 

 

Martín Lezama

unread,
Nov 8, 2013, 5:22:00 PM11/8/13
to publice...@googlegroups.com
Claro, pensé en SYS(16), a ver si me devolvía el nombre del form, dado que devuelve el nombre del programa en ejecución.

Mi duda partía de si internamente el VFP no convierte ese form en un SPR (como lo hacía Fox para Windows antes), ahora voy a probar.

Slds.

Fernando D. Bozzo

unread,
Nov 8, 2013, 6:28:36 PM11/8/13
to publice...@googlegroups.com
Hola Martín:

Lo podés obtener con SYS(1271, THISFORM)


Saludos.-

HernanCano

unread,
Nov 8, 2013, 10:34:59 PM11/8/13
to publice...@googlegroups.com
Hola, Martín.
FoxPro para Windows no convertía internamente los form en SPR: uno mismo los tenía que convertir.
VFP tampoco los convierte internamente: los ejecuta directamente.

La respuesta a la pregunta es la que te da Fernando.

Ricardo Pina

unread,
Nov 9, 2013, 8:56:57 AM11/9/13
to Grupo VFP
Nunca había utilizado el SYS(1271,object), desconocía que devuelve el path.
 
Saludos

Martín Lezama

unread,
Nov 14, 2013, 12:17:47 PM11/14/13
to publice...@googlegroups.com
Muchas gracias, Fernando!!!

Exactamente eso buscaba, chapeau! Me funcionó de maravillas.

Martín Lezama

unread,
Nov 14, 2013, 12:47:19 PM11/14/13
to publice...@googlegroups.com
Gracias a vos también, Hernán... me inclinaba a la duda haber visto archivos .MPR (compilados de menú) en Visual FoxPro, por eso lo desconocía. ;-)

Efectivamente, lo de Fernando me funcionó de perillas. Muchas gracias a todos, siempre al pie del cañón!!!

Martín Lezama

unread,
Nov 22, 2013, 8:04:05 PM11/22/13
to publice...@googlegroups.com
Como diría Darín en "Un cuento chino", otra vez me faltan clavos jajajaja.

La función funciona perfectamente. Ahora, ¿qué sucede? Que cuando trato de hacer SYS(1271, ThisForm) adentro de mi formulario listador, explota. Me dice que no hay memoria suficiente para ejecutar la operación.

Estoy buscando algo a nivel API de Windows para ver si lo puedo resolver por ahí, si no, voy a tener que apelar a la lógica (o sea, conociendo el árbol del sistema, hacer que a ese form lo vaya a buscar a un lugar preindicado). Garrón, pero bueno...

Igualmente, muchas gracias por el asesoramiento, gente. Pasa que evidentemente, el form está a rebalsar de objetos.

Martín.
Reply all
Reply to author
Forward
0 new messages