Como usar LOCATE FOR y que aparezca el numero en otro formulario

Tengo un formulario y tengo un botón llamado nuevo el cual oprimo para mandar a llamar a otro formulario que se llama nuevo el cual tecleo u numero para que verifique mediante el LOCATE FOR si existe en la base de datos todo marcha bien pero cuando un numero no esta repetido quiero que ese numero se agregue al otro formulario en ese momento y no lo hacer se agrega después que vuelvo a oprimir nuevo, me podrán ayudar, gracias

1 Respuesta

Respuesta
1

Un placer saludarte. Disculpa la tardanza! Estuve fuera de la ciudad. A ver... viene un poco enredado je je! Comprendo que llamas a un form secundario par buscar un dato con locate for. Pero explicame como va esto:

"cuando un numero no esta repetido quiero que ese numero se agregue al
otro formulario en ese momento y no lo hacer se agrega después que
vuelvo a oprimir nuevo"

¿Se agregue al otro formulario? ¿Al principal? ¿Qué se agregue a la tabla o que se presenten los datos en el form principal?

Explicame un poco mejor como va la cosa para poder ayudarte con mucho gusto! :D :D :D :D

Un abrazo!

Desde Managua, Nicaragua!

Ravenn :D :D :D

mira, te explico, en un formulario tengo el botón nuevo y tiene un textbox el cual tiene programado Do Form "dirección" mando a llamar al formulario verdad y después

thisform.texto1.value = hola quiero que me muestre el valor en ese textbox

en el formulario nuevo tengo igual un botón y text el cual vienene programado

select "tabla"

locate for (tabla.campo = textbox)

hola = thisform.texto1.value

quiero que ese numero de forma automática me lo registre en el otro formulario para poder guardar los registros, espero respuesta gracias

Espero respuesta amigo o un ejemplo, gracias

Mmm ya veo. Según entiendo (corrígeme si me equivoco), quieres llamar un form secundario de búsqueda, buscar un valor en la tabla y que ese valor retorne al text1 de tu formulario principal para poder guardarlo. ¿Es así? Espero! :) :)

Bien. La cosa va así: la búsqueda en el form, según veo esto:

select "tabla"
locate for (tabla.campo = textbox)
hola = thisform.texto1.value

es sobre la tabla con locate for. Buena elección. Un comando sencillo, ágil y limpio. Te felicito por no caer en el error de aplicar un SET FILTER. :) No obstante, es mejor que el resultado lo presentes en algún text porque de aquí tomaremos el dato para retornar, así:

SELECT "tabla"

GO TOP

**--Buscamos
LOCATE FOR tabla.campo = textbox

**--Si hay resultados:

IF FOUND()

**--Mostramos los resultados en un text

THISFORM.Text2.Value = tabla.campo

THISFORM.Text2.Refresh

**--No hay resultados

ELSE

MESSAGEBOX("No hay resultados.")

ENDIF

**--//

Esta mejor así. Como ves, el dato a buscar lo cargamos en el text2. Bien... cuando ya tenes el resultado y es lo que buscabas, toca retornar el valor desde ese form secundario al principal. Para eso, la cosa va así:

1- En el form secundario, donde haces la búsqueda, vas a crear una nueva propiedad llamada lretval y un método llamado valorret. Esto lo podes hacer yendo al form en modo de diseño, en el menu Form están las opciones "new method", "new property".

2- En el método valorret, escribí esta linea de código:

**--Cargamos el valor a retornar (text2)

THISFORM.lretval = THISFORM.Text2.Value

**--

THISFORM.Release

**--//

3 - En el evento UNLOAD del form, coloca:

RETURN THISFORM.lretval

**--//

4 - En el form principal, en el botón donde haces click para llamar al form secundario de búsqueda, coloca un código como este:

**--

DO FORM "dirección.scx" TO RetValue

**--Verificamos que recibimos el valor

MESSAGEBOX(RetValue)

**--Asignamos el valor a un text

IF NOT EMPTY(RetValue)

THISFORM.Text1.Value = RetValue

THISFORM.Refresh

ENDIF

**--//

**--Ya podes ver el valor retornado desde el form secundario al principal y podes guardarlo o lo que sea :D

El FORM SECUNDARIO debe tener establecidas las propiedades:

**-

WindowType = 1 - Modal

ShowWindow = 1

Y ya debería funcionar! Proba paso a paso y si te da problemas me avisas! :)

Cualquier cosa, estoy a la orden!

Saludos!

Desde Managua, Nicaragua!

Ravenn :D :D :D

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas