Flex 绘制甘特图

本文详细介绍了如何利用Flex技术来绘制甘特图,包括日期处理、函数应用、字符串操作和XML数据的整合,为项目管理提供可视化展示。通过实例代码解析,展示了在Flex中删除和更新甘特图元素的方法。
摘要由CSDN通过智能技术生成

 

 

 

 

 

 

 

//生成甘特图
	private function renderGanttChart():void
	{
		this.clearGanttChart(); //清除甘特图
		
		var startDate:Date = this.taskList.getItemAt(0).plannedStartDate;
		var endDate:Date = this.taskList.getItemAt(0).plannedEndDate;
		var leaf:String = this.taskList.getItemAt(0).leaf;
		var duration:Number = this.taskList.getItemAt(0).duration;
		
		
		//甘特图开始日期(周日)
		var beginSunday:Date = this.getStartDate4GanttChart(startDate);
		//甘特图结束日期(周六)
		var endSaturday:Date = this.getEndDate4GanttChart(endDate);
		//计算起止两个周日的间隔天数(一定为7的倍数)
		var intervalBetweenSundays:Number = this.getDateInterval(beginSunday, new Date(endSaturday.getFullYear(), endSaturday.getMonth(), endSaturday.getDate() + 1));
		//计算起止两个周日间隔的周数
		var numberOfWeeks:Number = intervalBetweenSundays / 7;
		
		//绘制甘特图标题栏的上部区域
		//注意:前面多显示一周,后面多显示一周
		for(var i:Number = -1; i <= numberOfWeeks; ++i)
		{
			var hbox:HBox = new HBox();
			hbox.height = 20;
			hbox.width = 140;
			hbox.setStyle("borderStyle", "solid");
			hbox.setStyle("borderThickness", "1");
			hbox.setStyle("borderColor","black");
			hbox.setStyle("horizontalAlign","center");
			hbox.setStyle("backgroundColor", "0XD7D7D7");
			
			if(-1 != i)
			{
				hbox.setStyle("borderSides", "top right bottom"); //从第二个开始不显示左边框
			}
			
			var label:Label = new Label();
			label.text = this.getDateByIndexOfWeek(i, beginSunday); 
			
			hbox.addChild(label);
			
			this.upper.addChild(hbox);
		}
		
		//绘制甘特图下部区域
		for(var i:Number = 0; i < intervalBetweenSundays + 14; ++i)
		{
			var hbox:HBox = new HBox();
			hbox.height = 20;
			hbox.width = 20;
			hbox.setStyle("borderStyle", "solid");
			hbox.setStyle("borderThickness", "1");
			hbox.setStyle("borderColor","black");
			hbox.setStyle("horizontalAlign","center");
			hbox.setStyle("backgroundColor", "0XD7D7D7");
			hbox.setStyle("borderSides", "left right bottom"); 
			
			if(0 != i)
			{
				hbox.setStyle("borderSides", "right bottom");
			}
			
			var label:Label = new Label();
			label.text = this.getDayByIndex(i); 
			
			hbox.addChild(label);
			
			this.lower.addChild(hbox);
		}
		
		//绘制星期分割线
		this.canvas.graphics.lineS
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值