FoxPro/Visual FoxPro - Programas no funcionan en exe

 
Vista:

Programas no funcionan en exe

Publicado por ANA MARIA (8 intervenciones) el 20/01/2010 01:14:41
Hola. Trabajo con VFP9. Tengo un problema con algunos programas (prg), formularios (form) y reportes (frx) que funcionan correctamente cuando ejecuto el .exe desde la ventana de comandos pero no funcionan cuando ejecuto el programa desde el acceso directo. En general, todos los menús funcionan bien. Solamente algunos programas. Lamentablemente no dan ningún mensaje de error. Por ejemplo, hay un programa que borra los registros de una tabla y la vuelve a generar a partir de la totalización que hace de datos de otra tabla para emitir un resumen. Este programa anda muy bien "dentro" de fox pero no desde el acceso directo al exe.
Si llego a poner algún read event o clear event, inmediatamente cierra el ejecutable porque parece que los únicos read event y clear event que tolera son los que están en el programa de inicio, desde el que se convocan los menús de los distintos usuarios.
Este es un problema inesperado y ya tengo que entregar la aplicación al cliente y me preocupa más haberme jugado por VFP contra todo un grupo de gente que programa en VB. Agradeceré cualquier sugerencia. Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Programas no funcionan en exe

Publicado por Gabriel (427 intervenciones) el 20/01/2010 23:56:28
Amiga Ana Maria :

En mi caso cuando he tenido problemas quizas algo parecidos he hecho lo siguiente :

1) Ver la Informacion del Projecto que he creado con el comando MODIFY PROJECT

2) Al momento de volver a crear el archivo EXE marco la opcion de Mostrar los errores.

3) La carpeta principal que utiliza mi Sistema la renombro y copio todos los archivos a una nueva carpeta con el fin de determinar que archivo pudiera estar faltando.

4) Verifico el programa principal del Sistema Ej. INICIO.PRG en la parte donde establezco las rutas de acceso a cada modulo del sistema ya sea utilizando los comandos SET DEFAULT TO ó SET PATH TO...

Bueno amiga cuanlquir novedad la comunicas por este foro...

Saludos,

Gabriel
(Lima-Perú)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Programas no funcionan en exe

Publicado por xx (378 intervenciones) el 23/01/2010 01:32:11
Estoy seguro que FOXPRO no es responsable del problema, deberias dar mas datos sobre tu programa, pero te comento que solo un bucle READ EVENTS por vez debe ejecutarse y debe haber un CLEAR EVENTS al cerrar el formulario principal, lo normal es que exista un PRG principal y este llame al formulario principal DO FORM y a continuacion exista un READ EVENTS y el CLEAR EVENTS debe estar en algun metodo del formulario principal como por ejemplo THISFORM.RELEASE(), deberias exponer tambien los sintomas es decir si tienes un formulario y el evento THISFORM.INIT() devuelve FALSE este jamas se cargara ni mostrara (sintomas como esto ayudan a determinar el problema), espero haber ayudado y espero llegues a tiempo con tu projecto
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Programas no funcionan en exe

Publicado por ANA MARIA (8 intervenciones) el 24/01/2010 13:58:27
A Gabriel y a XX, muchas gracias. Efectivamente, hay un solo bucle Read/Clear events en el programa principal, que es el que declara variables públicas, setea todo lo que hay que setear (incluyendo el path), valida las claves de los usuarios y los manda a sus respectivos menús de operación. Eso funciona bárbaro. Los problemas que daban algunos formularios los solucioné rehaciéndolos con el asistente de formularios. Algo hacía mal la programadora porque a FOXPRO le funcionan bien, dentro y fuera del EXE. El problema con el prg que arma una tabla a partir de la totalización de otra, todavía no lo puedo resolver cuando ejecuto el proyecto desde el ícono del escritorio, aunque sí lo hace dentro de fox. Es un programa sencillísimo. Aquí va el cuerpo principal:
*** Totalización de Salarios ***
CLOSE all
USE ".\resalario" EXCLUSIVE
DELETE ALL
PACK
CLOSE ALL
m.legajo=SPACE(8)
m.esposa=0
m.hijos=0
m.hijosdis=0
m.hijos4=0
m.famnum=0
m.escprim=0
m.escsec=0
m.mvpi=0
USE ".\salario" IN 1 ORDER legajo
USE ".\resalario" IN 2
SELECT salario
GO top
DO WHILE !EOF()
DO case
CASE m.legajo=""
DO limpia
m.legajo=salario.legajo
DO carga
CASE legajo=m.legajo
DO carga
CASE legajo#m.legajo
IF (m.hijos+m.hijosdis)>=3
m.famnum=m.famnum+1
ENDIF
mrec=RECNO()
SELECT resalario
APPEND BLANK
GATHER memvar
SELECT salario
GO mrec
DO limpia
m.legajo=salario.legajo
DO carga
ENDCASE
SKIP
ENDDO
CLOSE ALL
El \. lo puse por las dudas no estuviera direccionando bien el home directory, pero no mejoró ni empeoró nada. Después están todos los modulitos que se mencionan pero no hacen otra cosa que totalizar con distintos parámetros. Y es todo. Nada que no pueda explicarle a mi abuela, como diría Einstein. Pero cuando lo ejecuto desde fuera de fox, resalario aparece vacío.
Por último, llevo mucho programando en fox (desde la época del DOS) e hice maravillas con él con sólo la ejecución de un fxp de inicio, pero es la primera vez que quiero hacer un ejecutable con todas las de la ley y un instalador con Instant Shield para instalarle a un cliente (por la rencilla que tengo con los de VB). Así que sé que no es responsabilidad de FOXPRO. Algo estoy haciendo mal. Muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Programas no funcionan en exe

Publicado por xx (378 intervenciones) el 24/01/2010 19:36:48
No se entiende que es lo que hace, te recomiendo postear la estructura de tus tablas y que es lo que deseas realizar con ellas (bien detallado) para poder ayudarte.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Programas no funcionan en exe

Publicado por xx (378 intervenciones) el 25/01/2010 13:00:58
Probaste setear INICIAR EN: de tu acceso directo con el directorio que aloja tu EXE?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar