Hey Paully,
Thanks that did the trick! I haven’t played with Ignition’s dataset object much so I didn’t know that everything had to be a string I suppose…
Here’s a quick little module (now that I’ve got things working) that you might like Paully. (You’ll want to remove my exception handling code because you don’t have my Util.logError module)
#
# appendPen
# Written By: Cody Warren
# On: June 17, 2014
#
# Adds new pen to easy chart dataset
#
# Required Parameters:
# easyChart - Easy Chart to be used
# TagName - Tagname to be added to the dataset
# TagPath - Historical tagpath to be added to the dataset
#
def appendPen(
easyChart,
TagName,
TagPath,
Aggregation = "LastValue",
Axis = "Default Axis",
Subplot = "1",
Enabled = "true",
Color = "000000",
Dash = "",
Render = "1",
Line = "1",
Shape = "0",
Fill = "true",
Group = "",
Digital = "false",
Override = "false",
Hidden = "false",
):
import system
import sys
import app.Util
try:
row = ([
TagName,
TagPath,
Aggregation,
Axis,
Subplot,
Enabled,
Color,
Dash,
Render,
Line,
Shape,
Fill,
Group,
Digital,
Override,
Hidden,
])
easyChart.tagPens = system.dataset.addRow(easyChart.tagPens, row)
except:
app.Util.logError("appendPen", sys.exc_info()[1])
# end try
#end def
#
# deletePen
# Written By: Cody Warren
# On: June 17, 2014
#
# Deletes pen from easy chart tagpen dataset
#
# Parameters:
# easyChart - Easy Chart to be used
# TagName - Tagname to be removed from dataset
#
def deletePen(easyChart, TagName):
import system
import sys
import app.Util
try:
# Convert easyChart data to PyDataSet
pyData = system.dataset.toPyDataSet(easyChart.tagPens)
# Search the dataset for the tagname
i = 0
for row in pyData:
if(row['NAME'] == TagName):
break
i = i + 1
# end for
# Delete row in dataset
easyChart.tagPens = system.dataset.deleteRow(easyChart.tagPens, i)
except:
app.Util.logError("deletePen", sys.exc_info()[1])
# end try
# end def
And a bit of demo code…
easyChart = event.source.parent.getComponent('Easy Chart')
TagName = 'TT_TEST_01'
TagPath = '[Historian]beerbrewing/devices/tt_test_01/in'
app.Chart.appendPen(easyChart, TagName, TagPath, Color='FFFFFF')
system.gui.messageBox('Pen Added!')
app.Chart.deletePen(easyChart, TagName)
system.gui.messageBox('Pen Removed!')
Does anybody know why I can’t get the python dataset to work? I think I’d still prefer manipulating data with that over the Ignition dataset…