Campo que muda de cor

Srs.,

Estou precisando de uma solução para helpdesk onde um campo,linha ou letras mudam de cor com o passar do tempo.

tem alguma forma de programação para isto.

1 Curtida

Você precisa de um controlador que vai por meio de uma estrutura de controle (if else, case) de acordo com o resultado do controlador alterar este campo, no help do SC tem uma sessão em macros que só trata de exibição de campos.

Explicando!

Imagine que você tem uma relação de Contas a Pagar em uma Grid, e ao final delas Há um campo chamado “Baixa”! O campo tem sua fonte de cor padrão, digamos “Amarelo” e no Ato da Baixa a cor da fonte fica “Verde”.

Então!

Crie uma função tipo: mudar_cor(); Após insira o código abaixo.

if ({baixa} >= A ){
{BAIXA} = “A”;
sc_field_color (“BAIXA”, “#0000AA”);
}
else{
{BAIXA} = “V”;
sc_field_color (“BAIXA”, “#AA0000”);
}

Feito isso vá no evento onRecord e coloque a funcão criada, no caso: “mudar_cor();

É mais ou menos assim que o Saulo falou, só que expliquei com um exemplo improvisado.
Espero ter ajudado.

(FredKeyster) brother, dá uma olhada aqui…

http://www.netmake.com.br/forum/index.php/topic,5218.0.html

eu achei o menor valor…agora como retorno isso no SC pra mudar a cor do campo ?

Mesma coisa, você vai usar a macro sc_field_color, só que nesse caso você quer que fique vermelho apenas o número menor de uma determinada coluna, já que se trata de uma matriz. Terá que dentro do laço uma macro “sc_select” (não sei se essa resolve, só testando) com uma instrução SQL para selecionar o menor número de cada coluna e seguida pintar o número com a macro sc_field_color.

Abraço!

fiz esse exemplo aqui numa consulta simples e deu certo…
no entanto na matriz nao aparece…visto que tb minha visao é apenas o resumo…logo tenteo {preco_min} do resumo, já que o campo normal é {preco}.

Entendo que a app consulta já faz esse controle de laço.

assim sendo deixei o codigo apenas testando se o valor retornado é igual ao do campo.

[code]sc_lookup(dataset,“SELECT TOP (1) PERCENT dbo.precos.cod_compos_compon, dbo.precos.descricao_componente, dbo.precos.dtqcomprar, MIN(dbo.precos.preco) AS menor,
dbo.cotacao_material.idrm, dbo.cotacao_material.idfornecedor, dbo.precos.idpreco
FROM dbo.precos INNER JOIN
dbo.cotacao_material ON dbo.precos.idcoleta = dbo.cotacao_material.idcoleta
GROUP BY dbo.precos.cod_compos_compon, dbo.precos.descricao_componente, dbo.precos.dtqcomprar, dbo.cotacao_material.idrm, dbo.cotacao_material.idfornecedor,
dbo.precos.idpreco
HAVING dbo.cotacao_material.idrm = {idrm} AND dbo.precos.cod_compos_compon = {cod_compos_compon}
ORDER BY menor”);

$retorno={dataset[0][0]};
if ($retorno <= {preco} ){

sc_field_color (“preco_min”, “#0000FF”);
}
else{
sc_field_color (“preco_min”, “#AA0000”);
}
[/code]

O sendo ele muda a cor

Srs., só não enxerguei nos exemplos acima onde esta o contador de tempo, para executar o comando abaixo?

Caros Colegas, gostaria que a cor da letra ou campo mude conforme o tempo, alguem pode me ajudar.

Desde já agradeço a todos.

Celso cada dia você quer uma cor diferente? é interessante você ser mais especifico na sua regra. Por exemplo: tenho 7 dias uteis para resolver um chamado quando chegar em 3 dias fique amarelo e quando chegar no sexto dia fique vermelho. Sua pergunta foi muito genérica e por isso recebeu respostas genéricas.

Caro Paulo,

è isto mesmo tenho 24horas uteis para resolver um problema quando passar de 8hs fica amarelo e quando passar de 16hs fica vermelho e não muda mais.

desde já agradeço sua atenção.

Vou te mandar um exemplo que faz o que você quer só que com datas o cenário é uma proposta comercial e sua validade, este código está no evento onrecord da aplicação grid(consulta), você teria que adaptar este código para fazer diferença entre a hora do seu sistema a a hora atual e nos testes você colocaria sua regra das horas se hora x campo da cor que você quer se hora y outra cor …:

/**

  • Adicionando na data da proposta os dias de validade
    */

$add_days = 30; //adding 30 days
$add_months = 0; //adding nothing to months
$add_years = 0; //adding nothing to years
{data_vencimento} = sc_date({data_emissao}, ‘yyyy-mm-dd’, ‘+’, $add_days, $add_months, $add_years);

/**

  • Verificando a diferença entre a data de vencimento e a data corrente.
    */

//Data atual do do php
$current_date = date(‘Y-m-d’);
$dias_restantes = sc_date_dif({data_vencimento}, ‘aaaa-mm-dd’, $current_date, ‘aaaa-mm-dd’);
if($dias_restantes <= 7)
{
{data_vencimento} = sc_date_conv({data_vencimento},“db_format”,“dd/mm/aaaa”);
sc_field_style({data_vencimento}, ‘#FF0000’, ‘15px’, ‘#000000’, ‘Arial, sans-serif’, ‘bold’);
}
else{
{data_vencimento} = sc_date_conv({data_vencimento},“db_format”,“dd/mm/aaaa”);
sc_field_style({data_vencimento}, ‘#33FF99’, ‘15px’, ‘#000000’, ‘Arial, sans-serif’, ‘bold’);
}