* Supuestos
* Tabla de busqueda: PRODUC
* Campos: Codprod (código producto) Descrip (descripción) Precio (precio)
**************************************************************************
* fORMULARIO MODAL WindowType=1, Name="FrmBuscar"
* 1 TExtBox (Text1)
* 1 Commandbutton Caption="Buscar" (Command1)
* 1 CommandGroup con 2 botones (Aceptar y Cancelar)
* 1 Control GRid (Grid1)
* FORM WindowType=1 FrmBuscar
* Evento LOAD
ADDPROPERTY(thisform,"RETORNA",NULL)
* FORM WindowType=1 FrmBuscar
* Evento Init
Thisform.grid1.RecordSource=""
* Command1 (buscar)
* Evento Click
lcBusca=(thisform.text1.Value)
IF EMPTY(lcBusca)
RETURN
ENDIF
thisform.grid1.RecordSource="" && desvinculamos el control Grid
SELECT * FROM produc WHERE descrip like [%]+lcbusca+[%] INTO CURSOR pepa readwrite
&& Alternativa: SELECT * FROM produc WHERE descrip like lcbusca+[%] INTO CURSOR pepa readwrite
&& Esto trae similares coincidiendo con el inicio del nombre buscado.
&& Crear el cursor ReadWrite, te permite indexarlo para facilitar la presentación.
IF _tally=0 && se procesó algún registro?
MESSAGEBOX("No hay similares")
RETURN
ENDIF
thisform.grid1.RecordSource="pepa"
thisform.grid1.Refresh
SELECT pepa
thisform.grid1.SetFocus
*************************************
* CommandGroup.Buttons(1) (Aceptar)
* Evento Click
**********************************
* Se crea una matriz de 5 elementos en el objeto Empty. Tal vez se necesiten más
* Esto depende de lo que se necesite devolver al form convocante.
RELEASE objEmpty
objEmpty=CREATEOBJECT("EMPTY")
ADDPROPERTY(objEmpty,"gaMat[5]","")
WITH objEmpty
.Gamat[1]=pepa.codprod
.gamat[2]=pepa.descrip
.gamat[3]=pepa.precioa
ENDWITH
thisform.retorna=ObjEmpty
thisform.Release
* CommandGroup.buttons(2) (Cancelar)
* Evento Click
************************************
Thisform.Release
* FORM WindowType=1
* Evento UNLOAD
IF USE("PEPA")
SELECT PEPA
USE
ENDIF
RETURN THISFORM.RETORNA
****************************************************
*
* Método de llamada al formulario modal de búsqueda
* En un botón
****************************************************
DO FORM ..\Forms\Frmbuscar TO objREturn
IF ISNULL(objReturn)
MESSAGEBOX("No Seleccionó nada")
ELSE
lcId=objREturn.gamat[1]
lcName=objReturn.Gamat[2]
lnPrecio=objREturn.gamat[3]
MESSAGEBOX(lcId+" "+lcName+" "+LTRIM(STR(lnPrecio,12,2)))
ENDIF