Página 1 de 1

PESQUISA EM UM TBROWSE

Enviado: 30 Abr 2005 12:51
por JOSE ROBERTO
Ola amigos não estou conseguindo retornar uma busca no tbrowse alguem tem uma funcção pronta ou pode me dar um auxilio

Código: Selecionar todos

FUNCTION ConsultaTitulo() 
PRIVATE wPesq,Tama,Mdt1,Mdt2 
PRIV aCampos:={{"UA","!!","Cor"},; 
{"TITULO","999999-9","C¢digo"},; 
{"ASSO","@!","Usu rio"}} 
SELECT 1 
USE REGIST 
INDEX ON TITULO TO IND 
SET INDEX TO IND 
J_ANELA(2,3,20,76,"B+/BG","N/BG","W/BG"," (LISTAGEM DE CONTRATOS) ") 
BRW_ARQ(2,3,20,76,aCampos) 
retu 

PROC BRW_ARQ 
PARAMETERS brw_mat 
brw:=TBrowseNew(3,13,19,67) 
* private n:= 1, ntot:=len(brw_mat) 
PARAMETERS brw_ls,brw_cs,brw_li,brw_ci,brw_campos 
brw:=TBrowseNew(brw_ls+1,brw_cs+1,brw_li-1,brw_ci-1) 

brw:colorspec := "B/BG,R/BG,G/BG,W+/W,N/BG" 
brw:headsep:=chr(205)+chr(209)+chr(205) 
brw:colsep:=" "+chr(179)+" " 
brw:gotopblock({|| dbGoTop()}) 
brw:gobottomblock({|| dbGoBottom()}) 
brw:skipblock({|_1| MOV_PTR(_1)}) 

FOR i_=1 TO LEN(brw_campos) 
cp_titu:=brw_campos[i_,3] 
cp_masc:=brw_campos[i_,2] 
cp_:=brw_campos[i_,1] 
brw:addcolumn(tbcolumnnew(cp_titu,&("{||TRAN("+cp_+",["+cp_masc+"])}"))) 
brw:getcolumn(i_):width := LEN(TRAN(&cp_.,cp_masc)) 
brw:getcolumn(i_):colorblock=&("{||IF(UA='02',{1,4},IF(UA='03',{2,4},"+; 
"IF(UA='04',{3,4},{5,4})))}") 
NEXT 
volta_db=.t. 
st_pesq:="" 
DO WHILE volta_db 
SETCOLOR("W+/B") 
SET CURSO OFF 
DO WHILE !brw:stabilize() .AND. NEXTKEY()=0 
ENDD 
READINSERT(.f.) 
x_ = COL() ; y_ = ROW() 
tecl_p:=INKEY(0) 
carac_ = UPPER(CHR(tecl_p)) 
SET CURSO ON 
brw:dehilite() 
nKey := LASTKEY() 
DO CASE 
CASE tecl_p = K_ESC 
volta_db=.f. 
CASE tecl_p = K_UP 
brw:up() 
CASE tecl_p = K_DOWN 
brw:down() 
CASE tecl_p = K_RIGHT 
brw:right() 
CASE tecl_p = K_LEFT 
brw:left() 
CASE tecl_p = K_HOME 
brw:home() 
CASE tecl_p = K_END 
brw:end() 
CASE tecl_p = K_PGUP 
brw:pageup() 
CASE tecl_p = K_PGDN 
brw:pagedown() 
CASE tecl_p = K_CTRL_PGDN 
brw:gobottom() 
CASE tecl_p = K_CTRL_PGUP 
brw:gotop() 
CASE tecl_p = K_CTRL_END 
brw:panend() 
CASE tecl_p = K_CTRL_HOME 
brw:panhome() 
CASE tecl_p = K_CTRL_LEFT 
brw:panleft() 
CASE tecl_p = K_CTRL_RIGHT 
brw:panright() 
CASE tecl_p = K_ENTER 
   CAD_TIT() 
CASE tecl_p =K_F4 
   BuscaAvancada() 
ENDD
ENDD 
SET CURSO ON 
RETU 

FUNC MOV_PTR(a_pular) 
LOCAL ja_pulado := 0, chv_ 
IF a_pular = 0 
SKIP 0 
ELSE 
DO WHILE !EOF() .AND. !BOF() .AND.; 
a_pular != ja_pulado 
IF a_pular > 0 
SKIP 
ja_pulado++ 
ELSE 
SKIP -1 
ja_pulado-- 
ENDI 
ENDD 
IF EOF() .OR. BOF() 
IF a_pular > 0 
GO BOTTOM 
ja_pulado-- 
ELSE 
GO TOP 
ja_pulado++ 
ENDI 
ENDI 
ENDI 
RETU ja_pulado 

