system.mes.analysis.createCustomValueCalculator()
Sepasoft MES Module Suite
Description
Create a new custom value-calculator object. This is an advanced feature not recommended for most users. Most use-cases can be accommodated without custom analysis features.
Syntax
system.mes.analysis.createCustomValueCalculator()
None
CustomValueCalculator valueCalculator - A new custom value-calculator object of the CustomCalculator class.
Gateway
Code Examples
Code Snippet
|
from java.lang import Exception
from org.apache.log4j import Logger
log = Logger.getLogger("CustomAnalysis")
# It creates and registers a custom value-calculator object.
class CustomValueCalculator(system.mes.analysis.createCustomValueCalculator().__class__):
def __init__(self):
import system.mes.analysis
system.mes.analysis.createCustomValueCalculator().__class__.__init__(self)
def getGroupName(self):
return "Custom"
def getName(self):
return "Custom Value Calculator"
def getDescription(self):
return "Custom value calculator"
def getDataType(self):
from java.lang import Integer
return Integer
def isDataColumn(self):
return True
def isFilter(self):
return True
def isGroupBy(self):
return True
def isOrderBy(self):
return True
def isEquipmentInfoRequired(self):
return False
def setGroupValue(self, finalValueItem, finalRow, finalResults, isNewFinalRow, isFinalRow, lastValuesMode, equipmentValueItem, equipmentRow):
return self.defaultSetGroupValue(finalValueItem, finalRow, finalResults, isNewFinalRow, isFinalRow, lastValuesMode, equipmentValueItem, equipmentRow, self.getName())
def getDependencies(self, valueItem):
from java.util import ArrayList
dependentList = ArrayList()
dependentList.add(valueItem.buildValueItemName("Custom Value Source"));
return dependentList
def calculateRow(self, valueItem, date, row, results):
sourceValueItem = valueItem.getDependentValueItem(valueItem.buildValueItemName("Custom Value Source"))
value = sourceValueItem.getValue(date)
total = valueItem.getData("total")
if total == None:
if value != None:
valueItem.setData("total", value)
return True
rowIndex = results.getRowCount() - 1
if rowIndex < 0:
return True
results.setValueAt(rowIndex, valueItem.getColumnIndex(), total)
valueItem.setData("total", total + value)
return True
def calculateFinalRow(self, valueItem, date, row, results):
return True
try:
log.info("Register a custom value-calculator object.")
system.mes.analysis.registerCustomValueCalculator(CustomValueCalculator())
except Exception, e:
log.warn(e.getMessage())
|
Sepasoft MES Module Suite