FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for Harbour/xHarbour Search on a Xbrowse
Posts: 7318
Joined: Thu Oct 18, 2012 07:17 PM
Search on a Xbrowse
Posted: Thu Feb 24, 2022 09:26 AM
If insert the get and the combobox on a buttonbar then not run ok the search on xbrowse
while combobox run correclty.







I use customer.dbf

the test
Code (fw): Select all Collapse
#include "fivewin.ch"

聽REQUEST DBFCDX
聽 聽 #define 聽TXT_COLORE1 nRgb( 245,244,234)
聽 聽 #define 聽TXT_COLORE2 nRgb(233,229,206)
聽 聽 #define 聽TXT_COLORE3 RGB( 238,236,219 )
聽 聽 #define 聽TXT_COLORE4 nRgb(218,214,179)


Static lToolbar

function Main()

聽 聽 聽 聽local oWnd, oBar, oMenu
聽 聽 聽 聽RddSetDefault( "DBFCDX" )
聽 聽 聽


聽 聽 聽 聽DEFINE WINDOW oWnd MDI TITLE "Test"
聽 聽 聽 聽DEFINE BUTTONBAR oBar OF oWnd SIZE 100,32 
聽 聽 聽 聽DEFINE BUTTON OF oBar PROMPT "Customer" 聽 CENTER ACTION 聽Customer()
聽 聽 聽 聽ACTIVATE WINDOW oWnd
聽 聽 return nil
//-----------------------------------------------------------//

Function Customer()
聽 local oTable
聽 local oCust
聽 local aBrowse
聽 local ctitle :="Table of Customer"

聽 oCust:=Tdatabase():Open( , "Customer", "DBFCDX", .T. )
聽 oCust:SetOrder("FIRST")
聽 oCust:Gotop()

聽aBrowse 聽 聽:= { ;
聽 聽 聽 聽 聽 聽 聽 聽{ "FIRST" 聽 , 聽 "Surname" 聽 聽 聽,, 聽 140, },;
聽 聽 聽 聽 聽 聽 聽 聽{ "LAST" 聽 聽 , 聽"Name" 聽 聽 聽 聽,, 聽 150, },;
聽 聽 聽 聽 聽 聽 聽 聽{ "STREET" 聽 , 聽"Address" 聽 ,, 聽 150, },;
聽 聽 聽 聽 聽 聽 聽 聽{ "CITY" 聽 聽 , 聽"City" 聽 聽 聽 ,, 聽 150, },;
聽 聽 聽 聽 聽 聽 聽 聽{ "STATE" 聽 聽, 聽"State" 聽 聽 聽 ,, 聽 150, },;
聽 聽 聽 聽 聽 聽 聽 聽{ "ZIP" 聽 聽 聽, 聽"Zip" 聽 聽 聽 聽 ,, 聽 150, },;
聽 聽 聽 聽 聽 聽 聽 聽{ "HIREDATE" , 聽"Hiredate" 聽,, 聽 150, },;
聽 聽 聽 聽 聽 聽 聽 聽{ "MARRIED" 聽, 聽"Married" 聽 聽 ,, 聽 150, },;
聽 聽 聽 聽 聽 聽 聽 聽{ "AGE" 聽 聽 聽, 聽"Years" 聽 聽 聽 聽 ,, 聽 150, },;
聽 聽 聽 聽 聽 聽 聽 聽{ "SALARY" 聽 , 聽"Salary" 聽 ,, 聽 150, },;
聽 聽 聽 聽 聽 聽 聽 聽{ "NOTES" 聽 聽, 聽"Comment" 聽 聽 ,, 聽 150, }}

聽 聽 聽 聽 聽 聽 聽
聽 聽 聽XBrowseTable(oCust,aBrowse,ctitle,,.t.)

聽 聽 聽 聽return nil

//---------------------------------------------------------------------//
Function XBrowseTable(oDbf,aBrowse,ctitle,lShowRec,lselectMulti)
local oDlgLook,oToolBar,oFont,oBold
local oGetSearch,oSaySearch:=array(2)
local cSeek:=space(100)
local nHt 聽 聽 聽:= Int( ScreenHeight() * 0.4 )
local nWd 聽 聽 聽:= 750
local oBrwlook,oHand

DEFAULT 聽lShowRec:=.f. 聽 聽 ,;
聽 聽 聽 聽 聽lselectMulti:=.f.

聽 聽lToolbar:=.t. 聽 //On off Toolbar

聽 聽DEFINE CURSOR oHand HAND
聽 聽DEFINE FONT oFont NAME 'TAHOMA' SIZE 0,-9
聽 聽DEFINE FONT oBold NAME 'TAHOMA' SIZE 0,-9 BOLD

聽DEFINE DIALOG oDlgLook TITLE ctitle ;
聽 聽 聽 聽 SIZE nWd, nHt PIXEL ; 聽//
聽 聽 聽 聽 STYLE nOr( WS_OVERLAPPEDWINDOW ) 聽FONT oFont

IF lToolBar

聽 DEFINE BUTTONBAR oToolBar OF oDlgLook SIZE 22,22 聽TOP 聽 2015 聽NOBORDER

聽 聽DEFINE BUTTON OF oToolBar RESOURCE FWBitmap( "top2" ) 聽;
聽 聽 聽 ACTION oBrwlook:KeyDown(VK_HOME, 0) WHEN oDbf:OrdKeyCount() > 0

聽 聽DEFINE BUTTON OF oToolBar RESOURCE FwBitmap( "previous2" ) 聽;
聽 聽 聽 ACTION oBrwlook:KeyDown(VK_UP, 0) WHEN oDbf:OrdKeyCount() > 0

聽 聽DEFINE BUTTON OF oToolBar RESOURCE FWBitmap( "next2" ) ;
聽 聽 聽 ACTION oBrwlook:KeyDown(VK_DOWN, 0) 聽WHEN oDbf:OrdKeyCount() > 0

聽 聽DEFINE BUTTON OF oToolBar RESOURCE FWBitmap( "bottom2" ) ;
聽 聽 聽 ACTION oBrwlook:KeyDown(VK_END, 0) 聽WHEN oDbf:OrdKeyCount() > 0

聽 聽DEFINE BUTTON OF oToolBar 聽RESOURCE FWBitmap( "printer" );
聽 聽 聽 ACTION oBrwlook:Report() 聽WHEN oDbf:OrdKeyCount() > 0

聽 聽 聽 聽 聽 聽 聽oToolBar:bClrGrad = { | lInvert | If( ! lInvert,;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 { { 1, RGB( 244, 244, 245 ), RGB( 244, 244, 245 ) } },;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 { { 1, RGB( 145, 201, 247 ), RGB( 145, 201, 247 ) } } ) }



AEval( 聽oToolBar:aControls, { | o | o:oCursor := oHand } )




ENDIF



聽 聽IF lToolBar

聽 聽 聽@ 110,10 XBROWSE oBrwlook SIZE -2, -5 PIXEL OF oDlgLook ;
聽 聽 聽 聽 聽 DATASOURCE oDbf COLUMNS aBrowse ;
聽 聽 聽 聽 聽 AUTOSORT ;
聽 聽 聽 聽 聽 NOBORDER CELL LINES
聽 else

聽 聽 聽 聽@ 0,0 XBROWSE oBrwlook SIZE -2, -5 PIXEL OF oDlgLook ;
聽 聽 聽 聽 聽 DATASOURCE oDbf COLUMNS aBrowse ;
聽 聽 聽 聽 聽 AUTOSORT ;
聽 聽 聽 聽 聽 NOBORDER CELL LINES
聽 聽 Endif


聽 聽 WITH OBJECT oBrwlook

聽 聽 聽 聽 聽 聽 :lIncrFilter 聽 聽 聽:= .t.
聽 聽 聽 聽 聽 聽 :bOnSort 聽 聽 聽 聽 聽:= { |b,oCol| oBrwlook:Seek( "" ), ;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽oBrwlook:cFilterFld := oCol:cExpr, ;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽oBrwlook:SetFocus() }


聽 聽 聽 聽 聽 聽 :oSeek := oGetSearch
聽 聽 聽 聽 聽 聽 :CreateFromCode()
聽 聽 聽 聽 聽END

聽 聽 聽 聽oBrwlook:bRClicked := {|nRow,nCol| MenuDisplay(nRow,nCol,@ltoolBar,oBrwlook,oDlgLook) }






