<?xml version="1.0" encoding="utf-8"?> <viewer:BaseWidget xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" xmlns:esri="http://www.esri.com/2008/ags" xmlns:viewer="com.esri.viewer.*" xmlns:components="com.esri.viewer.components.*" widgetConfigLoaded="init()"> <fx:Style> @namespace s "library://ns.adobe.com/flex/spark"; @namespace mx "library://ns.adobe.com/flex/mx"; @namespace esri "http://www.esri.com/2008/ags"; @namespace viewer "com.esri.viewer.*"; @namespace components "com.esri.viewer.components.*"; .ChineseFont { fontFamily:"Verdana","宋体"; fontWeight:normal; fontSize:12; } </fx:Style> <fx:Script> <!--[CDATA[ import com.esri.viewer.AppEvent; import com.esri.viewer.ViewerContainer; import mx.charts.CategoryAxis; import mx.charts.series.ColumnSeries; import mx.charts.series.LineSeries; import mx.collections.ArrayCollection; import mx.controls.Alert; import mx.events.CloseEvent; import mx.managers.PopUpManager; import mx.rpc.events.FaultEvent; import mx.rpc.events.ResultEvent; import mx.rpc.soap.mxml.WebService; [Bindable] private var webService:WebService=null; [Bindable] private var myxmllist:XMLList=null; private var col:Array = new Array(); private var lin:Array=new Array(); private var str:String="jbxx_art"; /** * 条件的字符串 * */ private var sql:String=""; private var firstinit:Boolean=false; private function init():void { if (configXML) { FuncMain(); } firstinit=true; } private function FuncMain():void { ViewerContainer.getInstance().addEventListener("SetData",function(evt:AppEvent):void { str=evt.data.type; sql=evt.data.str; }); ViewerContainer.getInstance().dispatchEvent(new Event("LoadedOver")); if(webService==null) { webService=new WebService(); webService.useProxy=false; webService.wsdl=this.configData.services.wbservices[configXML.wbsid]; webService.loadWSDL(); } webService.Tjt_method.addEventListener(ResultEvent.RESULT, result_Tjt_method); webService.Tjt_method.addEventListener(FaultEvent.FAULT, fault); webService.Tjt_method(str,sql); } public override function setState(value:String):void { super.setState(value); if(value=='open'&&firstinit) { if(configXML!=null) { FuncMain(); } } } private function panell():void { switch(str) { case "jbxx_art":p1.title="热井基本信息(按所属热田)";p2.title=p1.title;break; case "jbxx_aqx":p1.title="热井基本信息(按所属区县)";p2.title=p1.title;break; case "kcsf_art":p1.title="开采收费(按所属热田)";p2.title=p1.title;break; case "kcsf_aqx":p1.title="开采收费(按所属区县)";p2.title=p1.title;break; case "kcbh":p1.title="开采变化";p2.title=p1.title;break; } } private function result_Tjt_method(evt:ResultEvent):void { panell(); myxmllist=null; myxmllist=new XMLList(evt.result); lin=new Array(); col=new Array(); for each(var xml:XML in myxmllist) { for(var i:int=1;i<xml.child("*").length();i++) { var cs:ColumnSeries = new ColumnSeries(); cs.xField=xml.elements("*")[0].name(); cs.yField =xml.elements("*")[i].name(); cs.displayName =xml.elements("*")[i].name(); col.push(cs); var ls:LineSeries=new LineSeries(); ls.yField =xml.elements("*")[i].name(); ls.displayName =xml.elements("*")[i].name(); lin.push(ls); } //horizontalAxis的创建 var cga:CategoryAxis = new CategoryAxis(); cga.categoryField = xml.elements("*")[0].name() ; cga.dataProvider = myxmllist; column.horizontalAxis = cga; line.horizontalAxis=cga; //series的赋值 column.series= col; line.series= lin; //线形图的类型 for each(var li:LineSeries in line.series) { li.setStyle("form","curve");} return; } } private function fault(evt:FaultEvent):void { Alert.show("监听器,监听失败!"); } //统计图导出图片方法 private function export():void { var tabb:DisplayObject=null; if(tab.selectedIndex==0) { tabb=tab1 } else if(tab.selectedIndex==1) { tabb=tab2 } var d:DisplayObject=DisplayObject(tabb); ChartExport.Instance.exportChart(d); } ]]--> </fx:Script> <viewer:WidgetTemplate id="wt" width="700" height="450" > <s:HGroup width="100%" > <mx:TabNavigator width="{wt.width-100}" id="tab" height="{wt.height-50}" creationPolicy="all"> <mx:VBox id="tab1" label="柱状图" > <s:Panel id="p1" width="100%" height="100%" borderAlpha="0.15"> <s:layout> <s:HorizontalLayout horizontalAlign="center"/> </s:layout> <mx:ColumnChart id="column" height="100%" width="100%" fontSize="12" color="0x323232" dataTipRenderer="com.esri.viewer.skins.ChartDataTipSkin" showDataTips="true" dataProvider="{myxmllist}"> </mx:ColumnChart> <mx:Legend dataProvider="{column}" fontSize="12" height="100%" legendItemClass="widgets_dr.TJT.BigFontLegendItem" color="0x323232"/> </s:Panel> </mx:VBox> <mx:VBox id="tab2" label="线形图"> <s:Panel id="p2" width="100%" height="100%" borderAlpha="0.15"> <s:layout> <s:HorizontalLayout horizontalAlign="center"/> </s:layout> <mx:LineChart id="line" color="0x323232" height="100%" width="100%" fontSize="12" dataTipRenderer="com.esri.viewer.skins.ChartDataTipSkin" showDataTips="true" dataProvider="{myxmllist}"> </mx:LineChart> <mx:Legend dataProvider="{line}" fontSize="12" height="100%" legendItemClass="widgets_dr.TJT.BigFontLegendItem" color="0x323232"/> </s:Panel> </mx:VBox> </mx:TabNavigator> <s:HGroup horizontalAlign="left" width="100" > <s:Button label="导出" click="export()" width="50" /> </s:HGroup> </s:HGroup> </viewer:WidgetTemplate> </viewer:BaseWidget>