4,328
社区成员
发帖
与我相关
我的任务
分享
<AllActionItems>
<ActionItem>
<ActionItemID>1</ActionItemID>
<Title>Test Action Item</Title>
<Actions>
<CurrentAction>
<DateString>01/02/2009</DateString>
<HourIndex>4</HourIndex>
<ActionString>
ttt
</ActionString>
</CurrentAction>
<CurrentAction>
<DateString>01/04/2009</DateString>
<HourIndex>6</HourIndex>
<ActionString>
sss
</ActionString>
</CurrentAction>
</Actions>
</ActionItem>
<ActionItem>
<ActionItemID>2</ActionItemID>
<Title>Test Action Item2222</Title>
<Actions>
<CurrentAction>
<DateString>01/03/2009</DateString>
<HourIndex>2</HourIndex>
<ActionString>
dd</ActionString>
</CurrentAction>
<CurrentAction>
<DateString>01/04/2009</DateString>
<HourIndex>8</HourIndex>
<ActionString>
dfasdf </ActionString>
</CurrentAction>
</Actions>
</ActionItem>
</AllActionItems>
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" height="100%" applicationComplete="GetIssueData1();">
<mx:Script>
<![CDATA[
import mx.graphics.Stroke;
import mx.charts.renderers.CircleItemRenderer;
import mx.charts.HitData;
import mx.charts.LinearAxis;
import mx.charts.CategoryAxis;
import mx.utils.StringUtil;
import mx.collections.ArrayCollection;
import mx.charts.series.items.LineSeriesSegment;
import mx.collections.XMLListCollection;
import mx.controls.Alert;
import mx.charts.series.LineSeries;
import mx.charts.chartClasses.DataTransform;
import mx.charts.chartClasses.CartesianTransform;
import mx.charts.series.items.LineSeriesItem;
public var HourList:Array =[];
private function GetTimeAsIndex(item:Object,pre:Object,ax:LinearAxis):String
{
var index:int;
index = Number(item);
var str:String = "";
if (index < 12)
{
str = index + ":00am";
}
else if (index >= 12)
{
str = (index - 12) + ":00pm";
}
if(str=="0:00am")
str = "12:00am";
else if(str=="0:00pm")
str = "12:00pm";
return str;
}
private function bindData():void
{
var url:String = ExternalInterface.call("SendUrlToFlex");
if(url.indexOf("?")!=-1)
url +="&";
else url +="?";
this.hsGetData.url=url+"IssueID=0&tmp="+Math.random();
this.hsGetData.send();
}
private function GetIssueData1():void
{
var xml:XML = <AllData>
<AllDates>
<Date>06/25/2009</Date>
<Date>06/26/2009</Date>
<Date>06/27/2009</Date>
<Date>06/28/2009</Date>
<Date>06/29/2009</Date>
<Date>06/30/2009</Date>
<Date>07/01/2009</Date>
<Date>07/02/2009</Date>
<Date>07/03/2009</Date>
<Date>07/04/2009</Date>
<Date>07/05/2009</Date>
<Date>07/06/2009</Date>
<Date>07/07/2009</Date>
</AllDates>
<AllActionItems>
<ActionItem>
<ActionItemID>6</ActionItemID>
<Title>Create an Action Item</Title>
</ActionItem>
<ActionItem>
<ActionItemID>15</ActionItemID>
<Title>tes</Title>
</ActionItem>
<ActionItem>
<ActionItemID>16</ActionItemID>
<Title>ActionItem</Title>
</ActionItem>
</AllActionItems>
<AllActions>
<Action>
<ActionItemID>6</ActionItemID>
<ActionDate>06/29/2009</ActionDate>
<HourIndex>9</HourIndex>
<Content><i>9:00am</i><BR/>This action item is assigned to Rick Shi .</Content>
</Action>
<Action>
<ActionItemID>16</ActionItemID>
<ActionDate>06/25/2009</ActionDate>
<HourIndex>8</HourIndex>
<Content><i>8:00am</i><BR/>test</Content>
</Action>
<Action>
<ActionItemID>16</ActionItemID>
<ActionDate>06/29/2009</ActionDate>
<HourIndex>6</HourIndex>
<Content><i>6:00am</i><BR/>This action item is assigned to Denise Speidel .</Content>
</Action>
<Action>
<ActionItemID>16</ActionItemID>
<ActionDate>07/01/2009</ActionDate>
<HourIndex>7</HourIndex>
<Content><i>7:00am</i><BR/>sdf</Content>
</Action>
</AllActions>
</AllData>;
var dateList:XMLList =xml.AllDates.elements();
var actionList:XMLList = xml.AllActions.elements();
var actionItemList:XMLList = xml.AllActionItems.elements();
var dataSource:Array = new Array();
var o:Object;
var dString:String,actionItemID:String,hourIndex:int,content:String,title:String;
var searchList:XMLList;
for each(var d:XML in dateList)
{
o = new Object();
dString = d[0].toString();
o["DateString"]=dString;
searchList = xml..Action.(ActionDate==dString)
for each(var a:XML in searchList)
{
actionItemID = a.ActionItemID;
hourIndex = a.HourIndex;
content = a.Content;
o["a"+actionItemID] = hourIndex;
o["content"+actionItemID] = content;
}
dataSource.push(o);
}
MainChart.dataProvider = dataSource;
for each(var actionItem:XML in actionItemList)
{
actionItemID = actionItem.ActionItemID;
title = actionItem.Title;
var line:LineSeries = new LineSeries();
line.xField="DateString";
line.interpolateValues = true;
//line.setStyle("stroke",new Stroke(0xaaaaaa,1,0.7));
line.setStyle("radius",5);
line.radius=5;
line.yField = "a"+actionItemID;
line.displayName =title;
line.setStyle("itemRender",new ClassFactory(CircleItemRenderer));
MainChart.series.push(line);
}
MainChart.series = MainChart.series;
}
public function SetDataTip(hd:HitData):String
{
var dt:String = "";
var this_series:LineSeries = LineSeries(hd.element);
var dataTransform:DataTransform = this_series.dataTransform;
var vertical_axis:LinearAxis = LinearAxis(dataTransform.getAxis(CartesianTransform.VERTICAL_AXIS));
var horizontal_axis:CategoryAxis = CategoryAxis(dataTransform.getAxis(CartesianTransform.HORIZONTAL_AXIS));
var actionItemID:String = this_series.yField;//a16
actionItemID = actionItemID.substring(1,actionItemID.length);
var content:String = hd.chartItem.item["content"+actionItemID].toString();
var n:String = this_series.displayName;
if (n && n != "")
dt += "<b>" + n + "</b><BR/>";
var xValue:Object = horizontal_axis.formatForScreen(LineSeriesItem(hd.chartItem).xValue);
if(horizontal_axis.labelFunction != null)
{
dt += horizontal_axis.labelFunction(xValue,{},horizontal_axis,LineSeriesItem(hd.chartItem)) + "<BR/>";
}
else
{
dt += xValue+ "<BR/>";
}
dt += content+"\n";
return dt;
}
]]>
</mx:Script>
<mx:HTTPService id="hsGetData" result="GetIssueData1();" resultFormat="e4x">
</mx:HTTPService>
<mx:Panel title="Schedule chart for the issue" height="100%" width="100%" layout="vertical">
<mx:LineChart id="MainChart" height="100%" width="100%"
showDataTips="true" paddingLeft="5" paddingRight="5" dataTipFunction="SetDataTip" >
<mx:horizontalAxis>
<mx:CategoryAxis categoryField="DateString">
</mx:CategoryAxis>
</mx:horizontalAxis>
<mx:verticalAxis>
<mx:LinearAxis displayName="Hour" minimum="0" maximum="23" labelFunction="GetTimeAsIndex">
</mx:LinearAxis>
</mx:verticalAxis>
</mx:LineChart>
<mx:Legend id="L1" dataProvider="{MainChart}">
</mx:Legend>
</mx:Panel>
</mx:Application>