Página 1 de 1

Cor no Tbrowse

Enviado: 26 Out 2004 08:45
por negrao
Pessoal, ve se tem como

Na Funcao teste() abaixo , tem um Tbrowse que exibe todos os registros que foram filtrados de acordo com o que preciso.
Dependendo do TIPO do registro, ele devera aparecer na tela de uma outra cor, para diferenciar uma entrada de uma saida por exemplo.
So que so vou saber o TIPO(se ele é entrada ou saida) do registro qndo tiver montando os registros na tela do Tbrowse.
So que nao sei onde devo por essa funcao que faca essa verificacao, ja coloquei o comando em tudo que é lugar e nao funcionou.

Como devo fazer isso ?

Obrigado

/********************************************************
tipo = E (entrada) , cor preta
tipo = S (saida) , cor vermelha
********************************************************/
STATIC FUNCTION teste()
LOCAL oTbr := TBrowseDb(02,01,22,78) ,nKey, bFilter
otbr:colorspec := "B/W,W+/BG,N/W,R/W,N/W"
oTbR:addColumn( TBColumnNew("codi", {|| tes->CODI }))
oTbR:addColumn( TBColumnNew("Data", {|| tes->DATA }))

FOR I = 1 TO 12
v_bloq=oTbr:getcolumn(i)
v_bloq:colorblock:={||IIf(!EMPTY(tes->data), IF(tipo == "E", {3,2}, {4,2}))}
NEXT

WHILE .T.
oTbr:colorrect({oTbr:rowpos,1,oTbr:rowpos,oTbr:colcount},IIF(!EMPTY(tes->data),if(tipo == "E",{3,2},{4,2}}))

DO WHILE !oTbr:stabilize() .AND. NEXTKEY() == 0
ENDDO

nKey := InKey(0)
DO CASE
cASE nKey == K_ESC ; EXIT
OTHER ; FMOVIMENTO(OTBR,NKEY) ; LOOP
ENDCASE

FIN->(dbgotop())
oTbr:refreshALL()
ENDDO
RETURN NIL

Enviado: 26 Out 2004 10:02
por Dudu_XBase
Tente agora....

Código: Selecionar todos

    otbr:colorspec := "B/W,W+/BG,N/W,R/W,N/W" 
    oCol1 :=  tbcolumnnew ("CODIGO",   {|| tes->CODIGO)})
    oCol2 :=  tbcolumnnew ("DATA",       {|| dtoc(tes->DATA)})
    

    oCol1:colorblock := {||iif (tes->TIPO="E", {3,2}, {4,2})}
    oCol2:colorblock := {||iif (tes->TIPO="E", {3,2}, {4,2})}
    
    oTbr:addcolumn(oCol1)
    oTbr:addcolumn(oCol2)

    WHILE .T.


           DO WHILE !oTbr:stabilize() .AND. NEXTKEY() == 0
           ENDDO

           nKey := InKey(0)
           DO CASE
               cASE nKey == K_ESC ; EXIT
               OTHER ; FMOVIMENTO(OTBR,NKEY) ; LOOP
           ENDCASE

           FIN->(dbgotop())
           oTbr:refreshALL()
     ENDDO

 RETURN NIL

Cor no Tbrowse

Enviado: 26 Out 2004 13:28
por negrao
Dudu_xbase , obrigado pela ajuda.

se eu tivesse esse campo TES->tipo tudo seria + facil, mas nao tenho e nao tem como ter, como falei, so vou saber o tipo do campo qndo tiver montando am tela dos registro no Tbrowse.

Pensei em chamar uma funcao que verificasse o tipo , mas nao sei onde posso colocar essa funcao.