Jump to content
Fivewin Brasil

usar metodo :bskip do wbrowse


João Cezar

Recommended Posts

Olá

Tenho uma consulta de produtos com opção de filtro onde escolho 1-Produtos em Estoque ou 2-Produtos sem Estoque ou 3-Todos Produtos, tentei usar o setfilter() ficou lento em rede, não posso criar indices fixos nem temporarios, pensei em usar o metodo bskip do browse, mas não estou conseguindo fazer funcionar, alguem poderia me dar um exemplo ?

Segue o que estou fazendo:

oBrwConsul:bSkip := { | nRecs | SkipEstoq( nRadio, cAlias, nRecs ) }

...

...

...


FUNCTION SkipEstoq( nRadio, cAlias, nRecords )

LOCAL nSkipped

DEFAULT nRecords := 1

IF nRadio == 1
IF (cAlias)->PrEstq <= 0 ; IF( nRecords < 0, nRecords--, nRecords++ ); ENDIF
ELSEIF nRadio == 2
IF (cAlias)->PrEstq > 0 ; IF( nRecords < 0, nRecords--, nRecords++ ) ; ENDIF
ENDIF

nSkipped := (cAlias)->( DbSkipper( nRecords ) )

RETURN nSkipped

Link to comment
Share on other sites

Essa aplicação, como estou migrando do clipper para fwh + xharbour ainda tem muita coisa em clipper então para manter a compatibilidade tenho de usar ainda o DBFNTX, a minha tabela de produtos já tem 15 indices criado então não posso criar mais indices fixos, como é uma pesquisa por descrição do produto eu uso o indice já criado apenas por descrição e faço um ORDSCOP a medida que o usuario vai digitando letra a letra, por isso não posso ficar criando indice temporario a cada letra que o usuario digitar.

Link to comment
Share on other sites

De uma olhada, que sabe serve ou te ajuda.

**----------------------------------------------------------**
    STATIC FUNCTION BuscaCooperado()
