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!!!