Alterar Imagem de background no campo dinamicamente

(Michell Duarte de Oliveira) #1

Olá caros desenvolvedores,
Preciso que uma imagem de fundo de um campo do grid seja alterada dinamicamente.
Ex.Se o valor do campo for X, a imagem de fundo do campo se altera para Y. Se o valor do campo for Z, a imagem de fundo se altera para W.

Ví algumas formas de fazer isso mas no formulário/Página inteira utilizando CSS direto no ApplicationInit mas preciso que apenas a imagem de fundo do campo seja alterada dinamicamente.

Obrigado pela ajuda desde já.

(Jailton) #2

CAMPO IMAGEM DINÂMICA

Exemplo o campo ‘STATUS’ na sua tabela.

Lembrando que campo o STATUS deve estar na SQL, mas não precisa aparecer na consulta.

Criar um campo NOVO na CONSULTA tipo imagem {Imagem_STATUS} (não colocar nome de nenhuma imagem nele)

Crie as bolinhas tipo jpg em um editor de imagem de sua preferência:

depois coloque elas imagens (bolinhas) na pasta _lib/img já do projeto que vai ser executado pode testar no desenvolvimento em:
C:\Program Files\NetMake\v9\wwwroot\scriptcase\app\seu_projeto_lib\img

No OnRecord Você faz o seguinte:

switch ({STATUS}) {
    case 'EM ANALISE':
         {Imagem_STATUS} = "<img src='../_lib/img/bolinha_em_analise.png'>";
         break;
    case 'LIBERADO':
         {Imagem_STATUS} = "<img src='../_lib/img/bolinha_em_liberado.png'>";
         break;
    case 'NEGADO':
         {Imagem_STATUS} = "<img src='../_lib/img/bolinha_em_negado.png'>";
         break;
}

Ai ele TROCA a IMAGEM de acordo com o campo SQL da CONSULTA, que vai passando no momento.

Caso além de trocar a imagem quiser colocar um LINK nela:

{Imagem_STATUS} = "<a href='../SUA_sec_DE_ALTERAR_STATUS/SUA_sec_DE_ALTERAR_STATUS.php?glo_CodigoID={CampoPassadoPesquisa}'><img src='../_lib/img/bolinha_em_negado.png'></a>"
1 Like
(Michell Duarte de Oliveira) #3

Olá Jailton,
Em primeiro lugar, muito obrigado por se disponibilizar a ajudar. Infelizmente este método não me atende, visto que preciso que o campo tenha seu background alterado apenas.

audios

veja acima, preciso que ao fundo de cada campo seja alterado dinamicamente (são varios campos). No SC tem a opção “Imagem de Fundo” quando deixo o tipo de campo como Decimal que atende perfeitamente, porem esta opção eu preciso que seja com conteúdo dinamico, onde posso alterar a imagem de fundo de cada campo de acordo com o valor do SQL.

(Marco Ruben) #4

Você quer alterar de cada linha da coluna ou apenas do título?

(Jailton) #5

A palavra ‘mágica’ é ‘COR’ e não ‘IMAGEM’, tenta este código:

Colocar no EVENTO onRecord:
if ({StatusRecebido}=='PENDENTE') {
    sc_field_style({StatusRecebido}, '#0000000', '12px', '#FFFF00', 'Arial, sans-serif', 'bold');
}
if ({StatusRecebido}=='RECEBIDO') {
    sc_field_style({StatusRecebido}, '#009900', '12px', '#FFFFFF', 'Arial, sans-serif', 'bold');
}
if ({StatusRecebido}=='INCORRETO') {
    sc_field_style({StatusRecebido}, '#FF0000', '12px', '#FFFFFF', 'Arial, sans-serif', 'bold');
}

Veja macro sc_field_style():
https://www.scriptcase.com.br/docs/pt_br/v9/manual/14-macros/01-visao-geral/#sc_field_style

(Marco Ruben) #6

Se for só para a cor , tem a sc_field_color

(Michell Duarte de Oliveira) #7

Olá Marco.
Quero alterar campo a campo. Exemplo: Campo X tem valor de 128, então muda a imagem de BG daquele campo para vermelho.gif por exemplo.

(Michell Duarte de Oliveira) #8

Marco, preciso alterar a imagem de fundo de cada campo de acordo com o valor verificado no BD.

(Marco Ruben) #9

Você terá que realizar esse processo no evento OnRecord:
if({campoX} == 128 )
{
{campoX} = "<span class='vermelho'>".{campoX}."</span>";

}

E no evento OnScriptInit ou OnHeader você declarar a classe vermelho no css com o atributo do background-image:

.vermelho{ background-image ... }

(Michell Duarte de Oliveira) #10

Marco, fiz como vc sugeriu mas agora o campo fica assim:

audios

Desculpa a inexperiência.; Creio q seja uma coisa boba. rsrs

(Michell Duarte de Oliveira) #11

Marco, consegui resolver esta parte passando para texto o campo. Porém o BG ficou apenas no texto e não no campo todo.

audios

Gostaria q ficasse igual o campo AU2(BR)

(Marco Ruben) #12

Olha, se você precisa mudar apenas a cor, basta usar a macro sc_field_color ou sc_field_style

Caso não esteja enganado, a sc_field_style preenche toda a célula e a sc_fiel_color apenas o texto

(Michell Duarte de Oliveira) #13

Marco,
Eu não quero preencher com cor pq na verdade quero colocar um gif animado no qual fica piscando. Por isso preciso que seja imagem e que seja imagem de BG do campo.
Esta parte que mostrou alterar o BG do texto funcionou bacana e já ajuda bastante mas se eu conseguir fazer o campo todo preencher ficaria muito melhor.