PDA

View Full Version : problem in flex charts


flexable
10-15-2011, 08:17 AM
this is my code..my application takes in a customer no input and shows a graph of arrival and departure of cutomers on some calcualtion done...i am unable to put the departure line...arrival line is coming up.
image at- http://asdfshare.com/tycoix6jm7iq/snap.bmp.html
<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;

public var ia:Array=new Array(0,125,250,375,500,625,750,825,1000);// inter arrival cumulative

public var st:Array=new Array(100,300,600,850,950,1000);//service cumulative

public var interarrival:Array=new Array();
public var service:Array=new Array();
public var arrival:Array= new Array();
public var departure:Array= new Array();
//public var display:ArrayCollection= new ArrayCollection([{no:1,Departure:10,arriva:20},{no:2,Departure:23,a rriva:20},{no:3,Departure:34,arriva:43}]);
public var display:ArrayCollection= new ArrayCollection([{no:0,Departure:0,arriva:0}]);
public var i:Number;// for the outer loop of no of customers
public var n:Number;
public var t:Number;//for clock
public var iaval:Number;//interarrival lloop increment
public var stval:Number;//service loop increment
public var d:Number;
public var p:Number;
public var l:Number;
public var m:Number;
public var f:Number;
public var q:Number=1;//arrival cal
public var nn:int;//used in calculating arrival
public var arrive:int;
public var depart:int;
public var wait:Boolean;
public var idle:Boolean;
public var z:int;
public var xx:int=1;
public var v:int=1;
public var c:int;



public function randomNumber(low:Number, high:Number):Number//random function
{
return Math.floor(Math.random() * (1+high-low)) + low;
}


public function calrand():void
{
n=new Number(inp.text);//taking user input for no of users
arrival[0]=0;//setting arrival initial
trace("service time,inter arrival, arrival time,departure time");

for( i=0;i<n;i++)
{
var ianum:Number=randomNumber(0,999);
var sernum:Number= randomNumber(0,999);
// trace(ianum,sernum);//tracing random numbers

//calculating the interarrival time
if(ianum>0&&ianum<125)
iaval=1;
else if(ianum>125&&ianum<250)
iaval=2;
else if(ianum>250&&ianum<375)
iaval=3;
else if(ianum>375&&ianum<500)
iaval=4;
else if(ianum>500&&ianum<625)
iaval=5;
else if(ianum>625&&ianum<750)
iaval=6;
else if(ianum>750&&ianum<825)
iaval=7;
else
iaval=8;

interarrival[d++]=iaval;
nn=nn+iaval;//for arrival
arrival[q++]=nn//putting in arrival array



//calculating the service time

if(sernum>0&&sernum<100)
stval=1;
else if(sernum>100&&sernum<300)
stval=2;
else if(sernum>300&&sernum<600)
stval=3;
else if(sernum>600&&sernum<850)
stval=4;
else if(sernum>850&&sernum<950)
stval=5;
else
stval=6;

service[p++]=stval;
departure[f++]=arrival[q-2]+stval;//departure time calculated

trace(service[p-1],interarrival[d-1],arrival[q-2],departure[f-1]);


// trace(stval);

// trace(iaval,stval);//tracing


}
for(var ii:int=1;ii<=n;ii++)
{
display.addItemAt({no:ii,Departure:departure[ii],arriva:arrival[ii]},ii);
trace(display.getItemAt(ii));

}

var ldep:int=departure[f-1];

trace(ldep);//coorect last departure fr clock

arrive++;
for(t=0;t<ldep;t++)//clock loop
{
trace("AT CLOCK =",t);

if(t==arrival[z])
{
arrive=arrive+1;
z++;
trace("naval");

}
/* else if(arrival[x]<=departure[x-1])
{//departure will take time n a process arrives
wait=true;
trace("wait");
x++;
}
else if(arrival[v-1]>=departure[v])
{//arrival has nt come and the last process ends
idle=true;
trace("idle");
v++;
}
else if(t==departure[c])
{
arrive=arrive-1;
depart=depart+1;
c++;
}*/
else
// naval();



linechart.dataProvider=display;//imp line... providing data to chart

trace("arrival=",arrive,"waiting=",wait,"idle=",idle,"departure=",depart);
wait=false;
idle=false;

}



}
public function naval():void

{
trace("i am naval joshi");
if(arrival[xx]<=departure[xx-1])
{//departure will take time n a process arrives
wait=true;
trace("wait");
xx++;
}
else if(arrival[v-1]>=departure[v])
{//arrival has nt come and the last process ends
idle=true;
trace("idle");
v++;
}
else if(t==departure[c])
{
arrive=arrive-1;
depart=depart+1;
c++;
}
else
trace("continue");
}









]]>
</mx:Script>
<mx:Label x="17" y="116" text="enter the no of users" width="160" height="38"/>
<mx:Button x="98" y="203" label="Button" id="btn" click="calrand();"/>
<mx:TextInput x="236" y="114" id="inp"/>
<mx:Stroke id = "s1" color="blue" weight="2"/>
<mx:Stroke id = "s2" color="green" weight="2"/>
<mx:LineChart id="linechart" height="100%" width="682"
paddingLeft="5" paddingRight="5"
showDataTips="true" x="483">

<mx:horizontalAxis>
<mx:CategoryAxis categoryField="no"/>
</mx:horizontalAxis>

<mx:series>
<mx:LineSeries yField="Departure" form="curve" displayName="Departure" lineStroke="{s2}"/>
<mx:LineSeries yField="arriva" form="curve" displayName="Arrival" lineStroke="{s1}"/>
</mx:series>
</mx:LineChart>
<mx:Legend dataProvider="{linechart}" x="380" y="10" width="95" height="65"/>


</mx:WindowedApplication>

the problem seems to be with this portion..the departure array dosent seems to populate the collection..but y??
for(var ii:int=1;ii<=n;ii++)
{
display.addItemAt({no:ii,Departure:departure[ii],arriva:arrival[ii]},ii);
trace(display.getItemAt(ii));

}

flexable
10-17-2011, 02:01 PM
still waiting fr replys guyss...