[RESOLVIDO] Cor em campo de formulário ?

Saudações,

Pessoal, em um formulário registro único gostaria de ao selecionar a prioridade do atendimento o sistema trocasse a cor de fundo ou da fonte num formulário, assim como o SC já faz em campos que não atenderam a validação, (ficam vermelhos).

Então fiz o seguinte, criei um evento ajax no OnChange de um Campo, e inclui como parâmetro o próprio campo.

fiz as duas variações de códigos mas não funciona, alguém já conseguiu isso ? Acho que vou ter que usar o JS mais não acho o norte certo.

// tentei com
//sc_field_style;
//sc_field_color;

if ({tba_classificacao} == 1)
{
sc_field_style({tba_classificacao}, ‘#ff0000’);
}
elseif({tba_classificacao} == 2)
{
sc_field_style({tba_classificacao}, ‘#ff8000’);
}
elseif ({tba_classificacao} == 3)
{
sc_field_style({tba_classificacao}, ‘#ffff00’);
}
elseif ({tba_classificacao} == 4)
{
sc_field_style({tba_classificacao}, ‘#00ff00’);
}
elseif ({tba_classificacao} == 5)
{
sc_field_style({tba_classificacao}, ‘#0000ff’);
}

Sim a documentação esta que funciona no OnRecord, mas teria como fazer isso em Ajax ?

Valeu, abraços.

Claudney

Opa, é vou descansar um pouquinho, me parece que em formulários não temos tantos recursos quanto em consultas, amanha dou noticias!

Copie o seu código do Evento OnChange e apague ele, use o Evento OnBlur.

No Evento OnLoad do formulário colocar as cores que vai precisar:

O Campo de referência em Javascript é o nome do campo todo em minúsculo, exemplo
o campo é ‘Nome’ vai ficar nome.

echo "<script>

function COR_VERDE() {
	document.F1.tba_classificacao.style.color='white';
	document.F1.tba_classificacao.style.backgroundColor='#003300';
}

function COR_LARANJA() {
	document.F1.tba_classificacao.style.color='white';
	document.F1.tba_classificacao.style.backgroundColor='#FF6500';
}

function COR_VERMELHA() {
	document.F1.tba_classificacao.style.color='white';
	document.F1.tba_classificacao.style.backgroundColor='#800000';
}

</script>";

Colocar no Evento OnBlur,

if ({tba_classificacao}==1)
    sc_ajax_javascript('COR_VERDE()');
}
if ({tba_classificacao}==2)
    sc_ajax_javascript('COR_LARANJA()');
}
if ({tba_classificacao}==2)
    sc_ajax_javascript('COR_VERMELHA()');
}

.
.
Função de cores avulsa que pode ser adicionada depois na sua Biblioteca Interna do SC.

<?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'); // Simples campos sem Edição

---------------------------------------------------------

FORMULÁRIOS CAMPOS COM EDIÇÃO, temos que usar JavaScript:

O Campo de referência em Javascript é o nome do campo todo em minúsculo, exemplo
o campo é 'Nome' vai ficar nome.

No Evento OnLoad do formulário colocar as cores que vai precisar:
echo "<script>

function COR_VERDE() {
	document.F1.nome.style.color='white';
	document.F1.nome.style.backgroundColor='#003300';
}

function COR_LARANJA() {
	document.F1.nome.style.color='white';
	document.F1.nome.style.backgroundColor='#FF6500';
}

function COR_VERMELHA() {
	document.F1.nome.style.color='white';
	document.F1.nome.style.backgroundColor='#800000';
}

</script>";

Depois no Evento OnBlur fazer a chamada das cores:
if ({Status}=='Ativo')
    sc_ajax_javascript('COR_VERDE()');
}
if ({Status}=='Aguardando')
    sc_ajax_javascript('COR_LARANJA()');
}
if ({Status}=='Cancelado')
    sc_ajax_javascript('COR_VERMELHA()');
}

---------------------------------------------------------


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=='MARROM') {
		$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)

?>
1 Curtida

Oi Joilson, já vi que vou ter que me empenhar no JS, vamos a primeira parte não consegui fazer funcionar não, no onload (echo ") tal beleza não da erro, mas no onblur do campo não funcionou (if ({tba_classificacao}==1) sc_ajax_javascript(‘COR_VERDE()’);}
Porém o campo era combo (lookup) mas segui sua dica com a função a ser colocada na lib e funcionou beleza, criei um campo virtual (cor) e fui pegando os if e funfou beleza.

Muito obrigado, lhe devo mais uma (espero que possa pagar em breve).

Abraços.

Claudney

Desculpa mas que código mais engessado.

Não seria mais fácil criar uma função aplica_cor(cor) e passar a cor desejada direto pela função?

Seria mais didático e profissional não?

Fala grande Haroldo, cara terra de cego aquela história, funcionou do jeito do Jailton, mas me passa a sua que vou aprendendo ainda mais, valeu!
Abraços!

Sim o Haroldo vai fazer uma agora com JQuery e JavaScript e colar aqui, para todo mundo ver,
baseada na sua dúvida e campos.

Demora muito Haroldo?

Poderia facilmente mas não vou não;

E você @Jailton , saberia fazer?

image

Boa tarde, gente ainda é terça vamos deixar o stresse para sexta, muito obrigado Jailton, muito obrigado Haroldo, devo aos 2 que já me ajudaram em outras épocas e agradeço igualmente a ambos.

Abraços rapaziada.

Claudney

Macro aperfeiçoada JavaScript para formulários e controles:

Como o problema já foi marcado como resolvido o tópico será fechado.

1 Curtida