<RESOLVIDO>Alterar dinamicamente cor de fundo de um campo</RESOLVIDO>

Olá, preciso muito da ajuda de vocês!

Estou tentando fazer o seguinte procedimento e não consegui,olhe que já pesquisei muito no fórum!!

1º - Tenho um cadastro de percentuais e cores para cada percentual.
2º - Tenho um relatório que para cada percentual o campo muda de cor de acordo com o que foi cadastrado.

EX: campo 01 está com 8%, a cor do campo seria Azul.
EX_02 : campo 02 está com 5% a cor do campo seria vermelho.

Alguma alma caridosa para me ajudar??
Agradeço desde já!!

Olá, Andre Batista!
Você pode criar um array com as cores e outro com os valores.
E no evento onde quer colorir o objeto você faz a verificação.

Ex: $array_cores = array (1 => “blue”, 2 => “green”…);

if($valor_percent > 0 && $valor_percent <= 9){

   $objeto_backgroundcolor = $array_cores[1];

}

Ola Cleidson, obrigado pela resposta!

Sobre o Array já consegui fazer essa solução, porém o problema é que o background do campo não vai aceitar essa variável $objeto_backgroundcolor,esse é o meu grande problema.

Qual o tipo de aplicação que você esta usando?

uma grid(consulta).

olhe as macros para consulta no webhelp

http://www.scriptcase.com.br/docs/pt_br/v81/macros-scriptcase/macros-scriptcase#sc_field_color

Em uma aplicação que mudo a cor de fundo de acordo com critérios uso a Macro sc_field_style().
No evento onRecord da grid coloco minhas condições e funciona bem.

Tente com essa macro, acho que vai te atender.

Bom como eu gosto de comodidade e facilidade, já adicionei uma função na minha biblioteca pública interna do SC, para fazer isso:

<?php
/*
Função para Criar uma TARJETA com a String do Campo e Cor Selecionada

como usar:

Esta rotina serve tanto para ser usada em Formulários, quanto em consultas
nos Formularios criar um campo virtual: Nomeseucampo_Cor para receber
o campo com a COR se não o SC vai tentar gravar ele com HTML junto.

FORMULARIOS
{Status_Cor} =  TarjetaCOR({Status}, 'VERDE CLARO');


CONSULTAS
FORMULARIOS
{Status_Cor} =  TarjetaCOR({Status}, 'VERDE CLARO');

O SC tem uma macro que configura a COR, ESTILO, etc, especifica
para CONSULTAS: sc_field_style({Operacao}, '#FF0000', '12px', '#FFFFFF', 'Arial, sans-serif', 'bold');

* Mas o SC não tem esta macro para formulários, por isso usamos esta rotina, para facilitar em ambos.


*/

function TarjetaCOR($String, $Cor) {

	$CorSelecionada='style=color:white;background:green';
	if ($Cor=='ROXO') {
		$CorSelecionada='style=color:white;background:#6500CC';
	}
	if ($Cor=='VERDE ESCURO') {
		$CorSelecionada='style=color:white;background:#003300';
	}
	if ($Cor=='ROSA') {
		$CorSelecionada='style=color:white;background:#FF00FF';
	}
	if ($Cor=='BRANCO') {
		$CorSelecionada='style=color:black;background:#FFFFFF';
	}
	if ($Cor=='LARANJA') {
		$CorSelecionada='style=color:white;background:#FF6500';
	}
	if ($Cor=='VERMELHO ESCURO') {
		$CorSelecionada='style=color:white;background:#800000';
	}
	if ($Cor=='VERDE CLARO') {
		$CorSelecionada='style=color:white;background:#008000';
	}
	if ($Cor=='MARRON') {
		$CorSelecionada='style=color:white;background:#993300';
	}
	if ($Cor=='CINZA') {
		$CorSelecionada='style=color:white;background:#808080';
	}
	if ($Cor=='AMARELO') {
		$CorSelecionada='style=color:black;background:#FFFF00';
	}
	if ($Cor=='PRETO') {
		$CorSelecionada='style=color:white;background:#000000';
	}
	if ($Cor=='VERMELHO CLARO') {
		$CorSelecionada='style=color:white;background:#FF0000';
	}
	if ($Cor=='BEGE') {
		$CorSelecionada='style=color:black;background:#FFCC99';
	}
	if ($Cor=='AZUL ESCURO') {
		$CorSelecionada='style=color:white;background:#000080';
	}
	if ($Cor=='AZUL CLARO') {
		$CorSelecionada='style=color:white;background:#3365FF';
	}
	
	$Retorno='<font '.$CorSelecionada.'><b>'.'&nbsp&nbsp'.$String.'&nbsp&nbsp'.'</b></font>';
	
	return $Retorno;	
	
} // Fim da Função: function TarjetaCOR($Tipo, $String, $Cor)

?>

Obrigado a todos!

Realmente não me atentei e não conhecia a macro sc_field_style.

Agradeço a todos pela disposição!

Abraços!

Olá pessoal boa noite.
Apenas partilhando uma solução bem simples que encontrei para a questão:
Fonte: https://forum.scriptcase.net/forum/scriptcase-7/bugs/4709-sc_field_style
No evento OnRecord:
Exemplo:
1.Criei uma variável ([cor_formatada]) com o valor do campo que contém a cor html;
[cor_formatada] = {cor};
2. Com a macro sc_field_style:
sc_field_style({cor}, [cor_formatada]);

Caso queiram os outros parâmetros, é só incrementar, olha o exemplo que fiz:

if([cor_formatada] == ‘white’ or [cor_formatada]==’#ffffff’)
{
sc_field_style({cor}, [cor_formatada],’’,black);
}
else
{
sc_field_style({cor}, [cor_formatada],’’,white);
}