**----------------------------------------------------------**
_nombusca:=Space(60)
COP->(OrdSetFocus(2)) ; COP->(DBSeek("A"))
DEFINE DIALOG oDlgBuscaCop RESOURCE "COP_CADASTRO_BUSCA" OF oDlg
              oDlgBuscaCop:cCaption:=" ..:: Localizar Cooperado no cadastro ::.."
              oDlgBuscaCop:lTransparent:=.F.
              oDlgBuscaCop:lHelpIcon:=.f.
              oDlgBuscaCop:oFont:=oPub:fNorm11
              oDlgBuscaCop:SetColor(oPub:CorPreto,oPub:CorCinza)

    REDEFINE SAY ID 1001 OF oDlgBuscaCop FONT oPub:fNorm11 COLOR oPub:CorPreto,oPub:CorCinza
    REDEFINE GET Onombusca VAR _nombusca PICTURE "@!K" ID 101 OF oDlgBuscaCop FONT oPub:fBCour13 COLOR oPub:CorGet,oPub:CorFundoGet UPDATE ;
                 on Change(Conteudo(Onombusca,nKey,oBrwBuscaCop))

    REDEFINE xBrowse oBrwBuscaCop ID 201 OF oDlgBuscaCop Alias("COP") COLUMNS 1,2
            oBrwBuscaCop:bKeydown            := { |nkey| if(nkey == VK_RETURN,(_codcop:=COP->a_codcop,Ocodcop:Refresh(),oDlgBuscaCop:END()),NIL ) }
            oBrwBuscaCop:SetColor( PRETO,CINZACC )
            oBrwBuscaCop:l2007               := .T.
            oBrwBuscaCop:lAllowRowSizing     := .F.                                 //  Nao move as Linhas (nao sei)
            oBrwBuscaCop:lHScroll            := .F.                                 //  Barra rolagem Horizontal
            oBrwBuscaCop:lVScroll            := .T.                                 //  Barra rolagem vertical
            oBrwBuscaCop:lRecordSelector     := .T.                                 //  Barra aponta registro lateral esquerda;
            oBrwBuscaCop:nRecSelColor        := RGB(205,220,255)                    //  cor da barra lateral pontador de linha
            oBrwBuscaCop:lAllowColSwapping   := .F.                                 //  Click no header (.f.)Trava
            oBrwBuscaCop:nDataLines          := 1
            oBrwBuscaCop:lColDividerComplete := .T.                                 //  linha divisoria de colunas mesmo com tabela vazia.
            oBrwBuscaCop:bClrStd             := {|| { AZUL,FundoGet          } }    //  cor da linha sem focu
            oBrwBuscaCop:bClrSel             := {|| { AZUL,FundoGet          } }    //  cor da celula sem focu
            oBrwBuscaCop:bClrSelFocus        := {|| { PRETO,RGB(188,210,238) } }    //  cor da celula  em focu
            oBrwBuscaCop:bClrRowFocus        := {|| { PRETO,RGB(188,210,238) } }    //  cor da coluna sem focu
            oBrwBuscaCop:nColDividerStyle    := 4                                   //  cor da divisao de coluna LINESTYLE_LIGHTGRAY
            oBrwBuscaCop:nRowDividerStyle    := 4                                   //  cor da divisao da linha  LINESTYLE_LIGHTGRAY
            oBrwBuscaCop:nMarqueeStyle       := 5 //MARQSTYLE_HIGHLROW              //  tipo de linha selecionada MARQSTYLE_HIGHLROW
            oBrwBuscaCop:nRowHeight          := 20
            oBrwBuscaCop:SetRDD()

            oBrwBuscaCop:lHeader             := .T.                                 //  se vai mostrar header cabeçalho)
            oBrwBuscaCop:nHeaderLines        := 1
            oBrwBuscaCop:nHeaderHeight       := 22
            oBrwBuscaCop:bClrHeader          := {|| {oPub:CorPreto,RGB(205,220,255) }}      // cor do reader

            oBrwBuscaCop:aCols[1]:cHeader      :="Cooperado"
            oBrwBuscaCop:aCols[1]:nHeadStrAlign:=AL_CENTER
            oBrwBuscaCop:aCols[1]:nDataStrAlign:=AL_LEFT
            oBrwBuscaCop:aCols[1]:bStrData     :={|| COP->a_nomcop }
            oBrwBuscaCop:aCols[1]:oDataFont    :=oPub:fBCour13
            oBrwBuscaCop:aCols[1]:nWidth       :=380

            oBrwBuscaCop:aCols[2]:cHeader      :="Sta"
            oBrwBuscaCop:aCols[2]:nHeadStrAlign:=AL_CENTER
            oBrwBuscaCop:aCols[2]:nDataStrAlign:=AL_CENTER
            oBrwBuscaCop:aCols[2]:bStrData     :={|| IF(COP->a_fl1cop=="L","",COP->a_fl1cop) }
            oBrwBuscaCop:aCols[2]:oDataFont    :=oPub:fBCour13
            oBrwBuscaCop:aCols[2]:nWidth       :=20

PCS_ATIVADIALOG('oDlgBuscaCop')
Ocodcop:SetFocus()
RETURN(.T.)

    **---------------------------------------------**
        Static Function Conteudo(oGetP,xKey,oDlgg)
    **---------------------------------------------**
        Local RetornoChave:=""
        MontaChaveBuscaArquivo(oGetP,xKey,oDlgg,@RetornoChave)
        IF(Len(AllTrim(retornochave))==0)
            _busca:="A"
        ELSE
            _busca:=AllTrim(RetornoChave)
        ENDIF
        COP->(DBSeek(_busca))
        oBrwBuscaCop:Refresh()
        Return(.t.)
   **----------------------------------------------------**
        STATIC FUNCTION MontaChaveBuscaArquivo(oGetP,xKey,oDlgg,RetornoChave)
    **----------------------------------------------------**
        Local cChave:=(oGetP:oGet:Buffer)//,nPosAnt:=Recno()
        RetornoChave:=AllTrim(cChave)
        Return(RetornoChave)
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...