Jump to content
Fivewin Brasil

Pesquisa Incremental xBrowse c/GET


zekasan

Recommended Posts

eu faço assim, tem funcionado:

DEFINE DIALOG oDlg RESOURCE "DLG_CON_MER" TITLE "..:: Manutenção de Dados .::. PRODUTOS ::.."

oDlg:lTransparent := .T.

oDlg:lHelpIcon := .F.

REDEFINE COLUMN BROWSE oBrw ID 101 OF oDlg UPDATE ON CHANGE (oBrw:Refresh(),oBrw:Display()) FONT oFont

ADD COLUMN TO BROWSE oBrw DATA M_FAMILIA TITLE "Família" SIZE 200

ADD COLUMN TO BROWSE oBrw DATA M_CODIGO TITLE "Código" SIZE 50 COLORS 128

ADD COLUMN TO BROWSE oBrw DATA M_DESCRICA TITLE "Descrição" SIZE 350 COLORS 128

ADD COLUMN TO BROWSE oBrw DATA M_REFERENC TITLE "Referência" SIZE 100

ADD COLUMN TO BROWSE oBrw DATA M_CODBAR TITLE "Código de Barras" SIZE 100

*

If nTp = 1

ADD COLUMN TO BROWSE oBrw DATA M_CN TITLE "Quant." SIZE 150

Else

ADD COLUMN TO BROWSE oBrw DATA M_QUANTIDA TITLE "Estoque" SIZE 100

ADD COLUMN TO BROWSE oBrw DATA M_CN TITLE "C/N" SIZE 100

ADD COLUMN TO BROWSE oBrw DATA M_SN TITLE "S/N" SIZE 100

ADD COLUMN TO BROWSE oBrw DATA M_CUSTO TITLE "Pr.Custo" SIZE 150 COLORS 128

End

*

ADD COLUMN TO BROWSE oBrw DATA M_VENDA TITLE "Pr.Venda" SIZE 150 COLORS 128

ADD COLUMN TO BROWSE oBrw DATA M_FORNECED TITLE "Fornecedor" SIZE 200

ADD COLUMN TO BROWSE oBrw DATA M_EMINIMO TITLE "Est.Min." SIZE 200

ADD COLUMN TO BROWSE oBrw DATA M_EMAXIMO TITLE "Est.Máx." SIZE 200

*

REDEFINE COMBOBOX oCbx VAR cCampo PROMPTS {"Descrição","Código","Referência","Família","Fornecedor"} UPDATE ID 108 OF oDlg

*

REDEFINE GET oGet VAR cProcura ID 106 OF oDlg ON CHANGE (BcDdProduto(oGet,cCampo,oBrw), oDlg:Refresh())

*

REDEFINE BUTTON ID 107 OF oDlg ACTION (EditProduto(1), oDlg:Update(), oDlg:Refresh())

REDEFINE BUTTON ID 105 OF oDlg ACTION (MsgAlert("Finalizar Consulta","Mensagem"), oDlg:End())

REDEFINE BUTTON ID 102 OF oDlg ACTION (EditProduto(2), oDlg:Update(), oDlg:Refresh())

REDEFINE BUTTON ID 103 OF oDlg ACTION (Excluir(), oDlg:Update(), oDlg:Refresh())

*

ACTIVATE DIALOG odlg CENTER

*

DbCloseAll()

Return

*

Function BcDdProduto(cP,cC,oB)

Local cPro := cP:cText()

Do Case

Case AllTrim(cC) == "Descrição"

Sel(DBF(),2)

cC := "M_DESCRICA"

Case AllTrim(cC) == "Família"

Sel(DBF(),4)

cC := "M_FAMILIA"

Case AllTrim(cC) == "Fornecedor"

Sel(DBF(),3)

cC := "M_FORNECED"

Case AllTrim(cC) == "Código"

Sel(DBF(),1)

cC := "M_CODIGO"

Case AllTrim(cC) == "Referência"

Sel(DBF(),5)

cC := "M_REFERENC"

OTHERWISE

cC := "M_DESCRICA"

EndCase

*

dbSetOrder( INDEXORD() ) // define a ordem de filtro

ordScope( 0, RTrim(cPRO) ) // TOP (De...)

ordScope( 1, RTRim(cPro) ) // BOTTOM (..Até)

dbGoTop()

*

Return(.T.)

Em Cristo! com Maria!!!

Rone O. Coura

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

xHarbour + BCC55 + FiveWin + xDevStudio

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

A pessoa que pensa que sabe alguma coisa, ainda não tem a sabedoria que precisa. (1 Cor 8, 2)

Link to comment
Share on other sites

...ou...

Com a xBrowse, vc necessariamnete nao precisa ficar digitando em um Get use o bSeek do proprio xBrw, para a pesquisa basta estar com o Browse em foco e começar a digitar, mas, para facilitar a vida do usuario e ele ir vendo oq esta digitando vc pode fazer isso aki:


*****--- SAY's DE PESQUISA E MENSAGENS ---**************************************