oDlgLook:bResized 聽:= <||
聽 聽local oRect 聽 聽 聽 := oDlgLook:GetCliRect()

聽 聽 聽 聽 聽 聽IF 聽 lToolbar
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽oBrwlook:nTop 聽 聽 聽:= oRect:nTop+24
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽oBrwlook:nLeft 聽 聽 := oRect:nLeft
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽oToolBar:Show()
聽 聽 聽 聽 聽 聽 聽 聽 聽 ELSE
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽oBrwlook:nTop 聽 聽 聽:= oRect:nTop
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽oBrwlook:nLeft 聽 聽 := oRect:nLeft
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽oToolBar:Hide()
聽 聽 聽 聽 聽 聽 聽 聽 聽 ENDIF
聽 聽 聽 聽 聽 聽 聽 聽 聽 oBrwlook:setfocus()
聽 聽 聽 聽 聽 聽 聽 聽 聽 oBrwlook:refresh()
聽 聽 聽 聽 聽 聽 聽 聽 聽 RETURN nil
聽 聽 聽 聽 聽 聽 聽 聽 聽 >




Activate Dialog oDlgLook CENTER;
聽 聽ON INIT (GetSearch(oToolBar,lToolbar,cSeek,oGetSearch,oBrwlook,oSaySearch,oFont,oBold),;
聽 聽 聽 聽 聽 聽 Eval(oDlgLook:bResized()) )
RETURN NIL

//---------------------------------------------------------------------------//
Function MenuDisplay(nRow,nCol,lToolbar,oBrwlook,oDlgLook)
聽 聽 聽local oMenu
聽 聽 聽local otoolBarCheck
聽 聽 聽MENU oMenu 聽POPUP
聽 聽 聽MENUITEM " 聽 "
聽 聽 聽SEPARATOR
聽 聽 聽 聽 MENUITEM oToolBarCheck Prompt "Show ToolBar" ;
聽 聽 聽 聽 聽 ACTION ( ltoolBar :=!ltoolBar,;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 Eval( oDlgLook:bResized),;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 oBrwLook:refresh(),;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽oToolBarCheck:SetCheck( ltoolBar ))

聽 聽 聽 聽 聽SEPARATOR
聽 聽 聽 聽 聽 ENDMENU
聽 聽 聽 聽 聽 oToolBarCheck:SetCheck( ltoolBar )
聽 聽ACTIVATE POPUP oMenu OF oDlgLook AT 聽oBrwLook:nTop+nRow, oBrwLook:nLeft+nCol
聽 聽RETURN (NIL)
//------------------------------------------------------------------------------//

Function GetSearch(oToolBar,lToolbar,cSeek,oGetSearch,oBrwlook,oSaySearch,oFont,oBold)
聽 聽IF lToolBar

聽 聽 聽 聽 @ 5, 210 SAY oSaySearch[1] Prompt "Search:" SIZE 46,24 PIXEL OF oToolBar FONT oBold 聽COLOR CLR_BLACK,RGB( 244, 244, 245 )
聽 聽 聽 聽 @ 0, 270 GET oGetSearch VAR cSeek SIZE 120,24 PIXEL OF oToolBar 聽;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 BITMAP "ELIMINA" ACTION (cSeek 聽 聽:= Space( 100 ),;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 oBrwlook:Seek( "" ),oBrwLook:refresh(),oGetSearch:refresh())

聽 聽 聽 聽 聽 聽 聽 聽 聽oGetSearch:lBtnTransparent :=.t.

聽 聽 聽 聽 聽 @ 5, 395 SAY oSaySearch[2] Prompt "Into" SIZE 40,24 PIXEL OF oToolBar FONT oBold 聽COLOR CLR_BLACK,RGB( 244, 244, 245 )
聽 聽 聽 聽 聽 @ 0, 420 COMBOBOX oBrwlook:oSortCbx VAR oBrwlook:cSortOrder;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽SIZE 100,400 PIXEL OF oToolBar HEIGHTGET 14 STYLE CBS_DROPDOWN
聽 聽 聽 聽Endif
聽 return nil
//-----------------------------------------------------------------------------------//
Since from 1991/1992 ( fw for clipper Rel. 14.4 - Momos)

I use : FiveWin for Harbour March-April 2024 - Harbour 3.2.0dev (harbour_bcc770_32_20240309) - Bcc7.70 - xMate ver. 1.15.3 - PellesC - mail: silvio[dot]falconi[at]gmail[dot]com
Posts: 8523
Joined: Tue Dec 20, 2005 07:36 PM
Re: Search on a Xbrowse
Posted: Thu Feb 24, 2022 11:30 AM

Your logic is too complex for my level of knowledge. I cannot understand or master this module.

Tu l贸gica es demasiado compleja para mi nivel de conocimiento. No puedo entender o dominar este m贸dulo.

Regards, saludos.

Jo茫o Santos - S茫o Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 7318
Joined: Thu Oct 18, 2012 07:17 PM
Re: Search on a Xbrowse
Posted: Thu Feb 24, 2022 11:45 AM
karinha wrote:Your logic is too complex for my level of knowledge. I cannot understand or master this module.

Tu l贸gica es demasiado compleja para mi nivel de conocimiento. No puedo entender o dominar este m贸dulo.

Regards, saludos.





My logic is too complex ? Do you have the last fwh Release ?

Compile it pls , I made for you a test no complex without buttonbar






Code (fw): Select all Collapse
#include "fivewin.ch"

聽 聽REQUEST DBFCDX

聽 聽 Function Test()

聽 聽 聽local cHelp
聽 聽 聽local oDlgLook,oBar
聽 聽 聽local oBrwLook
聽 聽 聽local oDbf,nRec
聽 聽 聽local aCols
聽 聽 聽local cSeek:=Space(100)
聽 聽 聽local oGet
聽 聽 聽local oFont,oBold

聽 聽 聽


聽 oDbf:=Tdatabase():Open( , "Customer", "DBFCDX", .T. )
聽 oDbf:SetOrder("FIRST")
聽 oDbf:Gotop()



聽 聽 聽 aCols 聽:= { ;
聽 聽 聽 聽 聽 聽 聽 聽{ "FIRST" 聽 , 聽 "Cognome" 聽 聽 聽,, 聽 140, },;
聽 聽 聽 聽 聽 聽 聽 聽{ "LAST" 聽 聽 , 聽"Nome" 聽 聽 聽 聽,, 聽 150, },;
聽 聽 聽 聽 聽 聽 聽 聽{ "STREET" 聽 , 聽"Indirizzo" 聽 ,, 聽 150, },;
聽 聽 聽 聽 聽 聽 聽 聽{ "CITY" 聽 聽 , 聽"Citt脿" 聽 聽 聽 ,, 聽 150, },;
聽 聽 聽 聽 聽 聽 聽 聽{ "STATE" 聽 聽, 聽"Stato" 聽 聽 聽 ,, 聽 150, },;
聽 聽 聽 聽 聽 聽 聽 聽{ "ZIP" 聽 聽 聽, 聽"Cap" 聽 聽 聽 聽 ,, 聽 150, },;
聽 聽 聽 聽 聽 聽 聽 聽{ "HIREDATE" , 聽"Assunzione" 聽,, 聽 150, },;
聽 聽 聽 聽 聽 聽 聽 聽{ "MARRIED" 聽, 聽"Sposato" 聽 聽 ,, 聽 150, },;
聽 聽 聽 聽 聽 聽 聽 聽{ "AGE" 聽 聽 聽, 聽"Et脿" 聽 聽 聽 聽 ,, 聽 150, },;
聽 聽 聽 聽 聽 聽 聽 聽{ "SALARY" 聽 , 聽"Stipendio" 聽 ,, 聽 150, },;
聽 聽 聽 聽 聽 聽 聽 聽{ "NOTES" 聽 聽, 聽"Appunti" 聽 聽 ,, 聽 150, }}


聽 聽 聽 聽DEFINE FONT oFont NAME "TAHOMA" SIZE 0,-14
聽 聽 聽 聽DEFINE FONT oBold NAME "TAHOMA" SIZE 0,-14 BOLD


聽 聽 聽 聽DEFINE DIALOG oDlgLook SIZE 880,600 ;
聽 聽 聽 聽 聽 PIXEL TRUEPIXEL RESIZABLE FONT oFont;
聽 聽 聽 聽 聽 TITLE "Test no complex for Karinha"

聽 聽 聽 聽@ 10, 165 GET oGet VAR cSeek SIZE 280,24 PIXEL OF oDlgLook

聽 聽 聽 聽 聽 聽 聽@ 40,20 XBROWSE oBrwLook SIZE -20,-20 PIXEL OF oDlgLook ;
聽 聽 聽 聽 聽 DATASOURCE oDbf COLUMNS aCols ;
聽 聽 聽 聽 聽 AUTOSORT ;
聽 聽 聽 聽 聽 NOBORDER CELL LINES

聽 聽 聽 聽
聽 聽 聽 WITH OBJECT oBrwLook
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 //:aCols[ 3 ]:cSortOrder := ""
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 // :aCols[ 4 ]:cSortOrder := ""
聽 聽 聽 聽
聽 聽 聽 聽 聽 :bClrStd 聽 聽 聽 聽 聽:= { || { CLR_BLACK, If( oBrwLook:SelectRow(), 0x88EDFB, CLR_WHITE ) } }
聽 聽 聽 聽 聽 :nRecSelColor 聽 聽 := 聽 nRgb( 245,244,234)
聽 聽 聽 聽 聽 :lIncrFilter 聽 := .t.
聽 聽 聽 聽 聽 :bOnSort 聽 聽 聽 := { |b,oCol| oBrwLook:Seek( "" ), ;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽oBrwLook:cFilterFld := oCol:cExpr, ;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽oBrwLook:SetFocus() }
聽 聽 聽 聽 聽 //
聽 聽 聽 聽 
聽 聽 聽 聽 聽 聽:oSeek := oGet
聽 聽 聽 聽 聽 :CreateFromCode()
聽 聽 聽 聽END

聽 聽 聽 聽 聽@ 10, 20 COMBOBOX oBrwLook:oSortCbx VAR oBrwLook:cSortOrder 聽SIZE 100,400 PIXEL OF oDlgLook


聽 聽 聽 聽ACTIVATE DIALOG oDlgLook CENTERED

聽 聽 聽 RETURN (NIL)



Now Add A buttonbar on Dialog and insert the controls :

Test with Buttonbar

Code (fw): Select all Collapse
#include "fivewin.ch"

聽 聽REQUEST DBFCDX

聽 聽 Function Test()

聽 聽 聽local cHelp
聽 聽 聽local oDlgLook,oBar
聽 聽 聽local oBrwLook,oToolBar
聽 聽 聽local oDbf,nRec
聽 聽 聽local aCols
聽 聽 聽local cSeek:=Space(100)
聽 聽 聽local oGet
聽 聽 聽local oFont,oBold

聽 聽 聽


聽 oDbf:=Tdatabase():Open( , "Customer", "DBFCDX", .T. )
聽 oDbf:SetOrder("FIRST")
聽 oDbf:Gotop()



聽 聽 聽 aCols 聽:= { ;
聽 聽 聽 聽 聽 聽 聽 聽{ "FIRST" 聽 , 聽 "Cognome" 聽 聽 聽,, 聽 140, },;
聽 聽 聽 聽 聽 聽 聽 聽{ "LAST" 聽 聽 , 聽"Nome" 聽 聽 聽 聽,, 聽 150, },;
聽 聽 聽 聽 聽 聽 聽 聽{ "STREET" 聽 , 聽"Indirizzo" 聽 ,, 聽 150, },;
聽 聽 聽 聽 聽 聽 聽 聽{ "CITY" 聽 聽 , 聽"Citt脿" 聽 聽 聽 ,, 聽 150, },;
聽 聽 聽 聽 聽 聽 聽 聽{ "STATE" 聽 聽, 聽"Stato" 聽 聽 聽 ,, 聽 150, },;
聽 聽 聽 聽 聽 聽 聽 聽{ "ZIP" 聽 聽 聽, 聽"Cap" 聽 聽 聽 聽 ,, 聽 150, },;
聽 聽 聽 聽 聽 聽 聽 聽{ "HIREDATE" , 聽"Assunzione" 聽,, 聽 150, },;
聽 聽 聽 聽 聽 聽 聽 聽{ "MARRIED" 聽, 聽"Sposato" 聽 聽 ,, 聽 150, },;
聽 聽 聽 聽 聽 聽 聽 聽{ "AGE" 聽 聽 聽, 聽"Et脿" 聽 聽 聽 聽 ,, 聽 150, },;
聽 聽 聽 聽 聽 聽 聽 聽{ "SALARY" 聽 , 聽"Stipendio" 聽 ,, 聽 150, },;
聽 聽 聽 聽 聽 聽 聽 聽{ "NOTES" 聽 聽, 聽"Appunti" 聽 聽 ,, 聽 150, }}


聽 聽 聽 聽DEFINE FONT oFont NAME "TAHOMA" SIZE 0,-14
聽 聽 聽 聽DEFINE FONT oBold NAME "TAHOMA" SIZE 0,-14 BOLD


聽 聽 聽 聽DEFINE DIALOG oDlgLook SIZE 880,600 ;
聽 聽 聽 聽 聽 PIXEL TRUEPIXEL RESIZABLE FONT oFont;
聽 聽 聽 聽 聽 TITLE "Test no complex for Karinha"


聽 聽 聽 聽@ 1, 565 GET oGet VAR cSeek SIZE 280,24 PIXEL OF 聽oToolBar // 聽oDlgLook



聽 聽 聽 聽 聽 聽 聽@ 40,20 XBROWSE oBrwLook SIZE -20,-20 PIXEL OF oDlgLook ;
聽 聽 聽 聽 聽 DATASOURCE oDbf COLUMNS aCols ;
聽 聽 聽 聽 聽 AUTOSORT ;
聽 聽 聽 聽 聽 NOBORDER CELL LINES


聽 聽 聽 WITH OBJECT oBrwLook
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 //:aCols[ 3 ]:cSortOrder := ""
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 // :aCols[ 4 ]:cSortOrder := ""

聽 聽 聽 聽 聽 :bClrStd 聽 聽 聽 聽 聽:= { || { CLR_BLACK, If( oBrwLook:SelectRow(), 0x88EDFB, CLR_WHITE ) } }
聽 聽 聽 聽 聽 :nRecSelColor 聽 聽 := 聽 nRgb( 245,244,234)
聽 聽 聽 聽 聽 :lIncrFilter 聽 := .t.
聽 聽 聽 聽 聽 :bOnSort 聽 聽 聽 := { |b,oCol| oBrwLook:Seek( "" ), ;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽oBrwLook:cFilterFld := oCol:cExpr, ;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽oBrwLook:SetFocus() }
聽 聽 聽 聽 聽 //

聽 聽 聽 聽 聽 聽:oSeek := oGet
聽 聽 聽 聽 聽 :CreateFromCode()
聽 聽 聽 聽END

聽 聽 聽 聽 聽@ 1, 420 COMBOBOX oBrwLook:oSortCbx VAR oBrwLook:cSortOrder 聽SIZE 100,400 PIXEL OF 聽oToolBar //oDlgLook






聽 聽 聽 聽 DEFINE BUTTONBAR oToolBar OF oDlgLook SIZE 22,22 聽TOP 聽 2015 聽NOBORDER

聽 聽 聽 聽 DEFINE BUTTON OF oToolBar RESOURCE FWBitmap( "top2" ) 聽;
聽 聽 聽 聽 ACTION oBrwlook:KeyDown(VK_HOME, 0) WHEN oDbf:OrdKeyCount() > 0
聽 聽 聽 聽 DEFINE BUTTON OF oToolBar RESOURCE FwBitmap( "previous2" ) 聽;
聽 聽 聽 聽 ACTION oBrwlook:KeyDown(VK_UP, 0) WHEN oDbf:OrdKeyCount() > 0
聽 聽 聽 聽 DEFINE BUTTON OF oToolBar RESOURCE FWBitmap( "next2" ) ;
聽 聽 聽 聽 ACTION oBrwlook:KeyDown(VK_DOWN, 0) 聽WHEN oDbf:OrdKeyCount() > 0
聽 聽 聽 聽 DEFINE BUTTON OF oToolBar RESOURCE FWBitmap( "bottom2" ) ;
聽 聽 聽 聽 ACTION oBrwlook:KeyDown(VK_END, 0) 聽WHEN oDbf:OrdKeyCount() > 0
聽 聽 聽 聽 DEFINE BUTTON OF oToolBar 聽RESOURCE FWBitmap( "printer" );
聽 聽 聽 聽 ACTION oBrwlook:Report() 聽WHEN oDbf:OrdKeyCount() > 0



