Problema pasando datos de un form a otro. VFP 9 SP1

Buenos días amigos expertos, estoy desarrollando una aplicación en VFP 9, SP1 y debo realizar una búsqueda en un text en un formulario llamado agregar... Mi idea funciona, al darle ? Al text de nombre t01 abre otro formulario llamado búsqueda donde puedo realizar la búsqueda por algún criterio dado (cedula o nombre o instituto). Esta búsqueda sql se realiza super bien y envía los datos a un list llamado l01. Al darle doble clic al valor que quiero se cierra el formulario búsqueda y me envía sin problemas el numero de cedula para modificar sus datos... Todo funciona de maravilla cuando estoy trabajando desde Visual Fox Pro, pero a lo que genero el ejecutable y el app, corre el formulario agregar, al darle ? Me abre búsqueda, realiza la búsqueda por mi criterio especial pero al darle doble clic al list me bota el siguiente error "no se encuentra el objeto AGREGAR". Cabe destacar que el sistema se encuentra en C:sistema\ y los formularios se encuentran en C:sistema\formularios\... Acá les coloco algo del código por partes
Parte del inicio
SET DEFAULT TO C:\sistema\
DO FORM formularios\menu.scx
Load de agregar (conectar es mi prg para conexión a MYSQL)
CLOSE DATABASES
SET DEFAULT TO "C:\dscvsl\"
conectar()
thisform.AutoCenter= .T.
SET DELETED ON
SET DECIMALS TO 2
SET DATE BRITISH
EXISTE=0
Evento Keypress del t01 en el formulario agregar
IF LASTKEY()=13
IF thisform.t01.Value="?"
DO FORM formularios\búsqueda
endif
ENDIF
Load del formulario búsqueda
CLOSE DATABASES
SET DEFAULT TO "C:\dscvsl\"
conectar()
thisform.AutoCenter= .T.
SET DELETED ON
SET DECIMALS TO 2
SET DATE BRITISH
EXISTE=0
Evento dobleclic de la lista l01 en el formulario búsqueda
agregar.t01.value=alltrim(thisform.l01.list(thisform.l01.listindex,1))
thisform.Release
Repito, cuando trabajo directamente desde VFP todo funciona excelentemente pero cuando lo cierro y abro el EXE sencillamente no me envía los datos del l01 en el form búsqueda a agregar si no que me sale el error antes comentado ("no se encuentra el objeto AGREGAR").
Agradecería mucho a quien me pueda ayudar, Saludos

1 respuesta

Respuesta
1

AGregar" es un Objeto o un formulario????

Disculpa no había leído bien!

Me parece que "Agregar" es el formulario desde el cual llamas Al formulario Búsqueda!

Haz lo siguiente y me dices si lo tienes así como te diré:

Verifica que el formulario tenga el mismo nombre como archivo que el mismo nombre en la propiedad "Name" del formulario, Me explico.

Supongamos que tenemos un formulario con el nombre "Prueba", este seria el nombre del archivo mas la extensión, ahora abrimos este archivo(Formulario) y le colocamos el mismo nombre en la propiedad "Name"

Nombre de Archivo: Prueba

Propiedad Name del formulario: Prueba

Buenas tardes experto... En la propiedad Name no lo tenia con el nombre del archivo pero lo cambie, guarde y genere el proyecto junto con el exe de nuevo y nada, ningún cambio...

Es extraño que no te reconozca el formulario "Agregar"!

Porqué no estableces una variable publica a la cual le asignes el valor!

Si te interesa haz lo siguiente:

Evento Keypress del t01 en el formulario agregar
IF LASTKEY()=13
IF thisform.t01.Value="?"
Public n_Valor
n_Valor=''&&Si el valor que se le asigna es Carácter de lo contrario seria n_Valor=0
DO FORM formularios\búsqueda
If !empty(n_Valor)
*Código a ejecutar*
endif
endif
ENDIF
*************
Evento dobleclic de la lista l01 en el formulario búsqueda coloca esto:
n_Valor=alltrim(thisform.l01.list(thisform.l01.listindex,1))

Hice lo que me dijiste y funciona pero siempre y cuando le de enter nuevamente al t01 del form agregar... Me explico, le doy "?" + enter y me carga el formulario búsqueda... Selecciono de la lista el item que deseo, se cierra el formulario búsqueda y queda solo agregar pero en el t01 sigue diciendo "?"... debo darle enter para que me de el valor que seleccione para la variable publica... Funciona pero hay alguna forma de que lo haga de una vez?

Disculpa se me paso por alto algo:

Evento Keypress del t01 en el formulario agregar
IF LASTKEY()=13
IF thisform.t01.Value="?"
Public n_Valor
n_Valor=''&&Si el valor que se le asigna es Carácter de lo contrario seria n_Valor=0
DO FORM formularios\búsqueda
If !empty(n_Valor)
Thisform.t01.value=n_Valor
*Código a ejecutar*
endif
endif
ENDIF
*************
Evento dobleclic de la lista l01 en el formulario búsqueda coloca esto:
n_Valor=alltrim(thisform.l01.list(thisform.l01.listindex,1))

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas