Select to view content in your preferred language

queryCount?

781
1
Jump to solution
01-16-2014 08:52 AM
ionarawilson1
Deactivated User
Does anybody know how to use queryCount? I am filtering a non-spatial feature service cast a feature layer. How can I get the record count after the search is complete? I know I can use the length of feature layer graphic provider if the feature layer is an actual feature layer. But how can I the number of records for a non-spatial table (named yourTable)? I've tried to use queryCount but I am getting null values when I run the search
Thank you so much in advance
 Code:     private function doSearch():void    {               myAttributeTable.featureLayer = myFeatureLayer          var defexpr:String =  searchattribute +  eqsymbol +  "'"  +  qText.text  + "'";      yourTable.definitionExpression = defexpr     myAttributeTable.featureLayer = yourTable     var query:Query = new Query();     query.where = defexpr     query.returnGeometry = false;          yourTable.queryCount(query, new AsyncResponder(onResult, onFault));               function onResult(count:Number, token:Object):void     {      var countstring:String      countstring = count as String;      numberofrecords.text = countstring + " records ;          }          function onFault(info:Object, token:Object = null):void     {           }  }   <mx:Text width="65" id="numberofrecords"       text="test"/> 
Tags (2)
0 Kudos
1 Solution

Accepted Solutions
ionarawilson1
Deactivated User
This is what worked for  me:

var defexpr6:String =  "DateComplete >= " +   "'"  +  date1.text  + "'" + " AND DateComplete <= " + "'"  +  date2.text  + "'";      //    var defexpr:String =  searchattribute +  eqsymbol +  "'"  +  qText.text  + zerotime + "'";      yourTable.definitionExpression = defexpr6      myAttributeTable.featureLayer = yourTable      myAttributeTable.visible = true;      Alert.show(defexpr6)      query.where = defexpr6;      query.objectIds=[];      query.returnGeometry = false;      queryTask.executeForIds(query);     var objectIdsArray = [];    function  executeForIdsOnResult(event:QueryEvent):void         {          queryTask.removeEventListener(QueryEvent.EXECUTE_FOR_IDS_COMPLETE,executeForIdsOnResult);     objectIdsArray = event.objectIds;     numberofrecords.text = objectIdsArray.length.toString();         } 


And the mxml

 <esri:QueryTask id="queryTask"       url="http://tfsgis-iisd01:6080/arcgis/rest/services/SARS_WILSON/RELATED_TABLES/FeatureServer/1"       executeForIdsComplete="executeForIdsOnResult(event)"       useAMF="false"              />   <esri:Query id="query"      outFields=""       returnGeometry="false"      />           <mx:Text width="65" id="numberofrecords"         text="test"/>

View solution in original post

0 Kudos
1 Reply
ionarawilson1
Deactivated User
This is what worked for  me:

var defexpr6:String =  "DateComplete >= " +   "'"  +  date1.text  + "'" + " AND DateComplete <= " + "'"  +  date2.text  + "'";      //    var defexpr:String =  searchattribute +  eqsymbol +  "'"  +  qText.text  + zerotime + "'";      yourTable.definitionExpression = defexpr6      myAttributeTable.featureLayer = yourTable      myAttributeTable.visible = true;      Alert.show(defexpr6)      query.where = defexpr6;      query.objectIds=[];      query.returnGeometry = false;      queryTask.executeForIds(query);     var objectIdsArray = [];    function  executeForIdsOnResult(event:QueryEvent):void         {          queryTask.removeEventListener(QueryEvent.EXECUTE_FOR_IDS_COMPLETE,executeForIdsOnResult);     objectIdsArray = event.objectIds;     numberofrecords.text = objectIdsArray.length.toString();         } 


And the mxml

 <esri:QueryTask id="queryTask"       url="http://tfsgis-iisd01:6080/arcgis/rest/services/SARS_WILSON/RELATED_TABLES/FeatureServer/1"       executeForIdsComplete="executeForIdsOnResult(event)"       useAMF="false"              />   <esri:Query id="query"      outFields=""       returnGeometry="false"      />           <mx:Text width="65" id="numberofrecords"         text="test"/>
0 Kudos