Clipper On Line • Ver Tópico - DYNAMICBACKCOLOR da GRID

DYNAMICBACKCOLOR da GRID

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

 

DYNAMICBACKCOLOR da GRID

Mensagempor Amparo » 18 Dez 2019 11:03

ola amigos,

bom dia a todos,

Harbour MiniGUI Extended Edition 19.02 (Release)
BRMAKE - Make File para Harbour/xHarbour/MiniGUI Versão 2.05 FreeWare
BASE DE DADOS MySql

pessoal gostaria de saber como faço para mudar a cor no DYNAMICBACKCOLOR da grid

tenho a tela de cliente onde existem diversas grides onde o usuário acaba escolhendo qual ira abrir, cada grid contem uma determinada coluna, a estrutura da grid eu tenho dentro de uma tabela que chamo de LAYOUT onde tem um campo chamado TB_FIELDS tipo LONGTEXT, este campo esta composto desta forma:
A:CLIENTES;F:CODIGO;H:Codigo;L:15;C:;B:;P:;T:C;
A:CLIENTES;F:NOME;H:Nome;L:43;C:;B:;P:;T:C;
A:CLIENTES;F:LIM_CREDIT;H:Credito;L:14;C:;B:{|Z| iif( VAL(Z[3])<= 500.00, COR_GRID_ROSA,COR_GRID_LILAS )};P:@ 999,999.99;T:N;
A:CALCULADA;F:IF(LIM_CREDIT<=400.00,LIM_CREDIT*1.10,IF( LIM_CREDIT > 400.00 AND LIM_CREDIT <= 600.00, LIM_CREDIT*1.20,LIM_CREDIT*1.30));H:AUMENTO;L:20;M:AUMENTO;C:COR_GRID_ROSA;B:;P:;T:N;
A:CLIENTES;F:CONCEITO;H:Conceito;L:15;C:;B:;P:;T:C;
A:CALCULADA;F:IF(CONCEITO="BOM","VENDA LIBERADA", IF(CONCEITO="NOVO","VERIFICAR","NEGADO"));H:SITUAÇÃO;L:12;M:SITUACAO;C:COR_GRID_VERDE;B:;P:;T:C;
A:CLIENTES;F:CONTATO;H:CONTATO;L:15;C:;B:;P:;T:C;
A:CLIENTES;F:TELEFONE_1;H:TELEFONE_1;L:12;C:;B:;P:;T:C;


onde:
A: - nome da tabela
F: - nome do campo
H: - nome do HEADERS
l: - tamanho da coluna
C: - a cor da coluna
B: - a condição para aplicar cores na linhas e colunas
p: - a picture do campo
t: - o tipo da coluna TEXTO, NUMERICA, LOGICA e DATA

tenho um vetor chamado ESTRUTURA_DA_GRID que recebera os dados acima e uma variável chamada DBACKCOLOR que armazena as condições de B: que montado desta forma:
FOR X := 1 TO F STEP 1
  AHEADERS   += "'" + ESTRUTURA_DA_GRID[X,4] + IIF( X < F,"',","'" )
  AWIDTHS    += ALLTRIM( STR( ESTRUTURA_DA_GRID[X,5] ) ) + IIF( X < F,",","" )

  IF X = 1
     DBACKCOLOR += "COR_GRID_AZULCLARO"
  ELSE
     IF !EMPTY( ESTRUTURA_DA_GRID[X,10] )
        DBACKCOLOR += ESTRUTURA_DA_GRID[X,10]
     ELSE
        IF EMPTY( ESTRUTURA_DA_GRID[X,11] )
           DBACKCOLOR += "COR_GRID_BRANCA"
        ELSE
           DBACKCOLOR += ESTRUTURA_DA_GRID[X,11]
        ENDIF
     ENDIF
  ENDIF

  IF ESTRUTURA_DA_GRID[X,8] = "N"
     AJUSTIFY += "1" + IIF( X < F,",","" )
  ELSE
     AJUSTIFY += IIF( X < F,"0,","" )
  ENDIF

  CABECALHOS_GRID := CABECALHOS_GRID + "{|| PROPRIEDADES_COLUNA( " + ALLTRIM( STR( X ) ) +" ) }"

  IF X < F
     DBACKCOLOR += ","
     CABECALHOS_GRID := CABECALHOS_GRID + " , "
  ENDIF
