Flex 绘制甘特图

 

 

 

 

 

 

 

//生成甘特图
	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
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值