Flex 图表打印

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="init()" layout="absolute">
    <mx:Script>
        <![CDATA[
            import mx.printing.FlexPrintJobScaleType;
            import mx.printing.FlexPrintJob;
            import mx.controls.Image;
            import mx.graphics.ImageSnapshot;
            import mx.containers.VBox;
            import mx.charts.HitData;
            import mx.collections.ArrayCollection;
            import com.esri.solutions.flexviewer.utils.QueryUtil;
            import mx.validators.ValidationResult;
            import mx.rpc.events.FaultEvent;
            import mx.rpc.events.ResultEvent;

        private var content:String;
        var queryUtil:QueryUtil;
       [Bindable]
        private var rainDateArr:ArrayCollection;
        [Bindable]
        private var riverDateArr:ArrayCollection;
        [Bindable]
        private var rainArr:ArrayCollection;
        var stcd:String="mj01";
        var dt:Date=new Date("2009-9-12");
        private function oncezhanResult(event:ResultEvent):void
        {
            content= event.result.toString();    
        }
        private function onFault(event:FaultEvent):void
        {
        }
        private function init():void
        {
           service.GetRainLineByDate.send("mj01","2009-9-12");
           // service.HelloWorld.send("a","b");
           //service.GetRiverLineByDate.send();
           service.GetRiverLineByDate.send("mj01","2009-9-12");
           //service.GetHydrograph_rain.send("mj01");
        }
        private function onClick(event:MouseEvent):void
        {
            var str:String=queryUtil.getContent();
            //lb.text=str;
        }
        private function onResult(event:ResultEvent):void
        {
            var dd:String=(event.result as XML).inforTitle;
        }
         //当日雨量柱状图
        private function RainDateResult(event:ResultEvent):void
        {
            if(rainDateArr!=null)
            {
                rainDateArr.removeAll();
            }
            rainDateArr = event.result.Tables.ds.Rows;
               return;
        }
        //当日河道水位过程线
        private function RiverDateResult(event:ResultEvent):void
        {
            if(riverDateArr!=null)
            {
                riverDateArr.removeAll();
            }
            riverDateArr = event.result.Tables.ds.Rows;
               return;
        }
        private function onRiverDateFault(e:FaultEvent):void
        {
        }
        public function RainResult(event:ResultEvent) : void
        {
            if(rainArr!=null)
            {
                rainArr.removeAll();
            }
            rainArr = event.result.Tables.ds.Rows;
               return;
        }// end function
             public function myParseFunction(s:String):Date { 
              // Get an array of Strings from the comma-separated String passed in.
             var a:Array = s.split(":");
              // Create the new Date object. Note that the month argument is 0-based (with 0 being January).
              var date:Date=new Date();
              var y:Number=date.fullYear
              var m:Number=date.month;
              var d:Number=date.date;
              var newDate:Date = new Date(y,m,d,a[0],a[1],a[2]);
              return newDate;
          }
            private function renderTips(data:HitData):String
            {
                var a:String=data.item.Z;
                var b:String=data.item.TM;
                return "时间:"+b+"\n"+"水位:"+a+"(m)";
            }

//打印的核心代码
            private function print(event:MouseEvent):void
            {   

                var printJob:FlexPrintJob = new FlexPrintJob();
                if(printJob.start())
                {
                        var printBox:VBox = new VBox();
                        printBox.styleName = "PrintBox";
                        printBox.width = 600;
                        printBox.horizontalScrollPolicy = "off";
                        printBox.verticalScrollPolicy = "off";
                        var bmpMap:BitmapData = ImageSnapshot.captureBitmapData(panel);
                        var bmp:Bitmap = new Bitmap(bmpMap);  
                        var printImg:Image = new Image();   
                        printImg.source = bmp;
                        printBox.addChild(printImg); 
                        this.addChild(printBox);
                        printJob.addObject(printBox, FlexPrintJobScaleType.SHOW_ALL);
                        printJob.printAsBitmap;
                        this.removeChild(printBox);
                        printJob.send();
                }
            }
        ]]>
    </mx:Script>
    <mx:Style>  
     .ChineseFont  
    {   
        fontFamily:"Verdana","宋体";   
        fontSize:12;   
     }   
    </mx:Style>  
    <mx:WebService id="service" wsdl="../WebService.asmx?WSDL">
        <mx:operation name="HelloWorld" result="RainResult(event)"/>
        <mx:operation name="GetRainLineByDate" result="RainDateResult(event)">
        <mx:request xmlns="">
                <stcd>
                    {stcd}
                </stcd>
                <dt>
                    {dt}
                </dt>
            </mx:request>
        </mx:operation>
        <mx:operation name="GetRiverLineByDate" result="RiverDateResult(event)" fault="onRiverDateFault(event)">
            <mx:request xmlns="">
                <stcd>
                    {stcd}
                </stcd>
                <dt>
                    {dt}
                </dt>
            </mx:request>
        </mx:operation>
    </mx:WebService>
    <mx:Canvas height="100%" id="riverTabToday" label="当日河道水位过程线" width="100%">
            <mx:Panel x="52" y="38" id="panel" width="590" height="354" layout="absolute">
                    <mx:LineChart dataProvider='{riverDateArr}' showDataTips="true" fontSize="12" height="100%"  id="riverChartToday"   width="453" x="0" y="0">
                        <mx:horizontalAxis>
                                     <mx:DateTimeAxis displayLocalTime="true" parseFunction="myParseFunction"   autoAdjust="true" interval="24"  dataUnits="minutes" title="采集时间" />
                                 </mx:horizontalAxis>
                              <mx:verticalAxis>
                                  <mx:LinearAxis baseAtZero="false" title="水位(m)"/>
                              </mx:verticalAxis>
                              <mx:series>
                                   <mx:LineSeries yField="WRZ"  xField="TM"  displayName="警戒水位(m)"/>
                                   <mx:LineSeries yField="Z"  xField="TM" displayName="水位(m)"/>
                              <!--       <mx:LineSeries yField="Q"  displayName="流量(m^3/s)"/>-->
                              </mx:series>
                    </mx:LineChart>
                    <mx:Legend dataProvider='{riverChartToday}' legendItemClass="com.esri.solutions.flexviewer.xiniu.BigFontLegendItem" x="453" y="0"/>
            </mx:Panel>
            <mx:Button label="打印" click="print(event)" x="266" y="10"/>
        </mx:Canvas>
</mx:Application>

image

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值