Hi,
I wish to delete the template parameters in the dataset on button click. and on another click, i would like to add the template parameters. How to handle it via script?
Thanks in advance
Hi,
I wish to delete the template parameters in the dataset on button click. and on another click, i would like to add the template parameters. How to handle it via script?
Thanks in advance
Are the parameters you’re adding always the same?
If so, you could add two custom properties to your template, blankDataset
and fullDataset
, populated appropriately. Your button action script would then look like:
# to blank the params
repeater = event.source.parent.getComponent('Template Repeater')
repeater.templateParams = repeater.blankDataset
or
# to insert the params
repeater = event.source.parent.getComponent('Template Repeater')
repeater.templateParams = repeater.fullDataset
depending on the button.
Thanks Mr.Zacht, Thats a very good idea.
I have added the dataset in custom properties of template. But i am unable to see the dataset in the template repeater. Idk what i am missing!.
Have you assigned a Template Path
?
What data is in your Template Parameters
? (a screenshot would be useful)
Please check the attached snaps fyi
On your template instance there’s a property called Template Parameters
.
I understand now. You don’t want to add fullDataset
as one of your Template Parameters. You can delete it from there. You want to add it as a custom property of the template instance.
You’re really just using these as shelves where you store the two possible configurations. One button will take the blank configuration (blankDataset
) off the shelf and plug it into the Template Parameters
property. The other button will do the same but with the fullDataset
property.
Thanks for your inputs,
But the thing is, on clicking the speed button, 3 buttons will be displayed. And on clicking any of these button, i will be passing the tagpaths (via template params) to charts (when load btn is clicked) and when i click on diameter (template params will be deleted and new params will be added), 2 buttons will be displayed.
code under speed btn:
event.source.parent.EasyChart = False
btnTemplate =event.source.parent.getComponent('Template Repeater')
btnTemplate.visible = True
#btnTemplate.repeatCount =1
#numtmps =3
updParam=btnTemplate.templateParams
#
check =updParam.getRowCount()
if check == 0:
newRow =[["Line Speed","actual_machinespeed","set_machinespeed","line_speed_lcl","line_speed_ucl"],
["Ext1 Speed","actual_extruder1_speed","set_extruder1_speed","extruder1_speed_lcl","extruder1_speed_ucl"],
["Ext2 Speed","actual_extruder2_speed","set_extruder2_speed","extruder2_speed_lcl","extruder2_speed_ucl"]]
#newRow =["Line Speed"]
updParam = system.dataset.addRows(updParam,newRow)
#event.source.parent.getComponent('Text Field').text="Test"
btnTemplate.templateParams=updParam
code under Load btn:
event.source.parent.getComponent('Label').text ="LOADING. . ."
event.source.parent.getComponent('Label').visible = True
event.source.parent.StDate =event.source.parent.getComponent('Group').getComponent('stDate').date
event.source.parent.EndDate =event.source.parent.getComponent('Group').getComponent('endDate').date
vRead=system.tag.readBlocking("[client]Param Name")[0].value
if vRead != None:
vSplit =vRead.split('|')
if( (vSplit[0]=="Line Speed") or (vSplit[0]=="Ext1 Speed") or (vSplit[0]=="Ext2 Speed") or (vSplit[0]=="Performance") or (vSplit[0]=="Temperature") ):
event.source.parent.ActChart=vSplit[0]
event.source.parent.SetChart=vSplit[1]
event.source.parent.LCLChart=vSplit[2]
event.source.parent.UCLChart=vSplit[3]
else:
event.source.parent.getComponent('Label').text ="NO DATA AVAILABLE"
chartData =event.source.parent.getComponent('Chart').Data
def checkValue():
if chartData!= None:
event.source.parent.getComponent('Label').visible = False
else:
event.source.parent.getComponent('Label').visible = True
system.util.invokeLater(checkValue,5000)
Code (rough) under diameter:
ds =event.source.parent.getComponent('Template Repeater')
row =ds.templateParams
if row != None:
ds = system.dataset.deleteRows(ds,row)
event.source.parent.getComponent('Template Repeater').templateParams = ds
Your ideas are most welcome
Yeah it seems like I misunderstood your goal here. Sorry about that. If you need to build a dataset in a script, look into system.dataset.toDataSet - Ignition User Manual 8.1 - Ignition Documentation
Is there any way to delete the rows in template parameters dataset.
Normal dataset logics not working here.
I don't understand what you mean by this. The Template Parameters
property of a template repeater component is a normal dataset. You can try using system.dataset.deleteRow - Ignition User Manual 8.1 - Ignition Documentation, but pay special attention to the note on that page.
Thanks Mr.Zacht ,
Will look into it