FUNCTION J_ANELA 
PARAMETERS L1,C1,L2,C2,C_OR1,C_OR2,C_OR3,T_ITULO 
CORR=SETCOLOR() 
SET COLOR TO &C_OR1 
@ L1,C1 CLEAR TO L2,C2 
@ L1,C1 SAY 'Ú'+REPLICATE(CHR(196),C2-C1-1)+'¿' 
SET COLOR TO &C_OR3 
@ L1,(80-LEN(T_ITULO))/2 SAY T_ITULO 
FOR A=L1+1 TO L2-1 
SET COLOR TO &C_OR1 
@ A,C1 SAY '³' 
SET COLOR TO &C_OR2 
@ A,C2 SAY '³' 
NEXT A 
SET COLOR TO &C_OR2 
@ L2,C1 SAY 'À'+REPLICATE(CHR(196),C2-C1-1)+'Ù' 
SETCOLOR(CORR) 
RETURN 
// tenho esta funcao de busca mas ela nao retorna o dados pesquisado
sempre volta no primeiro registro

Código: Selecionar todos

FUNCTION BuscaAvancada() 
LOCAL aSelcli := win( 13,09,18,71,"Escolha o tipo de sele‡„o desejada", WT_AZUL2BRANCO, WD_AZUL2BRANCO ) 
TONE(800,6) 
Setcursor(If(Readinsert(),3,1)) 
SET ORDER TO 2 
SETCOLOR([N+/W*,W+/BG]) 
@ 15,11 PROM [TITULO] 
@ 15,COL()+2 PROM [SITUACAO] 
@ 15,COL()+2 PROM [DATA] 
SETCOLOR([N+/W*,W+/GR]) 
@ 15,col()+2 PROM [DATA/UA] 
@ 15,COL()+2 prom [ASSOCIADO] 
MENU TO XR1 
IF XR1=1 
WPESQ=SPACE(11) 
@ 17,14 SAY [TITULO.......:] GET WPESQ PICT [@!] 
READ 
TAMA=LEN(ALLTRIM(WPESQ)) 
SET FILTER TO LEFT(TITULO,TAMA)=ALLTRIM(WPESQ) 

ELSEIF XR1=2 
WPESQ=SPACE(21) 
@ 17,14 SAY [SITUACAO...:] GET WPESQ PICT [@!] 
READ 
TAMA=LEN(ALLTRIM(WPESQ)) 
SET FILTER TO LEFT(SIT,TAMA)=ALLTRIM(WPESQ) 

ELSEIF XR1=3 
MDT1=CTOD([ / / ]) 
MDT2=CTOD([ / / ]) 
@ 17,14 SAY [Datas p/ sele‡„o, do dia - GET MDT1 PICT [@d] 
@ 17,53 SAY [At‚ - GET MDT2 PICT [@d] 
READ 
SET FILTER TO DATA >= MDT1 .AND. DATA <= MDT2 

ELSEIF XR1=4 
MDT1=CTOD([ / / ]) 
MDT2=CTOD([ / / ]) 
WPESQ=SPACE(02) 
@ 17,10 SAY [D Inicial- GET MDT1 PICT [@d] 
@ 17,40 SAY [D.Final - GET MDT2 PICT [@d] 
@ 17,60 say [Ua: ] GET Wpesq Pict [@!] 
READ 
SET FILTER TO DATA >= MDT1 .AND. DATA <= MDT2 .AND. UA=ALLTRIM(WPESQ) .AND. SIT<>"1" 

ELSEIF XR1=5 
WPESQ=SPACE(40) 
@ 17,14 SAY [ASSOCIADO...:] GET WPESQ PICT [@!] 
READ 
TAMA=LEN(ALLTRIM(WPESQ)) 
SET FILTER TO LEFT(ASSO,TAMA)=ALLTRIM(WPESQ) 
endif 
GO TOP 
RstEnv(aSelcli) 
RETURN DE_REFRESH

retorno da pesquisa no Tbrowse

Enviado: 01 Mai 2005 18:26
por gavel
Ficou bacana seu Tbrose Jose Roberto. O erro está no retorno
da "FUNCTION BUSCAVANCADA"

ao invés de
"RETURN DE_REFRESH"

coloque
"brw:refreshall()"
"RETURN"

Abraços
Gavel :xau