protected function buttonclick():void { var querytask:QueryTask = new QueryTask(); querytask.url = "http://tfs-24279/ArcGIS/rest/services/ForestProducts/dynamic_layer_forest_products/MapServer/0" var query:Query = new Query(); query.outSpatialReference = myMap.spatialReference; query.outFields = ["Company"]; query.returnGeometry = true; query.where = expr; var expr:String = new String; querydg.dataProvider = querytask.executeLastResult.attributes; querydg.height=querytask.executeLastResult.attributes.length + 150 querydg.visible= querytask.executeLastResult !=null && querytask.executeLastResult.attributes.length>0 if (qText.text != "" && countycb.selectedItem != " " && industrycb.selectedItem != " ") { expr="Company Like '%{qText.text}%' AND County = '{countycb.selectedItem}' AND prim_bus = '{industrycb.selectedItem}'" } if (qText.text != " " && countycb.selectedItem == " " && industrycb.selectedItem == " " ) { expr= "Company Like '%{qText.text}%' " } if (qText.text =="" && countycb.selectedItem != " " && industrycb.selectedItem == " " ) { expr="County = '{countycb.selectedItem}'" } if (qText.text =="" && countycb.selectedItem == " " && industrycb.selectedItem != " " ) { expr= "prim_bus = '{industrycb.selectedItem}'" } if (qText.text != "" && countycb.selectedItem != " " && industrycb.selectedItem == " ") { expr="Company Like '%{qText.text}%' AND County = '{countycb.selectedItem}'" } if (qText.text != "" && countycb.selectedItem == " " && industrycb.selectedItem != " ") { expr = "Company Like '%{qText.text}%' AND prim_bus= '{industrycb.selectedItem}'" } if (qText.text =="" && countycb.selectedItem != " " && industrycb.selectedItem != " ") { expr = "County = '{countycb.selectedItem}' AND prim_bus= '{industrycb.selectedItem}'" } querytask.execute(query, new AsyncResponder (onResult, onFault)); function onResult(featureSet:FeatureSet, token:Object = null):void { if (featureSet.features.length == 0) { Alert.show("No matching records found. Please try again."); resizableDraggableTitleWindow.visible = false; querydg.visible = false; info.text = " "; } else { querydg.visible = true; resizableDraggableTitleWindow.visible = true; querydg.rowCount = querydg.dataProvider.length; myGraphicslayer.visible = true; import com.esri.ags.utils.GraphicUtil; } if (featureSet.features.length > 1) { info.text = "There are " + featureSet.features.length + " matching records"; } if (featureSet.features.length == 1) { info.text = "There is " + featureSet.features.length + " matching record"; } } function onFault(info:Object, token:Object = null):void { Alert.show(info.toString(), "Query Problem"); } }
Solved! Go to Solution.
var expr:String = new String if (qText.text != "") {expr = "Company Like '%{qText.text}%'";} if (countycb.selectedItem != " ") { if (expr != "") {expr += expr + " AND County = '{countycb.selectedItem}'";} else {expr = "County = '{countycb.selectedItem}'";} } if (industrycb.selectedItem != " " ) { if (expr != "") {expr += expr + " AND prim_bus = '{industrycb.selectedItem}'";} else {expr = "prim_bus = '{industrycb.selectedItem}'";} }
[Bindable] private var querytask:QueryTask = new QueryTask(); [Bindable] private var query:Query = new Query(); // to clear the company layer when searching for counties protected function myMap_initializeHandler(event:MapEvent):void { querytask.url = "http://tfs-24279/ArcGIS/rest/services/ForestProducts/dynamic_layer_forest_products/MapServer/0" querytask.useAMF = false; query.outSpatialReference = myMap.spatialReference; query.outFields = ["*"]; query.returnGeometry = true; query.where = "Company = 'Terry Manufacturing Company'" var expr:String = new String(); /* if (qText.text != "" && countycb.selectedItem != " " && industrycb.selectedItem != " ") { expr="Company Like '%{qText.text}%' AND County = '{countycb.selectedItem}' AND prim_bus = '{industrycb.selectedItem}'" } if (qText.text != " " && countycb.selectedItem == " " && industrycb.selectedItem == " " ) { expr= "Company Like '%{qText.text}%' " } if (qText.text =="" && countycb.selectedItem != " " && industrycb.selectedItem == " " ) { expr="County = '{countycb.selectedItem}'" } if (qText.text =="" && countycb.selectedItem == " " && industrycb.selectedItem != " " ) { expr= "prim_bus = '{industrycb.selectedItem}'" } if (qText.text != "" && countycb.selectedItem != " " && industrycb.selectedItem == " ") { expr="Company Like '%{qText.text}%' AND County = '{countycb.selectedItem}'" } if (qText.text != "" && countycb.selectedItem == " " && industrycb.selectedItem != " ") { expr = "Company Like '%{qText.text}%' AND prim_bus= '{industrycb.selectedItem}'" } if (qText.text =="" && countycb.selectedItem != " " && industrycb.selectedItem != " ") { expr = "County = '{countycb.selectedItem}' AND prim_bus= '{industrycb.selectedItem}'" } */ } protected function buttonclick():void { querytask.execute(query, new AsyncResponder (onResult, onFault)); function onResult(featureSet:FeatureSet, token:Object = null):void { if (featureSet.features.length == 0) { Alert.show("No matching records found. Please try again."); resizableDraggableTitleWindow.visible = false; querydg.visible = false; info.text = " "; myGraphicslayer.graphicProvider = querytask.executeLastResult.features } else { querydg.visible = true; resizableDraggableTitleWindow.visible = true; myGraphicslayer.visible = true; myGraphicslayer.graphicProvider = querytask.executeLastResult.features querydg.height=querytask.executeLastResult.attributes.length + 150 querydg.dataProvider= querytask.executeLastResult.attributes querydg.visible=querytask.executeLastResult != null } if (featureSet.features.length > 1) { info.text = "There are " + featureSet.features.length + " matching records"; } if (featureSet.features.length == 1) { info.text = "There is " + featureSet.features.length + " matching record"; } } function onFault(info:Object, token:Object = null):void { Alert.show(info.toString(), "Query Problem"); } }
An easier way would be to build the expression where you add in each component if it's selected. Here's one way (completely untested)var expr:String = new String if (qText.text != "") {expr = "Company Like '%{qText.text}%'";} if (countycb.selectedItem != " ") { if (expr != "") {expr += expr + " AND County = '{countycb.selectedItem}'";} else {expr = "County = '{countycb.selectedItem}'";} } if (industrycb.selectedItem != " " ) { if (expr != "") {expr += expr + " AND prim_bus = '{industrycb.selectedItem}'";} else {expr = "prim_bus = '{industrycb.selectedItem}'";} }
query.where = "Company Like '%" + qText.text + "%' "not
query.where = "Company Like '%{qText.text}%' "
<s:ComboBox id="countycb" width="100%" requireSelection="true" selectedItem=" " > <s:ArrayCollection id="countycbarray" > <fx:String>Anderson</fx:String> <fx:String>Andrews</fx:String> <fx:String>Yoakum</fx:String> <fx:String>Young</fx:String> <fx:String>Zapata</fx:String> <fx:String>Zavala</fx:String> </s:ArrayCollection> </s:ComboBox> </s:Panel> <s:Panel height="60" width="230" backgroundColor="0xB2BFC6" title="Search for Industry Type:"> <s:ComboBox id="industrycb" width="100%" requireSelection="true" selectedItem=" " > <s:ArrayCollection> <fx:String>chemicals, wood</fx:String> <fx:String>chip mill</fx:String> <fx:String>composite board mill</fx:String> <fx:String>container mill</fx:String> <fx:String>cooking wood</fx:String> <fx:String>dry kiln</fx:String> <fx:String>engineered wood</fx:String> <fx:String>fencing</fx:String> <fx:String>firewood</fx:String> <fx:String>gathering yard</fx:String> <fx:String>hardwood mat mill</fx:String> <fx:String>import/export</fx:String> <fx:String>landscape organics</fx:String> <fx:String>pallet mill</fx:String> <fx:String>paper mill</fx:String> <fx:String>planing mill</fx:String> <fx:String>plywood plant</fx:String> <fx:String>posts/poles/pilings</fx:String> <fx:String>preservation, wood</fx:String> <fx:String>re-saw mill</fx:String> <fx:String>sawmill</fx:String> <fx:String>secondary manufacturing</fx:String> <fx:String>shaving mill</fx:String> <fx:String>timber-frame homes</fx:String> <fx:String>veneer</fx:String> <fx:String>wood pellet mill</fx:String> </s:ArrayCollection> </s:ComboBox>
But can you please explain your code to me? Thank you!!!