'Refresh the contents of an SyncfusionChart in runtime
Private Sub RefreshOnLoad_chart1(ochart1 As SyncfusionChart)
'Define list to store the results of the query
Dim results As List
Dim resCnt As Int
Dim resTot As Int
Dim resMap As Map
'Read arguments from LocalStorage (if any)
Dim Year As String = ABMShared.SessionStorageRead(page, "Year")
'The record has session storage, process them...
'Get the current record id from the session
Dim RecordID As String = ABMShared.SessionStorageRead(page, "id")
'A different primary key has been specified.
RecordID = ABMShared.SessionStorageRead(page, "Year")
'Get the record linked to this record id
Dim RecordJSON As String = ABMShared.SessionStorageRead(page, RecordID)
'Convert this record to a map from json
Dim RecordMap As Map = ABMShared.Json2Map(RecordJSON)
Dim subTitle As StringBuilder
subTitle.Initialize
Dim Year As String = RecordMap.getDefault("year","")
subTitle.Append(Year)
subTitle.append(" ")
ochart1.SubTitle = subTitle.ToString.Trim
page.Pause
'Get connection from current pool if MySQL/MSSQL
Dim SQL As SQL = ABMShared.SQLGet
'Get the records as a list of maps from the db
results = ABMShared.SQLExecuteMaps(SQL,"select AprAcc,MayAcc,JunAcc,JulAcc,AugAcc,SepAcc,OctAcc,NovAcc,DecAcc,JanAcc,FebAcc,MarAcc,[year],ProgrammeName from IYMAnalysisSet join ProgrammesSet on IYMAnalysisSet.IYMAnalysis_Programmes = ProgrammesSet.id where IYMAnalysisSet.Year = ?", Array As String(Year))
'Close the connection to the database
ABMShared.SQLClose(SQL)
'Loop throught each record read and process it
resTot = results.size - 1
For resCnt = 0 To resTot
'Get the record map
resMap = results.get(resCnt)
resMap = ABMShared.IYMAnalysisSet_Compute(resMap)
'create the series Actual
Dim ser01 As SeriesObj
ochart1.InitializeSeries(ser01)
ser01.stype = ochart1.EnumType.line
ser01.name = resMap.GetDefault("programmename","")
ser01.tooltipvisible = True
ser01.width = 3
ser01.EnableAnimation = True
ser01.markershape = "circle"
ser01.MarkerVisible = True
ser01.markerdatalabelsvisible = False
'Read the fields to draw...
Dim AprAcc As String = resMap.GetDefault("apracc", "0")
Dim MayAcc As String = resMap.GetDefault("mayacc", "0")
Dim JunAcc As String = resMap.GetDefault("junacc", "0")
Dim JulAcc As String = resMap.GetDefault("julacc", "0")
Dim AugAcc As String = resMap.GetDefault("augacc", "0")
Dim SepAcc As String = resMap.GetDefault("sepacc", "0")
Dim OctAcc As String = resMap.GetDefault("octacc", "0")
Dim NovAcc As String = resMap.GetDefault("novacc", "0")
Dim DecAcc As String = resMap.GetDefault("decacc", "0")
Dim JanAcc As String = resMap.GetDefault("janacc", "0")
Dim FebAcc As String = resMap.GetDefault("febacc", "0")
Dim MarAcc As String = resMap.GetDefault("maracc", "0")
'Add data to the chart
ochart1.AddXY(ser01,"Apr",AprAcc)
ochart1.AddXY(ser01,"May",MayAcc)
ochart1.AddXY(ser01,"Jun",JunAcc)
ochart1.AddXY(ser01,"Jul",JulAcc)
ochart1.AddXY(ser01,"Aug",AugAcc)
ochart1.AddXY(ser01,"Sep",SepAcc)
ochart1.AddXY(ser01,"Oct",OctAcc)
ochart1.AddXY(ser01,"Nov",NovAcc)
ochart1.AddXY(ser01,"Dec",DecAcc)
ochart1.AddXY(ser01,"Jan",JanAcc)
ochart1.AddXY(ser01,"Feb",FebAcc)
ochart1.AddXY(ser01,"Mar",MarAcc)
ochart1.AddSeries(ser01)
Next
page.Resume
End Sub