Por favor si alguien me puede ayudar
Parto de un browse principal de articulos de inventario con una barra de iconos, uno de los cuales filtra la base de datos.
Cuando en el dialogo de establecer las opciones para el filtro tecleo parte del codigo y pulso F2, siempre me manda al primer registro en el browser, no en el mas cercano o el que busco si meto el modelo de inventario completo.
Que es lo que estoy haciendo mal ?
De antemano gracias por su ayuda
Saludos
Code: Select all
# include "Fivewin.ch"
# include "Inkey.ch"
STATIC oBar
FUNCTION CamPre()
LOCAL oDlg, oIco
LOCAL olbx
USE fam INDEX famcve NEW
USE cat INDEX catmod, catfm NEW
DEFINE ICON oIco FILENAME "logo3.ico"
DEFINE DIALOG oDlg TITLE "Mantenimiento de artículos" RESOURCE "ActArt" ICON oIco
oDlg:lHelpIcon := .F.
REDEFINE LISTBOX olbx ;
FIELDS cat->modelo, cat->desc1, cat->famil, cat->unidad, ;
cat->moneda, TRANSFORM(cat->prepub,"99,999,999.99"), ;
TRANSFORM(cat->premin,"99,999,999.99") ;
HEAD "MODELO", "DESCRIPCION", "LINEA", "UNIDAD", "MONEDA", "PRECIO PUB.", ;
"PRECIO MIN." ;
FIELDSIZES 119, 322, 62, 66, 70, 90, 90 ;
ALIAS "cat" ;
ID 101 ;
OF oDlg ;
ON LEFT DBLCLICK( Procesa( oLbx ) )
oLbx:aJustify = { .f., .f., .f., .f., .f., .t.,.t. }
oLbx:cToolTip := "Seleccione con doble click o con Enter"
oLbx:bKeydown := {|nKey| IIF(nKey = 13, Procesa( Olbx ),)}
oLbx:nClrForeHead = nRGB(255,255,255)
oLbx:nClrBackHead = nRGB(177,83,197)
ACTIVATE DIALOG oDlg CENTERED ;
ON INIT barra( oDlg, oLbx )
CLOSE DATABASES
RETURN NIL
// --------------------------------------------------------
STATIC FUNCTION BARRA(oDlg, oLbx)
DEFINE BUTTONBAR oBar SIZE 32,32 3DLOOK OF oDlg
DEFINE BUTTON OF oBar ;
FILENAME "filtro.bmp" ;
ADJUST ;
NOBORDER TOOLTIP "Filtra" ;
ACTION filtra()
--------
--------
RETURN NIL
//-------------------------------------------------------------------//
STATIC FUNCTION Filtra()
LOCAL oDlg, oBAce
LOCAL oGet1, oGet2, oGet3
LOCAL cCodIni, cCodFin, cFamil
cCodIni := cCodFin := SPACE(16)
cFamil := SPACE(5)
DEFINE DIALOG oDlg RESOURCE "CamPre"
oDlg:lHelpIcon := .F.
REDEFINE GET oGet1 VAR cCodIni ID 101 OF oDlg update ;
PICTURE "@!"
oGet1:bGotFocus := {||SetKey( VK_F2, { || VerCodIni( oGet1, @cCodIni, oDlg ) })}
oGet1:bLostFocus := {||SetKey( VK_F2, nil )}
-------
-------
ACTIVATE DIALOG oDlg CENTERED
RETURN NIL
//-------------------------------------------------------------------//
STATIC FUNCTION VerCodIni( oGet1, cCodIni, oDlg )
LOCAL oDlgIni, oLbx
SELECT cat
cat->(DBSEEK(TRIM(cCodIni)))
DEFINE DIALOG oDlgIni TITLE "Catálogo de artículos" RESOURCE "BrwCat"
oDlgIni:lHelpIcon := .F.
REDEFINE LISTBOX olbx ;
FIELDS cat->modelo, cat->desc1, ;
cat->famil ;
HEAD "MODELO", PADC("DESCRIPCION",45," "), ;
"LINEA" ;
ALIAS "cat" ;
ID 101 ;
OF oDlgIni ;
ON LEFT DBLCLICK( cCodIni := cat->modelo, oGet1:varput(cCodIni), ;
oGet1:refresh(),oDlgIni:End() )
oLbx:bKeyDown := {|nKey| ;
IIF(nKey = 13,(cCodIni:=cat->modelo,oGet1:varput(cCodIni), ;
oGet1:refresh()),),oDlgIni:End() }
oLbx:cToolTip := "Seleccione con Enter o con Doble click"
ACTIVATE DIALOG oDlgIni CENTERED
KEYBOARD CHR(13)
RETURN NIL
//-------------------------------------------------------------------//