聽 聽 oToolBar:bClrGrad = { | lInvert | If( ! lInvert,;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 { { 1, RGB( 244, 244, 245 ), RGB( 244, 244, 245 ) } },;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 { { 1, RGB( 145, 201, 247 ), RGB( 145, 201, 247 ) } } ) }

聽 聽 ACTIVATE DIALOG oDlgLook CENTERED 聽;
聽 聽 聽 聽 ON INIT (oBrwLook:oSortCbx:refresh(.t.),;
聽 聽 聽 聽 聽 聽 聽 聽 聽oBrwLook:oSortCbx:setfocus(),;
聽 聽 聽 聽 聽 聽 聽 聽 聽oGet:setfocus() )

聽 聽 聽 RETURN (NIL)



at init the buttonbar is not visible and also the get and the combobox ...why ?

I tried also with a refreshing of controls

ACTIVATE DIALOG oDlgLook CENTERED ;
ON INIT (oDlgLook:Resize(),RefreshButtons( otoolBar ) )

RETURN (NIL)
//--------------------------------------------------------------------//
function RefreshButtons( oBar )
AEval( oBar:aControls, { | oCtrl | oCtrl:refresh() } )
return .T.




thanks
Since from 1991/1992 ( fw for clipper Rel. 14.4 - Momos)

I use : FiveWin for Harbour March-April 2024 - Harbour 3.2.0dev (harbour_bcc770_32_20240309) - Bcc7.70 - xMate ver. 1.15.3 - PellesC - mail: silvio[dot]falconi[at]gmail[dot]com
Posts: 8523
Joined: Tue Dec 20, 2005 07:36 PM
Re: Search on a Xbrowse
Posted: Thu Feb 24, 2022 12:27 PM

Creo que tienes raz贸n. Mi versi贸n de Fivewin est谩 desactualizada en comparaci贸n con la tuya. Aun as铆, su nivel de evoluci贸n, lo confieso, que no puedo seguir. No s茅 programar en modo avanzado como t煤. Felicidades por la evoluci贸n.

I think you're right. My version of Fivewin is outdated compared to yours. Even so, its level of evolution, I confess, that I can't keep up. I don't know how to program in advanced mode like you do. Congratulations on the evolution.

Regards, saludos.

Jo茫o Santos - S茫o Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 1487
Joined: Tue Jun 14, 2016 07:51 AM
Re: Search on a Xbrowse
Posted: Thu Feb 24, 2022 12:51 PM
Silvio,

Maybe this can help you a little further...

I added a function, see if it is usefull.

The get is however not changing the browse... Should you find this, please post it here...

Code (fw): Select all Collapse
#include "fivewin.ch"

聽 聽REQUEST DBFCDX

聽 聽 Function Test()

聽 聽 聽local cHelp
聽 聽 聽local oDlgLook,oBar
聽 聽 聽local oBrwLook,oToolBar
聽 聽 聽local oDbf,nRec
聽 聽 聽local aCols
聽 聽 聽local cSeek:=Space(100)
聽 聽 聽local oGet
聽 聽 聽local oFont,oBold




聽 oDbf:=Tdatabase():Open( , "Customer", "DBFCDX", .T. )
聽 oDbf:SetOrder("FIRST")
聽 oDbf:Gotop()



聽 聽 聽 aCols 聽:= { ;
聽 聽 聽 聽 聽 聽 聽 聽{ "FIRST" 聽 , 聽 "Cognome" 聽 聽 聽,, 聽 140, },;
聽 聽 聽 聽 聽 聽 聽 聽{ "LAST" 聽 聽 , 聽"Nome" 聽 聽 聽 聽,, 聽 150, },;
聽 聽 聽 聽 聽 聽 聽 聽{ "STREET" 聽 , 聽"Indirizzo" 聽 ,, 聽 150, },;
聽 聽 聽 聽 聽 聽 聽 聽{ "CITY" 聽 聽 , 聽"Citt脿" 聽 聽 聽 ,, 聽 150, },;
聽 聽 聽 聽 聽 聽 聽 聽{ "STATE" 聽 聽, 聽"Stato" 聽 聽 聽 ,, 聽 150, },;
聽 聽 聽 聽 聽 聽 聽 聽{ "ZIP" 聽 聽 聽, 聽"Cap" 聽 聽 聽 聽 ,, 聽 150, },;
聽 聽 聽 聽 聽 聽 聽 聽{ "HIREDATE" , 聽"Assunzione" 聽,, 聽 150, },;
聽 聽 聽 聽 聽 聽 聽 聽{ "MARRIED" 聽, 聽"Sposato" 聽 聽 ,, 聽 150, },;
聽 聽 聽 聽 聽 聽 聽 聽{ "AGE" 聽 聽 聽, 聽"Et脿" 聽 聽 聽 聽 ,, 聽 150, },;
聽 聽 聽 聽 聽 聽 聽 聽{ "SALARY" 聽 , 聽"Stipendio" 聽 ,, 聽 150, },;
聽 聽 聽 聽 聽 聽 聽 聽{ "NOTES" 聽 聽, 聽"Appunti" 聽 聽 ,, 聽 150, }}


聽 聽 聽 聽DEFINE FONT oFont NAME "TAHOMA" SIZE 0,-14
聽 聽 聽 聽DEFINE FONT oBold NAME "TAHOMA" SIZE 0,-14 BOLD


聽 聽 聽 聽DEFINE DIALOG oDlgLook SIZE 880,600 ;
聽 聽 聽 聽 聽 PIXEL TRUEPIXEL RESIZABLE FONT oFont;
聽 聽 聽 聽 聽 TITLE "Test no complex for Karinha"


聽 聽 聽 聽@ 1, 565 GET oGet VAR cSeek SIZE 280,24 PIXEL OF 聽oToolBar // 聽oDlgLook



聽 聽 聽 聽 聽 聽 聽@ 40,20 XBROWSE oBrwLook SIZE -20,-20 PIXEL OF oDlgLook ;
聽 聽 聽 聽 聽 DATASOURCE oDbf COLUMNS aCols ;
聽 聽 聽 聽 聽 AUTOSORT ;
聽 聽 聽 聽 聽 NOBORDER CELL LINES

聽 聽 聽 聽 聽 XbrSetupBar( oBrwLook )


聽 聽 聽 WITH OBJECT oBrwLook
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 //:aCols[ 3 ]:cSortOrder := ""
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 // :aCols[ 4 ]:cSortOrder := ""

聽 聽 聽 聽 聽 :bClrStd 聽 聽 聽 聽 聽:= { || { CLR_BLACK, If( oBrwLook:SelectRow(), 0x88EDFB, CLR_WHITE ) } }
聽 聽 聽 聽 聽 :nRecSelColor 聽 聽 := 聽 nRgb( 245,244,234)
聽 聽 聽 聽 聽 :lIncrFilter 聽 := .t.
聽 聽 聽 聽 聽 :bOnSort 聽 聽 聽 := { |b,oCol| oBrwLook:Seek( "" ), ;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽oBrwLook:cFilterFld := oCol:cExpr, ;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽oBrwLook:SetFocus() }
聽 聽 聽 聽 聽 //

聽 聽 聽 聽 聽 聽:oSeek := oGet
聽 聽 聽 聽 聽 :CreateFromCode()
聽 聽 聽 聽END

聽 聽 聽 聽 聽@ 1, 420 COMBOBOX oBrwLook:oSortCbx VAR oBrwLook:cSortOrder 聽SIZE 100,400 PIXEL OF 聽oToolbar //oDlgLook

聽 聽 聽 聽 DEFINE BUTTONBAR oToolBar OF oDlgLook SIZE 22,22 聽TOP 聽 2015 聽NOBORDER

聽 聽 聽 聽 DEFINE BUTTON OF oToolBar RESOURCE FWBitmap( "top2" ) 聽;
聽 聽 聽 聽 ACTION oBrwlook:KeyDown(VK_HOME, 0) WHEN oDbf:OrdKeyCount() > 0
聽 聽 聽 聽 DEFINE BUTTON OF oToolBar RESOURCE FwBitmap( "previous2" ) 聽;
聽 聽 聽 聽 ACTION oBrwlook:KeyDown(VK_UP, 0) WHEN oDbf:OrdKeyCount() > 0
聽 聽 聽 聽 DEFINE BUTTON OF oToolBar RESOURCE FWBitmap( "next2" ) ;
聽 聽 聽 聽 ACTION oBrwlook:KeyDown(VK_DOWN, 0) 聽WHEN oDbf:OrdKeyCount() > 0
聽 聽 聽 聽 DEFINE BUTTON OF oToolBar RESOURCE FWBitmap( "bottom2" ) ;
聽 聽 聽 聽 ACTION oBrwlook:KeyDown(VK_END, 0) 聽WHEN oDbf:OrdKeyCount() > 0
聽 聽 聽 聽 DEFINE BUTTON OF oToolBar 聽RESOURCE FWBitmap( "printer" );
聽 聽 聽 聽 ACTION oBrwlook:Report() 聽WHEN oDbf:OrdKeyCount() > 0



聽 聽 oToolBar:bClrGrad = { | lInvert | If( ! lInvert,;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 { { 1, RGB( 244, 244, 245 ), RGB( 244, 244, 245 ) } },;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 { { 1, RGB( 145, 201, 247 ), RGB( 145, 201, 247 ) } } ) }

聽 聽 ACTIVATE DIALOG oDlgLook CENTERED 聽;
聽 聽 聽 聽 ON INIT (oBrwLook:oSortCbx:refresh(.t.),;
聽 聽 聽 聽 聽 聽 聽 聽 聽oBrwLook:oSortCbx:setfocus(),;
聽 聽 聽 聽 聽 聽 聽 聽 聽oGet:setfocus() )

聽 聽 聽 RETURN (NIL)

function XbrSetupBar( oBrw )
聽 聽local cSeek := space(100)
聽 聽Local oBtnClear

聽 聽oBrw:nTopBarHeight := 70
聽 聽oBrw:bOnAdjust := <||
聽 聽 聽 local oBtn
聽 聽 聽 @ 10,10 BTNBMP oBtn PROMPT "New" RESOURCE "ADD" SIZE 60,60 PIXEL OF oBrw NOBORDER
聽 聽 聽 @ 10,200 GET oGet VAR cSeek SIZE 100,25 PIXEL OF oBrw

聽 聽 聽 @ 15,500 COMBOBOX oBrw:oSortCbx VAR oBrw:cSortOrder SIZE 100,200 PIXEL OF oBrw


聽 聽 聽 return nil
聽 聽 聽 >

return nil
Marc Venken

Using: FWH 23.08 with Harbour
Posts: 1487
Joined: Tue Jun 14, 2016 07:51 AM
Re: Search on a Xbrowse
Posted: Thu Feb 24, 2022 01:02 PM
karinha wrote:Creo que tienes raz贸n. Mi versi贸n de Fivewin est谩 desactualizada en comparaci贸n con la tuya. Aun as铆, su nivel de evoluci贸n, lo confieso, que no puedo seguir. No s茅 programar en modo avanzado como t煤. Felicidades por la evoluci贸n.

I think you're right. My version of Fivewin is outdated compared to yours. Even so, its level of evolution, I confess, that I can't keep up. I don't know how to program in advanced mode like you do. Congratulations on the evolution.

Regards, saludos.


The post's you did, even in my topics are surely in advanced mode .... It helped me a lot to get it started. Keep up posting, we can use it :-)
Marc Venken

Using: FWH 23.08 with Harbour
Posts: 7318
Joined: Thu Oct 18, 2012 07:17 PM
Re: Search on a Xbrowse
Posted: Thu Feb 24, 2022 01:10 PM
Marc Venken wrote:Silvio,

Maybe this can help you a little further...

I added a function, see if it is usefull.

The get is however not changing the browse... Should you find this, please post it here...

Code (fw): Select all Collapse
#include "fivewin.ch"

聽 聽REQUEST DBFCDX

聽 聽 Function Test()

聽 聽 聽local cHelp
聽 聽 聽local oDlgLook,oBar
聽 聽 聽local oBrwLook,oToolBar
聽 聽 聽local oDbf,nRec
聽 聽 聽local aCols
聽 聽 聽local cSeek:=Space(100)
聽 聽 聽local oGet
聽 聽 聽local oFont,oBold




聽 oDbf:=Tdatabase():Open( , "Customer", "DBFCDX", .T. )
聽 oDbf:SetOrder("FIRST")
聽 oDbf:Gotop()



聽 聽 聽 aCols 聽:= { ;
聽 聽 聽 聽 聽 聽 聽 聽{ "FIRST" 聽 , 聽 "Cognome" 聽 聽 聽,, 聽 140, },;
聽 聽 聽 聽 聽 聽 聽 聽{ "LAST" 聽 聽 , 聽"Nome" 聽 聽 聽 聽,, 聽 150, },;
聽 聽 聽 聽 聽 聽 聽 聽{ "STREET" 聽 , 聽"Indirizzo" 聽 ,, 聽 150, },;
聽 聽 聽 聽 聽 聽 聽 聽{ "CITY" 聽 聽 , 聽"Citt脿" 聽 聽 聽 ,, 聽 150, },;
聽 聽 聽 聽 聽 聽 聽 聽{ "STATE" 聽 聽, 聽"Stato" 聽 聽 聽 ,, 聽 150, },;
聽 聽 聽 聽 聽 聽 聽 聽{ "ZIP" 聽 聽 聽, 聽"Cap" 聽 聽 聽 聽 ,, 聽 150, },;
聽 聽 聽 聽 聽 聽 聽 聽{ "HIREDATE" , 聽"Assunzione" 聽,, 聽 150, },;
聽 聽 聽 聽 聽 聽 聽 聽{ "MARRIED" 聽, 聽"Sposato" 聽 聽 ,, 聽 150, },;
聽 聽 聽 聽 聽 聽 聽 聽{ "AGE" 聽 聽 聽, 聽"Et脿" 聽 聽 聽 聽 ,, 聽 150, },;
聽 聽 聽 聽 聽 聽 聽 聽{ "SALARY" 聽 , 聽"Stipendio" 聽 ,, 聽 150, },;
聽 聽 聽 聽 聽 聽 聽 聽{ "NOTES" 聽 聽, 聽"Appunti" 聽 聽 ,, 聽 150, }}


聽 聽 聽 聽DEFINE FONT oFont NAME "TAHOMA" SIZE 0,-14
聽 聽 聽 聽DEFINE FONT oBold NAME "TAHOMA" SIZE 0,-14 BOLD


聽 聽 聽 聽DEFINE DIALOG oDlgLook SIZE 880,600 ;
聽 聽 聽 聽 聽 PIXEL TRUEPIXEL RESIZABLE FONT oFont;
聽 聽 聽 聽 聽 TITLE "Test no complex for Karinha"


聽 聽 聽 聽@ 1, 565 GET oGet VAR cSeek SIZE 280,24 PIXEL OF 聽oToolBar // 聽oDlgLook



聽 聽 聽 聽 聽 聽 聽@ 40,20 XBROWSE oBrwLook SIZE -20,-20 PIXEL OF oDlgLook ;
聽 聽 聽 聽 聽 DATASOURCE oDbf COLUMNS aCols ;
聽 聽 聽 聽 聽 AUTOSORT ;
聽 聽 聽 聽 聽 NOBORDER CELL LINES

聽 聽 聽 聽 聽 XbrSetupBar( oBrwLook )


聽 聽 聽 WITH OBJECT oBrwLook
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 //:aCols[ 3 ]:cSortOrder := ""
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 // :aCols[ 4 ]:cSortOrder := ""

聽 聽 聽 聽 聽 :bClrStd 聽 聽 聽 聽 聽:= { || { CLR_BLACK, If( oBrwLook:SelectRow(), 0x88EDFB, CLR_WHITE ) } }
聽 聽 聽 聽 聽 :nRecSelColor 聽 聽 := 聽 nRgb( 245,244,234)
聽 聽 聽 聽 聽 :lIncrFilter 聽 := .t.
聽 聽 聽 聽 聽 :bOnSort 聽 聽 聽 := { |b,oCol| oBrwLook:Seek( "" ), ;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽oBrwLook:cFilterFld := oCol:cExpr, ;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽oBrwLook:SetFocus() }
聽 聽 聽 聽 聽 //

聽 聽 聽 聽 聽 聽:oSeek := oGet
聽 聽 聽 聽 聽 :CreateFromCode()
聽 聽 聽 聽END

聽 聽 聽 聽 聽@ 1, 420 COMBOBOX oBrwLook:oSortCbx VAR oBrwLook:cSortOrder 聽SIZE 100,400 PIXEL OF 聽oToolbar //oDlgLook

