Registros Deletados

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

Avatar do usuário
Amparo
Usuário Nível 3
Usuário Nível 3
Mensagens: 342
Registrado em: 20 Ago 2010 10:38
Localização: caieiras / sao paulo

Registros Deletados

Mensagem por Amparo »

Ola amigos, Saudações a todos

preciso pintar os registros deletados em um TBROWSE, já bati a cabeça mudando varias instruções e não consegui efeito correspondente.

abaixo segue parte de como monto meu TBROWSE

Código: Selecionar todos

SELECT( ALIAS_FICHA )

( ALIAS_FICHA )->( DBGOTOP() )

DEFINE TBROWSE CRIATABSBROW AT 100,005 OF CRIATABFORM ALIAS ALIAS_FICHA WIDTH NLARGURA - 15 ;
 HEIGHT NALTURA - 160 FONT "Arial" SIZE 08 ;
 ON CHANGE { SETPROPERTY( "CRIATABFORM" , "LBREGATU" , "VALUE" , STRZERO( KEYNO(),6 ) + "/" + STRZERO( KEYCOUNT(),6 ) ) } ;
 ON DBLCLICK EDIT_INSERT( 2, "CRIATABFORM", "CRIATABSBROW", AFUNC ) ;
 CELLED ON HEADCLICK { &CABECALHO. }

 f := LEN( COLUNA_FIELDS )

 FOR W := 1 TO f STEP 1
   IF COLUNA_TABELA[W] == 'Calculada'
      NUM := W

      bMacro:=&( "{ || IIF( " + COLUNA_FIELDS[NUM]+ "," +COLUNA_CONDY[NUM]+ "," +COLUNA_CONDZ[NUM]+")}" )

      ADD COLUMN TO CRIATABSBROW HEADER COLUNA_TITULO[W] SIZE COLUNA_TAMANHO[W] FOOTER "";
      PICTURE COLUNA_PICTURE[W] 3DLOOK TRUE DATA bMacro ;
      ALIGN IIF(COLUNA_TIPO[W] == "C",DT_LEFT , IIF( COLUNA_TIPO[W] == "N", DT_RIGHT , DT_CENTER ) ) , ;
      nMakeLong( DT_CENTER, 3 )
   ELSE
      ADD COLUMN TO CRIATABSBROW HEADER COLUNA_TITULO[W] SIZE COLUNA_TAMANHO[W] FOOTER "";
      PICTURE IIF( COLUNA_TIPO[W] == "N", COLUNA_PICTURE[W], "@!" ) ;
      3DLOOK TRUE DATA FIELDWBLOCK( COLUNA_FIELDS[W], SELECT( COLUNA_TABELA[W] ) ) ;
      ALIGN IIF( COLUNA_TIPO[W] == "C", DT_LEFT , IIF( COLUNA_TIPO[W] == "N", DT_RIGHT , DT_CENTER ) ) , ;
      NMAKELONG( DT_CENTER, 3 )
   ENDIF

   IF LEN( COLUNA_BLOCO ) > 0 
      IF !EMPTY( COLUNA_BLOCO[W] )
         Y := W
      ELSE
         IF COLUNA_COR[W] = 'COR_VERDE'
            CRIATABSBROW:Setcolor( { 2 }, { COR_VERDE },W )   //{ 2 } COLOCA COR NO FUNDO DAS CELULAS NA COLUNA W
         ELSEIF COLUNA_COR[W] = 'COR_AMARELA'
            CRIATABSBROW:Setcolor( { 2 }, { COR_AMARELA },W )   
         ELSEIF COLUNA_COR[W] = 'COR_VERMELHA'
            CRIATABSBROW:Setcolor( { 2 }, { COR_VERMELHA },W )  
         ELSE
            CRIATABSBROW:Setcolor( { 2 }, { COR_BRANCA },W )   
         ENDIF
      ENDIF
   ENDIF

   *IF ( ALIAS_FICHA )->( Deleted() )
   *    CRIATABSBROW:SetColor( { 2 } , { COR_VERMELHA }, W )
   *ENDIF 
 END FOR

 CRIATABSBROW:SetColor( { 1,3,4,6 } , { COR_PRETA, COR_PRETA, COR_AZULCLARO , COR_LARANJA } )

 CRIATABSBROW:nHeightCell = 20                    // altura de celula do browse
 CRIATABSBROW:nHeightHead = 30                    // altura do texto das colunas

 FOR X = 1 TO LEN( CAMPO_INDEXADO )
   IF SUBSTR( CAMPO_INDEXADO,X,1 ) == '+'
      EXIT
   ENDIF

   NOMEORDEM += SUBSTR( CAMPO_INDEXADO,X,1 )
 END FOR

 FOR X = 1 TO LEN( COLUNA_TAMANHO )
   IF ALLTRIM( COLUNA_FIELDS[X] ) $ ALLTRIM( NOMEORDEM )
      CRIATABSBROW:HiliteCell(X)           //POSICIONA O CURSOR NA COLUNA X

      CRIATABSBROW:SetColor( { 2,4,14 }, { { COR_AZULCLARO, COR_AZULCLARO }, ;
      { COR_AZULCLARO, COR_AZULCLARO }, { COR_AZULCLARO, COR_AZULCLARO } } ,X )        // PINTA O TEXTO E A COLUNA X QUE INDICA UMA ORDEM DE INDICES
      
      SetProperty ( "CRIATABFORM", 'LBPESQ', 'VALUE' , COLUNA_FIELDS[X] + '.:' )
      EXIT
   ENDIF
 END FOR

 CRIATABSBROW:GODOWN()
 CRIATABSBROW:GOUP()

 RefreshBrowse( CRIATABSBROW )
