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