Re: Incremental Search in BROWSE
Posted: Fri Jun 27, 2014 3:17 pm
Oh, sorry I forgot. The latest version (3.3.0 32bit, patch3, ANSI)
Exclusive forum for HMG, a Free / Open Source xBase WIN32/64 Bits / GUI Development System
http://hmgforum.com/
Code: Select all
#include <hmg.ch>
function main()
local aHeaders:={"Nummer","Trk","Artiest","Titel"}
local aWidths:={65,35,248,249}
local acFields:={"MUSIC->NR","MUSIC->DTR","MUSIC->ARTIEST","MUSIC->TITEL"}
local cSMsg:="Type to Search - Click on title to Change Sort Order - F2 to clear search"
public cStr:="", cVal
REQUEST DBFNSX
SET BROWSESYNC ON
SET DATE FRENCH
dbUseArea(.T.,"DBFNSX","MUSIC",.F.)
OrdSetFocus(5)
dbGoTop()
DEFINE WINDOW MainForm;
AT 90,90;
WIDTH 645;
HEIGHT 403;
TITLE "MiniBrowser";
ON RELEASE Closedb();
MAIN
ON KEY F2 ACTION ResetSearch()
DEFINE STATUSBAR
STATUSITEM cSMsg
CLOCK
DATE
STATUSITEM " " WIDTH 15 //In Windows 7, year is hidden by corner
END STATUSBAR
END WINDOW
@ 5,5 BROWSE br_Main;
OF MainForm;
WIDTH 620;
HEIGHT 332;
HEADERS aHeaders;
WIDTHS aWidths;
WORKAREA MUSIC;
FIELDS acFields;
ON HEADCLICK { {||Resort(5)} , {||MsgInfo('No Sort Key')} , {||Resort(1)},{||Resort(2)}};
JUSTIFY { BROWSE_JTFY_LEFT,BROWSE_JTFY_RIGHT,BROWSE_JTFY_LEFT,BROWSE_JTFY_LEFT}
CREATE EVENT PROCNAME QuickSearch() HWND MainForm.br_Main.HANDLE MSG WM_CHAR
MainForm.Center
MainForm.Activate
return NIL
//------------------------
function ResetSearch()
cStr:=""
MainForm.Statusbar.Item(1):=cStr
return NIL
//------------------------
function QuickSearch()
local ch, hWnd
ch := HMG_GetLastCharacter(@hWnd)
if asc(ch) = 8
cStr:=if(len(cStr)>1,left(cStr,len(cStr)-1),"")
else
cStr:=cStr+upper(ch)
endif
if !DBSEEK(cStr,.T.)
DBSKIP(-1)
endif
HMG_CleanLastCharacter()
MainForm.Statusbar.Item(1):=cStr
MainForm.br_Main.Value:=recno()
MainForm.br_Main.Setfocus
return 1
//-----------------------
function Resort(nNum)
Ordsetfocus(nNum)
cStr:=""
MainForm.Statusbar.Item(1):=cStr
Mainform.br_Main.Refresh
return Nil
//-----------------------
function Closedb()
DBCloseAll()
Return NIL
//-----------------------
Here is the code & snippet of DB!Please attach some piece of database to allow testing it!
Good jobClip2Mania wrote: Here is the code & snippet of DB!
Code: Select all
function OknoSzybkaTabelaTowarow_AktualizujPodglad
OknoTabTowarow.T_DodatOpis.Value := towary->DodatOpis
if lPodgladZdjecia
cOkno := "OknoTabTowarow"
if IsControlDefined(IM_ZdjecieTowaru, OknoTabTowarow)
if file(cFolderZdjecTowarow+"T"+towary->towar+".jpg")
SetProperty(cOkno,"IM_ZdjecieTowaru","Picture",cFolderZdjecTowarow+"T"+towary->towar+".jpg")
elseif file(cFolderZdjecTowarow+"T"+towary->towar+"_1.jpg")
SetProperty(cOkno,"IM_ZdjecieTowaru","Picture",cFolderZdjecTowarow+"T"+towary->towar+"_1.jpg")
else
SetProperty(cOkno,"IM_ZdjecieTowaru","Picture",'RC_BRAKZDJECIA')
endif
endif
endif
return
Code: Select all
function OknoSzybkaTabelaTowarow_ZwrocKodTowaru
local StObsBledu
local lKontynuacja := .t.
ZwrotnyTowar := OknoTabTowarow.B_Towary.Value
towary->(DBGoTo(ZwrotnyTowar))
if !empty(cFunkcjaZapisuPozycji)
lKontynuacja := &cFunkcjaZapisuPozycji
endif
if !lKontynuacja
OknoTabTowarow.Release
else
OknoTabTowarow.T_Wyszukaj.Value := ""
//OknoTabTowarow.SetFocus
endif
return
Code: Select all
function ZmienKluczTowaru
param NrKlucza
DbSetOrder(NrKlucza)
SetProperty(ThisWindow.Name, "B_Towary","Value" ,towary->(recno()) )
DoMethod(ThisWindow.name, "B_Towary","Refresh")
DoMethod(ThisWindow.name, "T_Wyszukaj","SetFocus")
return .t.