Página 1 de 1

DYNAMICBACKCOLOR da GRID

Enviado: 18 Dez 2019 11:03
por Amparo
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:

Código: Selecionar todos

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:

Código: Selecionar todos

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:

Código: Selecionar todos

 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

DYNAMICBACKCOLOR da GRID

Enviado: 18 Dez 2019 11:05
por Amparo
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

DYNAMICBACKCOLOR da GRID

Enviado: 19 Dez 2019 07:41
por Amparo
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