聽 聽 聽 聽 DEFINE BUTTONBAR oToolBar OF oDlgLook SIZE 22,22 聽TOP 聽 2015 聽NOBORDER

聽 聽 聽 聽 DEFINE BUTTON OF oToolBar RESOURCE FWBitmap( "top2" ) 聽;
聽 聽 聽 聽 ACTION oBrwlook:KeyDown(VK_HOME, 0) WHEN oDbf:OrdKeyCount() > 0
聽 聽 聽 聽 DEFINE BUTTON OF oToolBar RESOURCE FwBitmap( "previous2" ) 聽;
聽 聽 聽 聽 ACTION oBrwlook:KeyDown(VK_UP, 0) WHEN oDbf:OrdKeyCount() > 0
聽 聽 聽 聽 DEFINE BUTTON OF oToolBar RESOURCE FWBitmap( "next2" ) ;
聽 聽 聽 聽 ACTION oBrwlook:KeyDown(VK_DOWN, 0) 聽WHEN oDbf:OrdKeyCount() > 0
聽 聽 聽 聽 DEFINE BUTTON OF oToolBar RESOURCE FWBitmap( "bottom2" ) ;
聽 聽 聽 聽 ACTION oBrwlook:KeyDown(VK_END, 0) 聽WHEN oDbf:OrdKeyCount() > 0
聽 聽 聽 聽 DEFINE BUTTON OF oToolBar 聽RESOURCE FWBitmap( "printer" );
聽 聽 聽 聽 ACTION oBrwlook:Report() 聽WHEN oDbf:OrdKeyCount() > 0



聽 聽 oToolBar:bClrGrad = { | lInvert | If( ! lInvert,;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 { { 1, RGB( 244, 244, 245 ), RGB( 244, 244, 245 ) } },;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 { { 1, RGB( 145, 201, 247 ), RGB( 145, 201, 247 ) } } ) }

聽 聽 ACTIVATE DIALOG oDlgLook CENTERED 聽;
聽 聽 聽 聽 ON INIT (oBrwLook:oSortCbx:refresh(.t.),;
聽 聽 聽 聽 聽 聽 聽 聽 聽oBrwLook:oSortCbx:setfocus(),;
聽 聽 聽 聽 聽 聽 聽 聽 聽oGet:setfocus() )

聽 聽 聽 RETURN (NIL)

function XbrSetupBar( oBrw )
聽 聽local cSeek := space(100)
聽 聽Local oBtnClear

聽 聽oBrw:nTopBarHeight := 70
聽 聽oBrw:bOnAdjust := <||
聽 聽 聽 local oBtn
聽 聽 聽 @ 10,10 BTNBMP oBtn PROMPT "New" RESOURCE "ADD" SIZE 60,60 PIXEL OF oBrw NOBORDER
聽 聽 聽 @ 10,200 GET oGet VAR cSeek SIZE 100,25 PIXEL OF oBrw

聽 聽 聽 @ 15,500 COMBOBOX oBrw:oSortCbx VAR oBrw:cSortOrder SIZE 100,200 PIXEL OF oBrw


聽 聽 聽 return nil
聽 聽 聽 >

return nil


the get not run on XbrSetupBar( oBrw ) not search
Since from 1991/1992 ( fw for clipper Rel. 14.4 - Momos)

I use : FiveWin for Harbour March-April 2024 - Harbour 3.2.0dev (harbour_bcc770_32_20240309) - Bcc7.70 - xMate ver. 1.15.3 - PellesC - mail: silvio[dot]falconi[at]gmail[dot]com
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
Re: Search on a Xbrowse
Posted: Thu Feb 24, 2022 04:24 PM
Silvio,

You should check if the cdx file exists:
Code (fw): Select all Collapse
 oCust:=Tdatabase():Open( , "Customer", "DBFCDX", .T. )
 if ! File( "customer.cdx" )
    oCust:CreateIndex( "Customer", "First", "First" )
 endif   
 oCust:SetOrder( "First" )
 oCust:Gotop()
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 7318
Joined: Thu Oct 18, 2012 07:17 PM
Re: Search on a Xbrowse
Posted: Thu Feb 24, 2022 06:26 PM

the combobox index the browser, the get not search any data

Since from 1991/1992 ( fw for clipper Rel. 14.4 - Momos)

I use : FiveWin for Harbour March-April 2024 - Harbour 3.2.0dev (harbour_bcc770_32_20240309) - Bcc7.70 - xMate ver. 1.15.3 - PellesC - mail: silvio[dot]falconi[at]gmail[dot]com
Posts: 2706
Joined: Fri Oct 07, 2005 01:50 PM
Re: Search on a Xbrowse
Posted: Thu Feb 24, 2022 06:58 PM
To All

Rao helped me with this incremental TDatabase search ... here is the code ..

Rick Lipkin

Code (fw): Select all Collapse
#include "fivewin.ch"

REQUEST DBFCDX

//----------------------------------------------------------------------------//

function Main()

聽 聽local oDlg, oFont, oBrw, oGet1, oGet2, oDbf
聽 聽local cName := Space( 20 )
聽 聽local cCity := Space( 20 )

聽 聽SetGetColorFocus()

聽 聽oDbf 聽:= TDataBase():Open( nil, "CUSTOMER.dbf", "DBFCDX", .t. )

聽 聽 oDbf:SetOrder( "CustNAme" ) //, [cFile]
聽 聽 oDBf:GoTop()


聽 聽oDbf:SetFilter( "UPPER(CUSTNAME) = ?", ;
聽 聽 聽 聽{ || { If( Empty( cName ), "none", UPPER(ALLTRIM(cName))) } } )

聽 聽oDbf:GoTop()

聽 聽DEFINE FONT oFont NAME "TAHOMA" SIZE 0,-14
聽 聽DEFINE DIALOG oDlg SIZE 700,400 PIXEL TRUEPIXEL FONT oFont

聽 聽@ 聽22, 20 SAY "FILTER: Name: " SIZE 100,24 PIXEL OF oDlg

聽 聽@ 聽20,150 GET oGet1 VAR cName SIZE 150,26 PIXEL OF oDlg ;
聽 聽 聽 ON CHANGE ( oGet1:Assign(), oDbf:ReFilter(), oDbf:GoTop(), oBrw:Refresh() )


聽 聽@ 聽55, 20 XBROWSE oBrw SIZE -20,-20 PIXEL OF oDlg ;
聽 聽 聽 DATASOURCE oDbf ;
聽 聽 聽 COLUMNS "CUSTNAME", "CUSTCITY", "CUSTSTATE" ;
聽 聽 聽 CELL LINES NOBORDER FOOTERS

聽 聽WITH OBJECT oBrw
聽 聽 聽 :bClrSel := :bClrSelFocus
聽 聽 聽 :CreateFromCode()
聽 聽END

聽 聽@ .5, 70 BUTTON "View All" size 100,40 ACTION _ViewAll( oBrw,oDbf )
聽 聽@ .5, 90 BUTTON "Reset Filter" size 100,40 ACTION ; //_ResetFilter( oBrw,oDbf, @cName,oGet1 )
聽 聽 聽 ( oDbf:SetFilter( "UPPER(CUSTNAME) = ?", ;
聽 聽 聽 聽 聽 聽{ || { If( Empty( cName ), "none", UPPER(ALLTRIM(cName))) } } ), ;
聽 聽 聽 聽 oDbf:GoTop(), oBrw:Refresh(), oGet1:SetFocus() )


聽 ACTIVATE DIALOG oDlg CENTERED
聽 RELEASE FONT oFont

return nil

//--------------------
Static Func _ViewAll( oBrw,oDbf, cName,oGet1 )

oDbf:SetFilter("" )
oDbf:GoTop()

oBrw:ReFresh()

Return(nil)

//-----------------------
Static Func _ResetFilter( oBrw,oDbf, cName,oGet1 )

cName := space(50)
oGet1:ReFresh()

oDbf:SetFilter( "" )

oDbf:SetOrder( "CustNAme" ) //, [cFile]
聽 聽 oDBf:GoTop()

oDbf:SetFilter( "UPPER(CUSTNAME) = ?", ;
聽 聽 { || { If( Empty( cName ), "none", UPPER(ALLTRIM(cName))) } } )

oDbf:GoTop()
oBrw:ReFresh()

