John F Accidents: 20 Fires: 34 Amy Accidents: 20 Fires: 34 etc
Dim queryPolice As New ESRI.ArcGIS.Client.Tasks.Query() queryPolice.OutFields.Add("*") queryPolice.ReturnGeometry = True ' Return all features queryPolice.Where = "1=1" queryPolice.OutSpatialReference = MyMap.SpatialReference queryTaskPolice.ExecuteAsync(queryPolice)
Dim variables, varaibles For Each selectedGraphic As Graphic In args.FeatureSet.Features If then calculate variables set to placeholders that will report in listbox End If Next selectedGraphic
Dim categories0 = From p In args.FeatureSet.Features Group p By CStr(p.Attributes("Officer")) Into Group Select OfficersName, TotalIncidents = Group.Sum(Function(p) p.Incident) Dim categories1 = From p In args.FeatureSet.Features Group p By (p.Attributes("Officer")) Into Group Select OfficersName, TotalIncidents= Group.Sum(Function(p) p.Incident) Dim categories2 = From p In args.FeatureSet.Features Group p By (p.Attributes("Officer")) Into Group Select OfficersName, TotalIncidents= Group.Sum(Function(p) p.Incident)
Dim categories2 = From p In args.FeatureSet.Features Group p By p.Officer Into Group Select OfficersName, TotalIncidents= Group.Sum(Function(p) p.Incident)
Dim queryPolice As New ESRI.ArcGIS.Client.Tasks.Query() queryPolice.OutFields.Add("Officer, Incident") queryPolice.ReturnGeometry = True ' Return all features queryPolice.Where = "1=1" queryPolice.OutSpatialReference = MyMap.SpatialReference queryTaskPolice.ExecuteAsync(queryPolice)
Group.Sum(Function(p) p.Incident)...Is this calling a Function?
"[Incident]"
Dim categories1 = From p In args.FeatureSet.Features Group p By (p.Attributes("[Officer]")) Into Group Select OfficerName, TotalIncidents = Group.Sum(Function(p) CInt(p.Attributes("[Incident_Num]")))
Dim graphicCollection As New GraphicCollection() Dim graphic As New Graphic() graphic.Attributes("Officer") = "c" graphic.Attributes("Incident") = 1 graphicCollection.Add(graphic) graphic = New Graphic() graphic.Attributes("Officer") = "b" graphic.Attributes("Incident") = 1 graphicCollection.Add(graphic) graphic = New Graphic() graphic.Attributes("Officer") = "a" graphic.Attributes("Incident") = 1 graphicCollection.Add(graphic) graphic = New Graphic() graphic.Attributes("Officer") = "c" graphic.Attributes("Incident") = 1 graphicCollection.Add(graphic) graphic = New Graphic() graphic.Attributes("Officer") = "a" graphic.Attributes("Incident") = 1 graphicCollection.Add(graphic) Dim results = From g In graphicCollection _ Group g By DirectCast(g.Attributes("Officer"), String) Into r _ Select Officer = r.Key, Incidents = r.Sum(Function(i) CInt(i.Attributes("Incident"))) For Each item As var In results MessageBox.Show(String.Format("Officer {0} has {1}", item.Officer, item.Incidents)) Next
Private Sub QueryTaskPolice_ExecuteCompletedListBox(ByVal sender As Object, ByVal args As ESRI.ArcGIS.Client.Tasks.QueryEventArgs) Dim featureSet As FeatureSet = args.FeatureSet Dim results = From g In args.FeatureSet.Features Group g By DirectCast(g.Attributes("Officer"), String) Into r() Select Officer = r.Key, Incidents = r.Sum(Function(i) CInt(i.Attributes("Incident_Num"))) '.....SNIP
Does the attribute "Officer" exist in your query OutFields? Can it be type casted to string?
The C# code I was using was:
(string) g.Attributes["Officer"]
I'm not sure if I wrote the correct VB syntax. My previous post is meant for demonstration purposes only. You are free to use, tweak or not use it. I don't know how else I could help. You know your data more, you just need to learn how to use Linq. Start small, do short and simpler samples with different attributes and types. Once you got your code working, tweak it for your query.
Dim graphicCollection As New GraphicCollection() Dim graphic As New Graphic() graphic.Attributes("Officer") = "c" graphic.Attributes("Incident") = 1 graphicCollection.Add(graphic) 'snip Dim varresults = From g In graphicCollection Group g By DirectCast(g.Attributes("Officer"), String) Into r() Select Officer = r.Key, Incidents = r.Sum(Function(i) CInt(i.Attributes("Incident"))) MessageBox.Show(String.Format("Officer {0} has {1}", item.Officer, item.Incidents))
Dim queryPolice As New ESRI.ArcGIS.Client.Tasks.Query() queryPolice.OutFields.Add("Officer, Incident, Incident_Num") queryPolice.ReturnGeometry = True ' Return all features queryPolice.Where = "1=1" queryPolice.OutSpatialReference = MyMap.SpatialReference queryTaskPolice.ExecuteAsync(queryPolice)