END TBROWSE
wesley assis
Usuário Nível 1
Usuário Nível 1
Mensagens: 37
Registrado em: 08 Abr 2010 16:16
Localização: Belo Horizonte - MG

Registros Deletados

Mensagem por wesley assis »

Meu caro, boa tarde!

Na linha 47 parece que está querendo colocar cor vermelha quando deletado. Correto?
Já tentou:
IF DELETED() == .T.
CRIATABSBROW:SetColor( { 2 } , { COR_VERMELHA }, W )
ENDIF


Retorne, por favor caso tenha êxito ou não.
Abraço

Wesley Assis
Avatar do usuário
Amparo
Usuário Nível 3
Usuário Nível 3
Mensagens: 342
Registrado em: 20 Ago 2010 10:38
Localização: caieiras / sao paulo

Registros Deletados

Mensagem por Amparo »

ola amigos

sim já tentei e não funciona.

por isso comentei a linha.

da linha 31 a 45 funciona normal só que pinta a coluna "W" de todos os registros, mais ai é outra situção.


abraços
Avatar do usuário
NiltonGM
Usuário Nível 3
Usuário Nível 3
Mensagens: 397
Registrado em: 05 Jun 2014 23:47
Localização: Caieiras/SP

Registros Deletados

Mensagem por NiltonGM »

Rapaiz, esse tal de TBrowse me faz lembrar do saudoso Clipper 5.3b, rs... Quando migrei do Clipper para Harbour (com HMG) a intenção foi desenvolver em 32bits é claro, mas também foi abandonar o DBF e usar MySQL, me disseram que usar GRID seria melhor que a classe TBrowse, desde então sempre usei o componente GRID, vc pode usar com DBF, array ou MySQL, na GRID para mudar a cor de uma determinada linha na grade conforme o resultado de uma expressão é a propriedade DYNAMICBACKCOLOR passando um code block { || iif( Deleted(), RED, {255,90,90} ) }

Um forte abraço!
Nilton Medeiros
nilton@sistrom.com.br
Responder