Nesse tutorial iremos ver a correção para um erro comum a várias versões do ScadaBR, que aparece quando tentamos editar um data point virtual. No Google Chrome, surge na tela uma mensagem dizendo Cannot read property ‘style’ of null e no Firefox essa mensagem é getNodeIfString(…) is null. A pedido do @fabiodurao dei uma vasculhada nos arquivos JSP de uma versão do ScadaBR em que esse erro não ocorre e descobri qual é a correção para o problema.
Então, sem mais delongas, para corrigir esse erro incômodo edite o arquivo WEB-INF/jsp/dataSourceEdit/editVirtual.jsp
e troque o conteúdo da função changeChangeType() pelo código abaixo:
function changeChangeType() {
if (currentChangeType) {
// Close the current change type div.
hide(currentChangeType);
}
if ($get("changeTypeId").length) {
var changeTypeId = "divCH" + $get("changeTypeId");
currentChangeType = changeTypeId;
// Open the selected type.
show(changeTypeId);
}
// Update the values.
var locator = currentPoint.pointLocator;
$set("alternateBooleanChange.startValue", locator.alternateBooleanChange.startValue);
$set("brownianChange.min", locator.brownianChange.min);
$set("brownianChange.max", locator.brownianChange.max);
$set("brownianChange.maxChange", locator.brownianChange.maxChange);
$set("brownianChange.startValue", locator.brownianChange.startValue);
$set("incrementAnalogChange.min", locator.incrementAnalogChange.min);
$set("incrementAnalogChange.max", locator.incrementAnalogChange.max);
$set("incrementAnalogChange.change", locator.incrementAnalogChange.change);
$set("incrementAnalogChange.roll", locator.incrementAnalogChange.roll == "true");
$set("incrementAnalogChange.startValue", locator.incrementAnalogChange.startValue);
refreshValueList("incrementMultistate", locator.incrementMultistateChange.values);
$set("incrementMultistateChange.roll", locator.incrementMultistateChange.roll == "true");
$set("incrementMultistateChange.startValue", locator.incrementMultistateChange.startValue);
$set("noChange.startValue", locator.noChange.startValue);
$set("randomAnalogChange.min", locator.randomAnalogChange.min);
$set("randomAnalogChange.max", locator.randomAnalogChange.max);
$set("randomAnalogChange.startValue", locator.randomAnalogChange.startValue);
$set("randomBooleanChange.startValue", locator.randomBooleanChange.startValue);
refreshValueList("randomMultistate", locator.randomMultistateChange.values);
$set("randomMultistateChange.startValue", locator.randomMultistateChange.startValue);
$set("analogAttractorChange.maxChange", locator.analogAttractorChange.maxChange);
$set("analogAttractorChange.volatility", locator.analogAttractorChange.volatility);
$set("analogAttractorChange.attractionPointId", locator.analogAttractorChange.attractionPointId);
$set("analogAttractorChange.startValue", locator.analogAttractorChange.startValue);
}
Isso deve sanar o problema, e a mensagem de erro não aparecerá mais na tela.