<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical"> <mx:HBox width="100%"> <mx:Panel width="41%" height="330" layout="absolute"> <mx:DataGrid x="2" y="10" width="364" height="267" dataProvider="{arr}" dragEnabled="true" fontSize="12"> <mx:columns> <mx:DataGridColumn headerText="年 度" dataField="year"/> <mx:DataGridColumn headerText="省-直辖市" dataField="provice"/> <mx:DataGridColumn headerText="年税收" dataField="total"/> <mx:DataGridColumn headerText="财 务" dataField="cw"/> <mx:DataGridColumn headerText="交 通" dataField="jt"/> </mx:columns> </mx:DataGrid> </mx:Panel> <mx:Panel width="59%" height="333" layout="absolute"> <mx:ColumnChart x="21" y="4" id="columnchart" dragEnter="enterHandle(event)" dragDrop="dropHandle(event)" height="244" width="445" showDataTips="true" dataTipFunction="tipFun" dataProvider="{charData}" fontSize="12" > <mx:horizontalAxis> <mx:CategoryAxis categoryField="year" labelFunction="categoryFun"/> </mx:horizontalAxis> <mx:verticalAxis> <mx:LinearAxis baseAtZero="false" labelFunction="lineFun"/> </mx:verticalAxis> <mx:series> <mx:ColumnSeries yField="total" xField="year" displayName="年税收" labelPosition="outside" labelFunction="labelFun"/> <mx:ColumnSeries yField="cw" xField="year" displayName="财 务" labelPosition="outside"/> <mx:ColumnSeries yField="jt" xField="year" displayName="交 通" labelPosition="outside"/> </mx:series> </mx:ColumnChart> <mx:Legend dataProvider="{columnchart}" x="130" y="257" height="33" width="273" fontSize="13"/> </mx:Panel> </mx:HBox> <mx:CurrencyFormatter id="currency" precision="2"/> <mx:DateFormatter id="dateformat" formatString="YYYY-MM-DD"/> <mx:Script> <![CDATA[ import mx.charts.chartClasses.DataTip; import mx.charts.HitData; import mx.charts.chartClasses.IAxis; import mx.charts.series.ColumnSeries; import mx.charts.chartClasses.Series; import mx.charts.ChartItem; import mx.charts.series.items.ColumnSeriesItem; import mx.core.IUIComponent; import mx.managers.DragManager; import mx.controls.DataGrid; import mx.controls.Alert; import mx.events.DragEvent; import mx.events.DropdownEvent; import mx.collections.ArrayCollection; [Bindable] private var arr:ArrayCollection=new ArrayCollection([ {year:2008,provice:"江苏省",total:5800,cw:5555,jt:2543}, {year:2007,provice:"江苏省",total:7852,cw:6666,jt:3453}, {year:2006,provice:"江苏省",total:8951,cw:7777,jt:5456}, {year:2009,provice:"江苏省",total:4132,cw:8888,jt:6576} ]); [Bindable] private var charData:ArrayCollection=new ArrayCollection(); private function enterHandle(evt:DragEvent):void{ DragManager.acceptDragDrop(evt.currentTarget as IUIComponent); } private function dropHandle(evt:DragEvent):void{ var flag:Boolean=charData.contains((evt.dragInitiator as DataGrid).selectedItem); if(flag){ Alert.show("数据已经存在!!!","友情提示"); }else{ //Alert.show((evt.dragInitiator as DataGrid).selectedItem.provice); charData.addItem((evt.dragInitiator as DataGrid).selectedItem); } } private function labelFun(element:ChartItem,series:Series):String{ var csi:ColumnSeriesItem=ColumnSeriesItem(element); var ser:ColumnSeries=ColumnSeries(series); return csi.item.total+"-"+csi.item.year; } /* 货币格式化垂直线条显示的标记 */ private function lineFun(item:Object,prevValue:Object,axis:IAxis):String{ return currency.format(item); } private function categoryFun(categoryValue:Object, previousCategoryValue:Object, axis:CategoryAxis, categoryItem:Object):String{ return categoryItem.provice+"-"+categoryValue; } private function tipFun(item:HitData):String{ var date:Date=new Date(); var sss:String=dateformat.format(date); return "日期:<font color='#ff0000'>"+sss+"</font><br>总和:"+item.item.total; } ]]> </mx:Script> </mx:Application>