范例:按照日历自动计算任务工期

范例:按照日历自动计算任务工期

查看本页面源文件可以了解如何使用SFGantt Javascript API实现本功能;

查看XML数据文件可以了解向日葵甘特图的日历数据定义结构;

为方便用户制定项目计划,向日葵甘特支持非工作时间用阴影表示。

本范例中,当日历放缩级别以天为最小单位时,会自动在星期天显示阴影,因为本项目日历中星期六属于工作日;当放缩级别以小时为最小单位的情况下,会自动在每天的休息时间显示阴影,如本范例中就会在8:00-12:00,13:00-17:00显示阴影。

为方便用户选择合适的比例查看甘特图,向日葵甘特支持日历无极放缩,在日历区按下鼠标左右拖动就可以缩放甘特图,直到选择到合适的比例时再松开鼠标左键。

向日葵甘特图按照每周班次日历方式进行定义,除此之外向日葵甘特还支持例外日历的定义,比如五一,十一、清明端午重阳等公休日,我们可以采用例外日历进行定义。

向日葵甘特 计算项目工期时,会自动扣除项目日历中的非工作日。

如要使用向日葵自动计算工期功能,只需要在向日葵甘特列表中定义显示工期列Duration即可。

gtConfig.setConfig("SFGantt/taskFieldNames","StatusIcon,Name,Duration,Start,Finish");//设置甘特图显示的字段列表

日历数据的定义方法如下:

首先,我们需要定义项目所使用的日历编号,通过如下节点定义:

<CalendarUID>1</CalendarUID>

然后,在如下节点中定义日历详细信息
<Calendars>
<Calendar><UID>1</UID><Name>标准</Name><IsBaseCalendar>1</IsBaseCalendar><BaseCalendarUID>-1</BaseCalendarUID>
<WeekDays>
<WeekDay>
<DayType>1</DayType> 星期日
<DayWorking>0</DayWorking>非工作日
</WeekDay>
<WeekDay>
<DayType>2</DayType>星期一
<DayWorking>1</DayWorking>工作日
<WorkingTimes>
<WorkingTime>
<FromTime>08:00:00</FromTime>一班开始
<ToTime>12:00:00</ToTime>一班结束
</WorkingTime>
<WorkingTime>
<FromTime>13:00:00</FromTime>二班开始
<ToTime>17:00:00</ToTime>二班结束
</WorkingTime>
</WorkingTimes>
</WeekDay>
<WeekDay>
<DayType>3</DayType>星期二
<DayWorking>1</DayWorking>工作日
<WorkingTimes>
<WorkingTime>
<FromTime>08:00:00</FromTime>
<ToTime>12:00:00</ToTime>
</WorkingTime>
<WorkingTime>
<FromTime>13:00:00</FromTime>
<ToTime>17:00:00</ToTime>
</WorkingTime>
</WorkingTimes>
</WeekDay>
<WeekDay>
<DayType>4</DayType>星期三
<DayWorking>1</DayWorking>工作日
<WorkingTimes>
<WorkingTime>
<FromTime>08:00:00</FromTime>
<ToTime>12:00:00</ToTime>
</WorkingTime>
<WorkingTime>
<FromTime>13:00:00</FromTime>
<ToTime>17:00:00</ToTime>
</WorkingTime>
</WorkingTimes>
</WeekDay>
<WeekDay>
<DayType>5</DayType>星期四
<DayWorking>1</DayWorking>工作日
<WorkingTimes>
<WorkingTime>
<FromTime>08:00:00</FromTime>
<ToTime>12:00:00</ToTime>
</WorkingTime>
<WorkingTime>
<FromTime>13:00:00</FromTime>
<ToTime>17:00:00</ToTime>
</WorkingTime>
</WorkingTimes>
</WeekDay>
<WeekDay>
<DayType>6</DayType>星期五
<DayWorking>1</DayWorking>工作日
<WorkingTimes>
<WorkingTime>
<FromTime>08:00:00</FromTime>
<ToTime>12:00:00</ToTime>
</WorkingTime>
<WorkingTime>
<FromTime>13:00:00</FromTime>
<ToTime>17:00:00</ToTime>
</WorkingTime>
</WorkingTimes>
</WeekDay>
<WeekDay>
<DayType>7</DayType>星期六
<DayWorking>1</DayWorking>工作日
<WorkingTimes>
<WorkingTime>
<FromTime>08:00:00</FromTime>
<ToTime>12:00:00</ToTime>
</WorkingTime>
<WorkingTime>
<FromTime>13:00:00</FromTime>
<ToTime>17:00:00</ToTime>
</WorkingTime>
</WorkingTimes>
</WeekDay>
</WeekDays>
</Calendar>

返回范例列表