REDEFINE SAY oSay[1] PROMPT cMsgIndPes ID 401 OF oDlg UpDate

oSay[1]:oFont := Arial12B

oSay[1]:SetColor( CLR_BLACK, GetSysColor(15) )

REDEFINE SAY oSay[2] VAR cPesquisa ID 402 OF oDlg PICTURE "@!" UpDate

.

.

.

oBrw:bSeek := {|c| PSeek( c, oSay[2], oBrw ) }

.

.

.

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

function PSeek( c, _oGet, _oBrw )

////////////////////////////////////////////////////////////////////////////////

// Autor : Kleyber //

// Colaboracao : Dornelles / Ale SB //

// Descricao : Pesquisa Sensitiva da xBrw. //

// Parametros ==> //

// - c : Caracter Digitado //

// - _oGet : Objeto Say/Get do campo pesquisa. //

// Retorno : .t. ou .f. //

////////////////////////////////////////////////////////////////////////////////

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

DbSeek( Upper© )

if !Found()

TONE(2000, 2)

c := Substr(c, 1, Len( c ) - 1)

DbSeek( Upper( c ) )

return(.f.)

endif

_oGet:Varput©

_oGet:Refresh()

_oBrw:Refresh()

return (.t.)

id=code>id=code>

@braços

aleseribeli@hotmail.com

Andradina/SP

logo02e.jpg

"Nóis é Jeca, mais nóis é Jóia"id=red>

Link to comment
Share on other sites

não é bem isso que eu preciso, estou montando um cadastro, por isto o GET, a pesquisa é simultanea com o preenchimento do GET para verificar se o produto já foi cadastrado, caso este já exista será mostrado na xbrowse, caso contrario eu gravarei o conteúdo do GET...

FWH 8.08 - xHarbour - xDev - VLib

Link to comment
Share on other sites

Bom, no meu caso, qdo eu usava desta forma, eu nao deixava o cara cadastrar caso nao encontrar a cidade, ate pq nao precisa disso, ja q eu usava o DBF de cidades completo, entao no seu casa ta facil eh soh vc modificar a funçao Pseek q eu ja passei, para caso Nao Found, ele fechar o browse e vc continuar o cadastro, moleza..neh.

o get fica assim :


.

.

bGetCidade := {|| dbSelectArea( "Ibge" ), Aeval(oGet, {|i| i:Hide()},13,11), ;

oBrw:Show(), oBrw:SetFocus() }

bBrwCidade := {|| oGet[12]:Varput(Ibge->Cidade), oGet[12]:Refresh(), oBrw:Hide(), ;

Aeval(oGet, {|i| i:Show()},13,11), dbSelectArea( "CadaUnic" ), ;

xSetFocus(oGet[13]), oGet[13]:SetFocus(), oGet[13]:Refresh() }

.

.

.

//--> Cidade

REDEFINE Get oGet[12] VAR oDbfCadaUnic:ArCidUni ID 30 OF oDlg PICTURE "@!" UpDate

oGet[12]:bGotFocus := {|| IF( Empty(oDbfCadaUnic:ArCidUni), Eval(bGetCidade), nil ) }

oGet[12]:bAction := {|| Eval(bGetCidade) }

oBrw := TXBrowse():New( oDlg )

oBrw:CreateFromResource( 101 ) //--> Chamada ao Resource Browse.

oBrw:cAlias := ( "Ibge" )

oBrw:nMarqueeStyle := MARQSTYLE_HIGHLROW //--> Estilo da barra de seleçao.

oBrw:bClrSelFocus := {|| { CLR_BRANCO, CLR_AZULXP } } //--> Cor da barra de seleçao.

oBrw:bClrStd := { ||{ CLR_BLACK, nRgb(255,255,210) } }

oBrw:lHeader := .f.

oBrw:lRecordSelector := .f.

oBrw:lHScroll := .f.

oBrw:lVScroll := .f.

oBrw:SetRDD(.f.)

oBrw:bSeek := {|c| PSeek( c, oGet[12], oBrw) }

oBrw:bKeyDown := {|nKey| IF( nKey=13, Eval(bBrwCidade), nil ) }

oBrw:bLDblClick :={ || Eval(bBrwCidade) }

*****--- Colunas ---*****

//--> 01

oCol:= oBrw:AddCol()

oCol:bStrData := { || Ibge->Cidade }

//oCol:cHeader := "Cidade"

.

.

id=code>id=code>

Coloquei o Trem todo ai, eh soh vc agora..analizar e pegar soh oq vc precisa e ajustar para sua rotina....blz...

Obs.: Na sua tela de cadastro Crie o browse como Visivel == NO, ou qdo vc chamar sua Dialog...

ACTIVATE DIALOG oDlg ;

ON INIT( oBrw:Hide() )

@braços Ale

aleseribeli@hotmail.com

Andradina/SP

logo02e.jpg

"Nóis é Jeca, mais nóis é Jóia"id=red>

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...