Botão para desabilitar a edição de outros

Senhores,

Na minha representação gráfica, possuo um botão mestre que pretendo utilizá-lo da seguinte fórma :

Quando pressionado = On, demonstre o estado (On/Off) de uma cadeia de botôes e permita o clique para a sua mudança, de Off => On ou se, On => Off.

Quando não = Off, demonstre apenas os seus estados (On ou Off), não permitindo o clique.

Obs.: Todos os botões incluindo o mestre, são criados através do Script para o servidor. A cadeia de botôes está funcionando no clique, faltando somente a trava pelo mestre.

Motivo: Segurança.

Podem me ajudar ?

Desde já agradeço, Paulo.

Olá,

Utilize o seguinte código para verificar o status do DataPoint que deseja utilizar no inter travamento:
var dpDao = new com.serotonin.mango.db.dao.PointValueDao();
var dpVo = dpDao.getLatestPointValue(‘XID’);

If((value) & ( dpVo.value==1))
botão com ação
else
Botão sem ação

Não lembro se a comparação AND é & ou &&, precisa testar isso antes

Olá jcassa.

Muito obrigado por me responder !

Então, Eu já tinha visto uma resposta sua muito parecida com esta, diferenciando apenas em um result se não me engano. Tentei compreender fazendo vários testes mas, como ainda estou desvendando o ScadaBR para mim não ficou muito claro onde e como devo colocar estas variáveis.

Pode me esclarecer um pouco melhor sobre isso ?

O que eu entendi, foi:

Colocar as linhas com as variáveis, no botão mestre.
e o if nos botões que quero travar.

mas ao gravar retorna um erro do java:

Cannot convert XID to java,tang,integer.

Sistema Ubuntu
java version “1.6.0_41”

Grato,

Paulo.

Altera o XID , pega o XID do DataPoint no qual deseja utilizar na lógica

Agradecimento.

Quero parabenizar toda a atenção e empenho prestado pelo Jcassa.

Muito Obrigado !

Paulo.

Olá amigo,

Evoluir sempre! Você poderia compartilhar o seu resultado com o fórum. Futuramente quem sabe …

Opa.

Claro! segue.

Inseri esse código abaixo no script para o servidor, criando desta maneira o próprio botão a ser bloqueado de acordo com o pressionar do mestre.

var dpDao = new com.serotonin.mango.db.dao.PointValueDao();
var dpVo = dpDao.getLatestPointValue(‘DPID’);
var s = “”;
if (dpVo.value==“true”)
{
if (value)
s += “< img style=‘cursor:pointer;’ src=‘graphics/Leds48/led48_green_1.png’ onclick='mango.view.setPoint(”+ point.id +", “”+ pointComponent.id +"", “false”);return false;’/>";
else
s += “< img style=‘cursor:pointer;’ src=‘graphics/Leds48/led48_white_0.png’ onclick='mango.view.setPoint(”+ point.id +", “”+ pointComponent.id +"", “true”);return false;’/>";
}
else
{
if (value)
s += “< img src=‘graphics/Leds48/led48_green_1.png’/>”;
else
s += “< img src=‘graphics/Leds48/led48_white_0.png’/>”;
}
return s;

Nota: DPID = Url da página correspondente ao Data Point do botão mestre. No meu caso, 59. Como abaixo.

http://localhost:8080/ScadaBR/data_point_details.shtm?dpid=59

Obs.: Atenção para os espaços em branco entre “< img”.

Abç.

Boa tarde pessoal, tudo bem?
Estou tentando fazer um botão que muda sua aparência de acordo com outro botão, vou tentar exemplificar:
Eu tenho um botão de automático/manual, quando o mesmo esta com seu valor em 1, quero que meu segundo botão seja um “fechar/abrir”.
Quando o botão automático/manual em 0, quero que o segundo botão seja um “habilitar/desabilitar”.

Olá,

Você pode utilizar os exemplos acima como base.

DataPoint Auto/Manual

Script servidor → DataPoint Auto/Manual

var retorno ="";
var txt_btn1 = "automático/manual";
var txt_btn2 = "habilitar/desabilitar";

retorno+= "<button  type=\"button\" onclick='mango.view.setPoint("+ point.id +", \""+ pointComponent.id +"\", \" ";


//VALUE DE BTN AUTOMATICO/MANUAL
if (value){
txt_btn2 ="fechar/abrir";
retorno+= "0";
}else{
retorno+= "1";
}



retorno+= "\");return false;' >"+txt_btn1+"</button>";
retorno+= "<button  type=\"button\"  onClick=\"mango.view.executeScript('SC_123456')\" >"+txt_btn2+"</button>";

return retorno;

Alterar o endereço do script para o segundo Botão.

SC_123456

Pode ser feito sem utilizar Script, você precisaria de dois script servidor, no segundo botao, vc consultaria o valor do primeiro.

1 curtida