oGet1:SetFocus()

Return(nil)

//----------------------------------------------------------------------------//





Posts: 1487
Joined: Tue Jun 14, 2016 07:51 AM
Re: Search on a Xbrowse
Posted: Thu Feb 24, 2022 09:10 PM
Silvio,

Your sample is working !! but there is a issue of putting the get and combo on the buttonbar. If you put them lower (see the code) than you see them

I wonder if the buttonbar can handle the get and combo. Mayby it is intented only for buttons ?

Code (fw): Select all Collapse
#include "fivewin.ch"

聽 聽REQUEST DBFCDX

聽 聽 Function Test()

聽 聽 聽local cHelp
聽 聽 聽local oDlgLook,oBar
聽 聽 聽local oBrwLook,oToolBar
聽 聽 聽local oDbf,nRec
聽 聽 聽local aCols
聽 聽 聽local cSeek:=Space(100)
聽 聽 聽local oGet
聽 聽 聽local oFont,oBold

聽 oDbf:=Tdatabase():Open( , "Customer", "DBFCDX", .T. )
聽 oDbf:SetOrder("FIRST")
聽 oDbf:Gotop()

聽 聽 聽 aCols 聽:= { ;
聽 聽 聽 聽 聽 聽 聽 聽{ "FIRST" 聽 , 聽 "Cognome" 聽 聽 聽,, 聽 140, },;
聽 聽 聽 聽 聽 聽 聽 聽{ "LAST" 聽 聽 , 聽"Nome" 聽 聽 聽 聽,, 聽 150, },;
聽 聽 聽 聽 聽 聽 聽 聽{ "STREET" 聽 , 聽"Indirizzo" 聽 ,, 聽 150, },;
聽 聽 聽 聽 聽 聽 聽 聽{ "CITY" 聽 聽 , 聽"Citt脿" 聽 聽 聽 ,, 聽 150, },;
聽 聽 聽 聽 聽 聽 聽 聽{ "STATE" 聽 聽, 聽"Stato" 聽 聽 聽 ,, 聽 150, },;
聽 聽 聽 聽 聽 聽 聽 聽{ "ZIP" 聽 聽 聽, 聽"Cap" 聽 聽 聽 聽 ,, 聽 150, },;
聽 聽 聽 聽 聽 聽 聽 聽{ "HIREDATE" , 聽"Assunzione" 聽,, 聽 150, },;
聽 聽 聽 聽 聽 聽 聽 聽{ "MARRIED" 聽, 聽"Sposato" 聽 聽 ,, 聽 150, },;
聽 聽 聽 聽 聽 聽 聽 聽{ "AGE" 聽 聽 聽, 聽"Et脿" 聽 聽 聽 聽 ,, 聽 150, },;
聽 聽 聽 聽 聽 聽 聽 聽{ "SALARY" 聽 , 聽"Stipendio" 聽 ,, 聽 150, },;
聽 聽 聽 聽 聽 聽 聽 聽{ "NOTES" 聽 聽, 聽"Appunti" 聽 聽 ,, 聽 150, }}


聽 聽 聽 聽DEFINE FONT oFont NAME "TAHOMA" SIZE 0,-14
聽 聽 聽 聽DEFINE FONT oBold NAME "TAHOMA" SIZE 0,-14 BOLD

聽 聽 聽 聽DEFINE DIALOG oDlgLook SIZE 880,600 ;
聽 聽 聽 聽 聽 PIXEL TRUEPIXEL RESIZABLE FONT oFont;
聽 聽 聽 聽 聽 TITLE "Test no complex for Karinha"


聽 聽 聽 聽@ 20, 200 GET oGet VAR cSeek SIZE 150,30 PIXEL OF 聽oToolBar // 聽oDlgLook

聽 聽 聽 聽@ 80,20 XBROWSE oBrwLook SIZE -20,-20 PIXEL OF oDlgLook ;
聽 聽 聽 聽 聽 DATASOURCE oDbf COLUMNS aCols ;
聽 聽 聽 聽 聽 AUTOSORT ;
聽 聽 聽 聽 聽 NOBORDER CELL LINES

聽 聽 聽 WITH OBJECT oBrwLook
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 //:aCols[ 3 ]:cSortOrder := ""
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 // :aCols[ 4 ]:cSortOrder := ""

聽 聽 聽 聽 聽 :bClrStd 聽 聽 聽 聽 聽:= { || { CLR_BLACK, If( oBrwLook:SelectRow(), 0x88EDFB, CLR_WHITE ) } }
聽 聽 聽 聽 聽 :nRecSelColor 聽 聽 := 聽 nRgb( 245,244,234)
聽 聽 聽 聽 聽 :lIncrFilter 聽 := .t.
聽 聽 聽 聽 聽 :bOnSort 聽 聽 聽 := { |b,oCol| oBrwLook:Seek( "" ), ;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽oBrwLook:cFilterFld := oCol:cExpr, ;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽oBrwLook:SetFocus() }
聽 聽 聽 聽 聽 //

聽 聽 聽 聽 聽 聽:oSeek := oGet
聽 聽 聽 聽 聽 :CreateFromCode()
聽 聽 聽 聽END

聽 聽 @ 30, 460 COMBOBOX oBrwLook:oSortCbx VAR oBrwLook:cSortOrder 聽SIZE 100,400 PIXEL OF 聽oToolbar //oDlgLook

聽 聽 聽 聽 //DEFINE BUTTONBAR oToolBar OF oDlgLook SIZE 22,22 聽TOP 聽 2015 聽NOBORDER
聽 聽 聽 聽 DEFINE BUTTONBAR oToolBar OF oDlgLook 2007 SIZE 30,30

聽 聽 聽 聽 DEFINE BUTTON OF oToolBar RESOURCE FWBitmap( "top2" ) 聽;
聽 聽 聽 聽 ACTION oBrwlook:KeyDown(VK_HOME, 0) WHEN oDbf:OrdKeyCount() > 0
聽 聽 聽 聽 DEFINE BUTTON OF oToolBar RESOURCE FwBitmap( "previous2" ) 聽;
聽 聽 聽 聽 ACTION oBrwlook:KeyDown(VK_UP, 0) WHEN oDbf:OrdKeyCount() > 0
聽 聽 聽 聽 DEFINE BUTTON OF oToolBar RESOURCE FWBitmap( "next2" ) ;
聽 聽 聽 聽 ACTION oBrwlook:KeyDown(VK_DOWN, 0) 聽WHEN oDbf:OrdKeyCount() > 0
聽 聽 聽 聽 DEFINE BUTTON OF oToolBar RESOURCE FWBitmap( "bottom2" ) ;
聽 聽 聽 聽 ACTION oBrwlook:KeyDown(VK_END, 0) 聽WHEN oDbf:OrdKeyCount() > 0
聽 聽 聽 聽 DEFINE BUTTON OF oToolBar 聽RESOURCE FWBitmap( "printer" );
聽 聽 聽 聽 ACTION oBrwlook:Report() 聽WHEN oDbf:OrdKeyCount() > 0
聽 聽 聽 聽 */


聽 聽 ACTIVATE DIALOG oDlgLook CENTERED

聽 聽 聽 RETURN (NIL)
Marc Venken

Using: FWH 23.08 with Harbour
Posts: 7318
Joined: Thu Oct 18, 2012 07:17 PM
Re: Search on a Xbrowse
Posted: Fri Feb 25, 2022 07:34 AM
Marc Venken wrote:Silvio,

Your sample is working !! but there is a issue of putting the get and combo on the buttonbar. If you put them lower (see the code) than you see them

I wonder if the buttonbar can handle the get and combo. Mayby it is intented only for buttons ?



Marc,
I know my test works but my problem was just showing the get control and the combobox in the buttonbar. When the end user moves the mouse over the controls then they are shown, what can you do to get them right from the start?
Since from 1991/1992 ( fw for clipper Rel. 14.4 - Momos)

