I use a table to create pages dynamically. My table data key “usages” is a python list containing multiple variables.
So, for each table row (dynamic page) I would like to put a PyDataset in a timeseries chart.
Each PyDataset is store in a variable like data1, data2, …
To automatically take the right PyDs in each table row, I store its name in each “usages” element.
Is it possible to create a dynamic dta key in a timeseries chart ?
equipment_list and downtime_list are basicdatasets ?
My result below :
My report script :
inputs = {
'project_id':data['project_id'],
}
#On génère la date d'aujourd'hui
today=system.date.setTime(system.date.now(),0,0,0)
#On génère le num de jour de la semaine
todayWeekNumber = int(system.date.format(today, "u"))
# ========================================================
#On va chercher la liste des usages actifs et avec enableReport = 1
#usages = usage.getList(inputs)
usagesList = []
i=1
nested = data['usages'].getCoreResults()
for row in range(nested.rowCount):
if nested.getValueAt(row,'state') and nested.getValueAt(row,'enableReport'):
us={
'database':data['database'],
'unit':nested.getValueAt(row,'converted_unit'),
'energy':nested.getValueAt(row,'physical_title'),
'converted_unit':nested.getValueAt(row,'converted_unit'),
'physical_title':nested.getValueAt(row,'physical_title'),
'chart_label':nested.getValueAt(row,'chart_label'),
'basic_unit':nested.getValueAt(row,'basic_unit'),
'title':nested.getValueAt(row,'title'),
'startDate':nested.getValueAt(row,'start_datetime'),
'config':nested.getValueAt(row,'uconfig'),
}
end_datetime = nested.getValueAt(row,'end_datetime')
if end_datetime is None:
us['endDate'] = today
else:
us['endDate'] = end_datetime
#Appel de la fonction de génère les résultats
usData = report.makeUsageData(us)
usDS = usData['outputs']['data']
data['test'] = type(usDS)# ==> BasicDataset
rowToInsert = us.values()
headers = us.keys()
rowToInsert.append(usDS)
headers.append("downtime_list")
rowToInsert.append(usData['outputs']['weeks'])
headers.append("weeks")
usagesList.append(rowToInsert)
data['equipment_list'] = system.dataset.toDataSet(headers,usagesList)