Jump to content
Fivewin Brasil

Dúvida em filtro no xBrowse


Edu

Recommended Posts

Boa tarde galera!

Estou executando um filtro no xBrowse com array usando  o metodo ArrayIncrFilter, porém não consigo limpar o filtro estabelecido quando a variável de pesquisa está vazia.

Alguém teria uma dica para resolver ?

Segue como estou fazendo:

***********************************************************

* Get de pesquisa

  REDEFINE GET oGet2 VAR cSeek PICTURE "@!" ID 4002 OF oDlgPrd2 UPDATE ;
   VALID xBrFilter(oBr1, 3, cSeek, aProdAuto)        
 

     * listagem
    oBr1:= TXBROWSE():NEW()
    oBr1:CreateFromResource(4008)
    oBr1:SetArray(aProdAuto,.T.)

 

***********************************************************

FUNCTION xBrFilter(oBrw, nCol, cSeek, aArray)
    * Filtro no xbrowse com array de forma nativa. Filtra qualquer coluna no browse
    * Parametros: objeto, n. da coluna, variavel de pesquisa
   
    oBrw:lSeekWild  := .T.
    DEFAULT nCol := 1
    
      IF !Empty(cSeek)

        oBrw:cFilterFld:= nCol // seleciona a coluna que será ativado o filtro
      
          oBrw:ArrayIncrFilter(RTRIM(cSeek))
  
      ELSE
          
          oBrw:aArrayData:= aArray    
          oBrw:SetArray(aArray,.T.)
          
      ENDIF
      
      oBrw:Refresh()
    oBrw:Update()

RETURN .T.

Link to comment
Share on other sites

  • 1 year later...

eu nao uso GET para pesquisa no xbrowse e sim o SAY como no exemplo abaixo... é com o oLbxPeFo:Seek( "" ) que zero o filtro... no seu caso é diferente

   @ 3, 116 COMBOBOX oPesqComboForn VAR nPesqComboForn ITEMS {"R.SOCIAL", "FANTASIA", "CÓDIGO", "CNPJ"} OF oDlgPeFo PIXEL COLOR CLR_GET1,CLR_GET2 SIZE 50,40 FONT oFont ON CHANGE MudaOrdemFornPesq(nPesqComboForn, oLbxPeFo)
   @ 4, 170 SAY oLbxPeFo:oSeek PROMPT oLbxPeFo:cSeek PICTURE "@!" UPDATE OF oDlgPeFo PIXEL COLOR CLR_BLACK FONT oFont1 SIZE 120, 10 BORDER

*--------------------------------------------------------------------------------------
Function MudaOrdemFornPesq(nPesqComboForn, oLbxPeFo)

   oLbxPeFo:Seek( "" )
   If nPesqComboForn = 1
      Forn->(DbSetOrder("Forn2"))
      oLbxPeFo:cFilterFld := "Nom_Forn"
   ElseIf nPesqComboForn = 2
      Forn->(DbSetOrder("Forn4"))
      oLbxPeFo:cFilterFld := "Fan_Forn"
   ElseIf nPesqComboForn = 3
      Forn->(DbSetOrder("Forn1"))
      oLbxPeFo:cFilterFld := "Cod_Forn"
   Else
      Forn->(DbSetOrder("Forn3"))
      oLbxPeFo:cFilterFld := "Cgc_Forn"
   Endif
   oLbxPeFo:SetFocus()
   oLbxPeFo:Refresh()

Return nil

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...