I use : FiveWin for Harbour March-April 2024 - Harbour 3.2.0dev (harbour_bcc770_32_20240309) - Bcc7.70 - xMate ver. 1.15.3 - PellesC - mail: silvio[dot]falconi[at]gmail[dot]com
Posts: 7318
Joined: Thu Oct 18, 2012 07:17 PM
Re: Search on a Xbrowse
Posted: Fri Feb 25, 2022 07:54 AM
Marc,
try this
Code (fw): Select all Collapse
 
    #include "fivewin.ch"

       REQUEST DBFCDX


 Static lToolbar

        Function Test()

         local cHelp
         local oDlgLook,oBar
         local oBrwLook,oToolBar
         local oDbf,nRec
         local aCols
         local cSeek:=Space(100)
         local oGet
         local oFont,oBold


       lToolBar :=.f.


      oDbf:=Tdatabase():Open( , "Customer", "DBFCDX", .T. )
      oDbf:SetOrder("FIRST")
      oDbf:Gotop()

          aCols  := { ;
                   { "FIRST"   ,   "Cognome"      ,,   140, },;
                   { "LAST"     ,  "Nome"        ,,   150, },;
                   { "STREET"   ,  "Indirizzo"   ,,   150, },;
                   { "CITY"     ,  "Citt脿"       ,,   150, },;
                   { "STATE"    ,  "Stato"       ,,   150, },;
                   { "ZIP"      ,  "Cap"         ,,   150, },;
                   { "HIREDATE" ,  "Assunzione"  ,,   150, },;
                   { "MARRIED"  ,  "Sposato"     ,,   150, },;
                   { "AGE"      ,  "Et脿"         ,,   150, },;
                   { "SALARY"   ,  "Stipendio"   ,,   150, },;
                   { "NOTES"    ,  "Appunti"     ,,   150, }}


           DEFINE FONT oFont NAME "TAHOMA" SIZE 0,-14
           DEFINE FONT oBold NAME "TAHOMA" SIZE 0,-14 BOLD

           DEFINE DIALOG oDlgLook SIZE 880,600 ;
              PIXEL TRUEPIXEL RESIZABLE FONT oFont;
              TITLE "Test no complex for Karinha"


           @ 1, 200 GET oGet VAR cSeek SIZE 150,30 PIXEL OF  oToolBar //  oDlgLook


            IF lToolBar

     @ 110,10 XBROWSE oBrwlook SIZE -2, -5 PIXEL OF oDlgLook ;
          DATASOURCE oDbf COLUMNS  aCols ;
          AUTOSORT ;
          NOBORDER CELL LINES
  else

       @ 0,0 XBROWSE oBrwlook SIZE -2, -5 PIXEL OF oDlgLook ;
          DATASOURCE oDbf COLUMNS  aCols ;
          AUTOSORT ;
          NOBORDER CELL LINES
    Endif

          WITH OBJECT oBrwLook
                        //:aCols[ 3 ]:cSortOrder := ""
                        // :aCols[ 4 ]:cSortOrder := ""

              :bClrStd          := { || { CLR_BLACK, If( oBrwLook:SelectRow(), 0x88EDFB, CLR_WHITE ) } }
              :nRecSelColor     :=   nRgb( 245,244,234)
              :lIncrFilter   := .t.
              :bOnSort       := { |b,oCol| oBrwLook:Seek( "" ), ;
                                     oBrwLook:cFilterFld := oCol:cExpr, ;
                                     oBrwLook:SetFocus() }
              //

               :oSeek := oGet
              :CreateFromCode()
           END


       oBrwlook:bRClicked := {|nRow,nCol| MenuDisplay(nRow,nCol,@ltoolBar,oBrwlook,oDlgLook) }


        @ 1, 460 COMBOBOX oBrwLook:oSortCbx VAR oBrwLook:cSortOrder  SIZE 100,400 PIXEL OF  oToolbar //oDlgLook



            DEFINE BUTTONBAR oToolBar OF oDlgLook SIZE 22,22  TOP   2015  NOBORDER

            DEFINE BUTTON OF oToolBar RESOURCE FWBitmap( "top2" )  ;
            ACTION oBrwlook:KeyDown(VK_HOME, 0) WHEN oDbf:OrdKeyCount() > 0
            DEFINE BUTTON OF oToolBar RESOURCE FwBitmap( "previous2" )  ;
            ACTION oBrwlook:KeyDown(VK_UP, 0) WHEN oDbf:OrdKeyCount() > 0
            DEFINE BUTTON OF oToolBar RESOURCE FWBitmap( "next2" ) ;
            ACTION oBrwlook:KeyDown(VK_DOWN, 0)  WHEN oDbf:OrdKeyCount() > 0
            DEFINE BUTTON OF oToolBar RESOURCE FWBitmap( "bottom2" ) ;
            ACTION oBrwlook:KeyDown(VK_END, 0)  WHEN oDbf:OrdKeyCount() > 0
            DEFINE BUTTON OF oToolBar  RESOURCE FWBitmap( "printer" );
            ACTION oBrwlook:Report()  WHEN oDbf:OrdKeyCount() > 0

                 oToolBar:bClrGrad = { | lInvert | If( ! lInvert,;
                    { { 1, RGB( 244, 244, 245 ), RGB( 244, 244, 245 ) } },;
                    { { 1, RGB( 145, 201, 247 ), RGB( 145, 201, 247 ) } } ) }

             oDlgLook:bResized  := <||
             local oRect       := oDlgLook:GetCliRect()

           IF   lToolbar
                     oBrwlook:nTop      := oRect:nTop+24
                     oBrwlook:nLeft     := oRect:nLeft
                     oToolBar:Show()
                     oBrwLook:oSortCbx:Show()
                     oGet:Show()

                  ELSE
                     oBrwlook:nTop      := oRect:nTop
                     oBrwlook:nLeft     := oRect:nLeft
                     oToolBar:Hide()
                     oBrwLook:oSortCbx:Hide()
                     oGet:Hide()
                  ENDIF

                  oBrwLook:oSortCbx:refresh()
                  oGet:refresh()
                  oBrwlook:setfocus()
                  oBrwlook:refresh()
                  RETURN nil
                  >


                  ACTIVATE DIALOG oDlgLook CENTERED  ;
                  ON INIT EVAL( oDlgLook:bResized() )

          RETURN (NIL)

//-------------------------------------------------------------------------------//

   Function MenuDisplay(nRow,nCol,lToolbar,oBrwlook,oDlgLook)
     local oMenu
     local otoolBarCheck
     MENU oMenu  POPUP
     MENUITEM " another menuitem  "
     SEPARATOR
        MENUITEM oToolBarCheck Prompt "Show ToolBar" ;
          ACTION ( ltoolBar :=!ltoolBar,;
                      Eval( oDlgLook:bResized),;
                      oBrwLook:refresh(),;
                   oToolBarCheck:SetCheck( ltoolBar ))

         SEPARATOR
          ENDMENU
          oToolBarCheck:SetCheck( ltoolBar )
   ACTIVATE POPUP oMenu OF oDlgLook AT  oBrwLook:nTop+nRow, oBrwLook:nLeft+nCol
   RETURN (NIL)

//-------------------------------------------------------------------------------//



my intention was to insert a popup menu because the end user can choose to view the buttonbar or not

initially the buttonbar does not appear but if you press the mouse and the right button you can display the menu and select "Show toolbar"

even in this way the get and the combobox are not displayed, you have to move the mouse over and then you will see them
Since from 1991/1992 ( fw for clipper Rel. 14.4 - Momos)

I use : FiveWin for Harbour March-April 2024 - Harbour 3.2.0dev (harbour_bcc770_32_20240309) - Bcc7.70 - xMate ver. 1.15.3 - PellesC - mail: silvio[dot]falconi[at]gmail[dot]com
Posts: 1487
Joined: Tue Jun 14, 2016 07:51 AM
Re: Search on a Xbrowse
Posted: Fri Feb 25, 2022 09:37 AM

I see, I have the same issue in my project....

Maybe the toolbar is not intended for this ? or we are just doing is wrong...... See if someone else has a answer

Marc Venken

Using: FWH 23.08 with Harbour
Posts: 7318
Joined: Thu Oct 18, 2012 07:17 PM
Re: Search on a Xbrowse
Posted: Fri Feb 25, 2022 10:48 AM
Marc Venken wrote:I see, I have the same issue in my project....

Maybe the toolbar is not intended for this ? or we are just doing is wrong...... See if someone else has a answer



Marc, I make a test with C5Statusbar instead of fwh Buttonbar and seem run ok
Probable Fwh buttonbar not run good
Since from 1991/1992 ( fw for clipper Rel. 14.4 - Momos)

I use : FiveWin for Harbour March-April 2024 - Harbour 3.2.0dev (harbour_bcc770_32_20240309) - Bcc7.70 - xMate ver. 1.15.3 - PellesC - mail: silvio[dot]falconi[at]gmail[dot]com