NEXT


a grid estou montando desta forma:
 DEFINE GRID GRID_GERAL
  ROW 100
  COL 005
  WIDTH LARGURA_DESKTOP - 20
  HEIGHT ALTURA_DESKTOP - 150
  HEADERS {&AHEADERS.}
  WIDTHS {&AWIDTHS.}
  ITEMS   AROWS
  VALUE 1
  FONTNAME "Arial"
  FONTSIZE 10
  FONTBOLD .T.
  DYNAMICBACKCOLOR {&DBACKCOLOR.}
  ONCHANGE NUM_REG()
  ONDBLCLICK EDIT_INSERT_REGISTROS( 2 )
  ONHEADCLICK { &CABECALHOS_GRID. }
  CELLNAVIGATION .T.
  MULTISELECT .F.
  JUSTIFY {&(AJUSTIFY)}
  LOCKCOLUMNS 1
  PAINTDOUBLEBUFFER .T.
END GRID


no caso a terceira coluna que é CREDITO esta sendo pintada de PRETO já tentei varias formas e não consegui resultado, cfe o print da tela.

se alguém puder ajudar agradeço

abraço
Anexos
tela de cliente.png
Avatar de usuário

Amparo
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 337
Data de registro: 20 Ago 2010 10:38
Cidade/Estado: caieiras / sao paulo
Curtiu: 0 vez
Mens.Curtidas: 2 vezes

DYNAMICBACKCOLOR da GRID

Mensagempor Amparo » 18 Dez 2019 11:05

ola amigos

esqueci de mencionar que as cores esta em variáveis desta forma:
PUBLIC COR_GRID_BRANCA := {|| RGB( 255,255,255 )}
PUBLIC COR_GRID_AMARELA := {|| RGB( 255,255,000 )}
PUBLIC COR_GRID_AZUL := {|| RGB( 000,000,255 )}
PUBLIC COR_GRID_AZULCLARO := {|| RGB( 121,188,255 )}
PUBLIC COR_GRID_VERDE := {|| RGB( 000,255,000 )}
PUBLIC COR_GRID_VERDEESCU := {|| RGB( 000,128,000 )}
PUBLIC COR_GRID_VERMELHA := {|| RGB( 255,000,000 )}
PUBLIC COR_GRID_ROSA := {|| RGB( 255,128,255 )}
PUBLIC COR_GRID_LARANJA := {|| RGB( 255,128,000 )}
PUBLIC COR_GRID_LILAS := {|| RGB( 128,000,128 )}
PUBLIC COR_GRID_PRETA := {|| RGB( 000,000,000 )}
PUBLIC COR_GRID_CINZA := {|| RGB( 128,128,128 )}

abraço
Avatar de usuário

Amparo
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 337
Data de registro: 20 Ago 2010 10:38
Cidade/Estado: caieiras / sao paulo
Curtiu: 0 vez
Mens.Curtidas: 2 vezes

DYNAMICBACKCOLOR da GRID

Mensagempor Amparo » 19 Dez 2019 07:41

ola amigos

bom dia a todos

ficou faltando um detalhe para esclarecimento, o vetor que carrego o conteúdo de B:{|Z| iif( VAL(Z[3])<= 500.00, COR_GRID_ROSA,COR_GRID_LILAS )}
é o ESTRUTURA_DA_GRID[X,10] na linha 9 da montagem da variável DBACKCOLOR

abraços
Avatar de usuário

Amparo
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 337
Data de registro: 20 Ago 2010 10:38
Cidade/Estado: caieiras / sao paulo
Curtiu: 0 vez
Mens.Curtidas: 2 vezes




Retornar para MiniGui

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 3 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro