private void QueryRelatedTable()
{
int objectId = Convert.ToInt32(graphic.Attributes[incidentsLayer.LayerInfo.ObjectIdField]);
int relationshipId = -1;
foreach (var relationship in incidentsLayer.LayerInfo.Relationships)
{
relationshipId = relationship.RelatedTableId;
break;
}
QueryTask qt = new QueryTask(incidentsLayer.Url);
qt.DisableClientCaching = true;
RelationshipParameter rp = new RelationshipParameter();
rp.ObjectIds = new int[]{objectId};
rp.OutFields = new string[]{"agree_with_incident"};
rp.RelationshipId = relationshipId;
qt.ExecuteRelationshipQueryCompleted += qt_ExecuteRelationshipQueryCompleted;
qt.ExecuteRelationshipQueryAsync(rp);
}
private void qt_ExecuteRelationshipQueryCompleted(object sender, RelationshipEventArgs e)
{
RelationshipResult pr = e.Result;
voteCount = 0;
foreach (var item in pr.RelatedRecordsGroup)
{
voteCount = item.Value.Count();
break;
}
}
Private Sub QueryTaskab_ExecuteCompleted(ByVal sender As Object, ByVal args As ESRI.ArcGIS.Client.Tasks.QueryEventArgs)
Dim featureSet As FeatureSet = args.FeatureSet
If featureSet Is Nothing OrElse featureSet.Features.Count < 1 Then
MessageBox.Show("No features retured from query")
Return
End If
Dim graphicsLayer As GraphicsLayer = TryCast(MyMap.Layers("MySelectionGraphicsLayer"), GraphicsLayer)
If featureSet IsNot Nothing AndAlso featureSet.Features.Count > 0 Then
For Each feature As Graphic In featureSet.Features
feature.Symbol = TryCast(LayoutRoot.Resources("ResultsFillSymbol"), Symbol)
graphicsLayer.Graphics.Insert(0, feature)
Next feature
ResultsDisplay.Visibility = Visibility.Visible
End If
MyDrawSurface.IsEnabled = False
Dim objectid As Integer = Convert.ToInt32(featureSet.ObjectIdFieldName)
Dim queryTaskab As New QueryTask("http://...../ArcGIS/rest/services/10106734/_AsBuiltRelate10/MapServer/0")
AddHandler queryTaskab.Failed, AddressOf QueryTaskab_Failed
AddHandler queryTaskab.ExecuteRelationshipQueryCompleted, AddressOf QueryTaskab_ExecuteRelationshipQueryCompleted
Dim rquery As RelationshipParameter = New ESRI.ArcGIS.Client.Tasks.RelationshipParameter()
rquery.ObjectIds = New Integer() {objectid}
Dim outList As New List(Of String)
outList.Add("OBJECTID")
outList.Add("REDBOOKNUM")
rquery.RelationshipId = 0
rquery.OutFields = outList
queryTaskab.ExecuteRelationshipQueryAsync(rquery)
End Sub
Dim objectid As Integer = Convert.ToInt32(featureSet.ObjectIdFieldName)
Dim objectId As Integer = Convert.ToInt32(graphic.Attributes(incidentsLayer.LayerInfo.ObjectIdField))
Private Sub Query_ExecuteCompleted(ByVal sender As Object, ByVal queryArgs As QueryEventArgs)
If queryArgs.FeatureSet Is Nothing Then
Return
End If
Dim resultFeatureSet As FeatureSet = queryArgs.FeatureSet
Dim graphicsLayer As ESRI.ArcGIS.Client.GraphicsLayer = TryCast(Map1.Layers("Institutions"), ESRI.ArcGIS.Client.GraphicsLayer)
If resultFeatureSet IsNot Nothing AndAlso resultFeatureSet.Features.Count > 0 Then
For Each graphicFeature As ESRI.ArcGIS.Client.Graphic In resultFeatureSet.Features
graphicsLayer.Graphics.Add(graphicFeature)
Next graphicFeature
Dim expandPercentage As Double = 30
Dim widthExpand As Double = graphicsLayer.FullExtent.Width * (expandPercentage / 100)
Dim heightExpand As Double = graphicsLayer.FullExtent.Height * (expandPercentage / 100)
Dim displayExtent As New _
ESRI.ArcGIS.Client.Geometry.Envelope(graphicsLayer.FullExtent.XMin - (widthExpand / 2), _
graphicsLayer.FullExtent.YMin - (heightExpand / 2), _
graphicsLayer.FullExtent.XMax + (widthExpand / 2), _
graphicsLayer.FullExtent.YMax + (heightExpand / 2))
Map1.ZoomTo(displayExtent)
End If
RelatedQuery(resultFeatureSet)
End Sub
Private Sub RelatedQuery(ByVal resultsFS As FeatureSet)
Dim qtRelatedTables As New QueryTask("http://204.68.195.113/ArcGIS/rest/services/DOTResearch/DOTResearchGDB/MapServer/4")
AddHandler qtRelatedTables.Failed, AddressOf qtRelatedTables_Failed
AddHandler qtRelatedTables.ExecuteRelationshipQueryCompleted, AddressOf qtRelatedTables_ExecuteRelationshipQueryCompleted
Dim listObjIds As New List(Of Integer)
Dim intIndex As Integer = 0
For Each Feat In resultsFS.Features
listObjIds.Add(resultsFS.Features(intIndex).Attributes("OBJECTID"))
intIndex = intIndex + 1
Next
Dim rp As New RelationshipParameter
rp.ObjectIds = listObjIds
rp.RelationshipId = 0
rp.ReturnGeometry = False
rp.OutFields = {"*"}
qtRelatedTables.ExecuteRelationshipQueryAsync(rp)
End Sub
Private Sub qtRelatedTables_ExecuteRelationshipQueryCompleted(ByVal sender As Object, ByVal e As RelationshipEventArgs)
If e.Result Is Nothing Then
Return
Else
MessageBox.Show("Bingo")
End If
End Sub
Private Sub qtRelatedTables_Failed(ByVal sender As Object, ByVal args As TaskFailedEventArgs)
MessageBox.Show("Query failed: " & args.Error.Message)
End Sub
Private Sub Query_Failed(ByVal sender As Object, ByVal args As TaskFailedEventArgs)
MessageBox.Show("Query failed: " & args.Error.Message)
End Sub
If queryArgs.FeatureSet Is Nothing Then
Return
End If
Dim FeatLayr As ESRI.ArcGIS.Client.FeatureLayer = Map1.Layers("Institutions")
Dim resultFeatureSet As FeatureSet = queryArgs.FeatureSet
Dim graphicsLayer As ESRI.ArcGIS.Client.GraphicsLayer = TryCast(Map1.Layers("Institutions"), ESRI.ArcGIS.Client.GraphicsLayer)
For Each graphicFeature As ESRI.ArcGIS.Client.Graphic In resultFeatureSet.Features
graphicsLayer.Graphics.Add(graphicFeature)
RelatedQuery(Convert.ToInt32(graphicFeature.Attributes(FeatLayr.LayerInfo.ObjectIdField)))
Next graphicFeature
Private Sub RelatedQuery(ByVal ObjectId As Int32)
Dim qtRelatedTables As New QueryTask("http://204.68.195.113/ArcGIS/rest/services/DOTResearch/DOTResearchGDB/MapServer/4")
AddHandler qtRelatedTables.Failed, AddressOf qtRelatedTables_Failed
AddHandler qtRelatedTables.ExecuteRelationshipQueryCompleted, AddressOf qtRelatedTables_ExecuteRelationshipQueryCompleted
Dim rp As New RelationshipParameter
rp.ObjectIds = {ObjectId}
'rp.ObjectIds = resultsFS.ObjectIDs
rp.RelationshipId = 0
rp.ReturnGeometry = False
rp.OutFields = {"*"}
qtRelatedTables.ExecuteRelationshipQueryAsync(rp)
End Sub