向日葵甘特实战一:实现零件加工任务的显示

本文介绍如何使用向日葵甘特图组件实现零件加工任务的显示,并允许用户调整工序计划时间。主要内容包括WebService搭建、XML数据格式要求、任务链接对象序列化控制等。
 

向日葵甘特实战一:实现零件加工任务的显示

 

最近要完成一个机械加工厂生产管理系统的项目,正好用上向日葵甘特图组件,我将实战过程公布如下。

我的第一个任务是显示零件任务加工过程的甘特图,并允许用户调整工序的计划时间。

我的技术路线如下图所示:

 

 

首先我要建立Web Service, 用于从数据库中提取数据生成甘特图组件所需要的xml数据。Xml数据格式要求可参见

http://www.51diaodu.cn/sfgantt/docs/index.html

 

采用.net发布Web Service很简单,这里不再赘述。但有几点要特别注意:

1、控制任务链接对象的序列化

     由于任务与前置任务属于一对多的关系,所以Task对象中存在PredecessorLinkS数组,这样在.net 生成的web服务WSDL中会多出一个节点PredecessorLinkS,与向日葵甘特图要求的XML格式不一致。程序中我们必须采用如下标记来控制Xml的序列化    <System.Xml.Serialization.XmlElement(elementName:="PredecessorLink", IsNullable:=False)> _    Public PredLinkS() As PredecessorLink

 

2、大纲级别

      任务属性中的大纲级别OutlineNumber对甘特图组件

极为重要,它控制了任务之间的父子关系,必须按照11.1,1.1.1 这种方式进行进行定义。

 

3xml数据中的根任务

 

      向日葵甘特图中必须有一个根任务,它的OutlineNumber=0,计划开始属性Start最好为所有任务的最早计划时间,这样便于Gantt图初始化时间的显示。

 

4、任务链接类型的显示

LinkType=0 表示完成-完成FF

LinkType=1 表示完成-开始 FS

LinkType=2 表示开始-完成 FS

LinkType=3 表示开始-开始 SS

 

 

Web服务建立完之后,我们就获取了甘特图组件显示所需要的数据。但这样还不行,因为web service进行了SOAP协议封装,所得到的Dom对象无法直接为向日葵甘特图所用,必须采用如下语句进行转化:

var doc=SFAjax.createDocument();

doc.appendChild(loader.xmlDoc.documentElement.firstChild.firstChild.firstChild);//firstChild的级数随需而变

 

获取到向日葵甘特所需要的Dom对象,我们就可以进行Gantt图的初始化了。

因为我们要做生产管理软件,所需要的属性当然与向日葵甘特图缺省提供的属性全然不同了。我们先扩展任务对象,向日葵甘特图会自动从XML中获取相应节点,例如扩展“计划数”属性:

adapter.addTaskProperty("PlanQty","PlanQty",SFDataRender.types.Float);

 

任务属性扩展后,我们还需将其定义到Gantt任务域中

SFGanttField.addTaskField("PlanQty",50,'计划数',SFGanttField.NormalHead,SFGanttField.NormalBody,SFGanttField.NormalInput,"PlanQty","PlanQty");

 

这样,一个零件任务的甘特图界面就形成了,如下图所示

 

 

      哈哈,第一步工作顺利完成了。不过我知道路还远着呢?生产管理系统毕竟太复杂了……

转载于:https://www.cnblogs.com/tidestone/archive/2008/09/02/1281672.html

向日葵 Gantt 是当前B/S 系统开发中先进的甘特图解决方案,它采用与Google maps相同的AJAX技术,实现了与Ms Project 甘特致的界面和功能,可广泛应用于 ERP 系统、MES系统、项目管理系统或其它的资源时间相关领域。 <br><br> 向日葵甘特图组件完全采用JS实现,与服务器端开发语言无关,可在任何服务器平台上运行; <br><br> 可轻松地与现有系统整合; <br> 减轻服务器和带宽的负担,节约空间和带宽租用成本; <br> 客户端无需安装任何插件即可运行; <br> 支持大多数主流浏览器,如:IE,FireFox,Opera等; <br>用户基本操作无需与服务器交互,给用户带来流畅而友好的体验。 <br> 向日葵甘特图组件与MS Project中的甘特图保持高度致。MS Project是目前应用最为广泛的项目管理工具,也是甘特图绘制领域的事实标准。 <br><br>操作致性:向日葵甘特图组件的操作与MS Project极为相似,在Web上实现了拖动甘特条调整任务进度、调整任务工期、建立任务链接关系等精细操作。 <br><br>数据致性:可以直接读取MS Project(版本在2000以后)的XML数据,为用户实现与MS Project的无缝集成提供了良好的接口。而且向日葵甘特图组件也保持了良好的数据可扩展性。 <br><br>界面致性:界面整体风格与MS Project完全致,也可以自定义表格区显示列,条形图的形状,链接线的样式。而且Web技术中的样式表为向日葵甘特图组件提供了无限的变化可能。 <br><br>API致性:向日葵甘特图组件提供了和MS Project致的应用程序开发API,功能强大,简单易用。 <br><br>官方网址: www.51diaodu.cn (我要调度网) 向日葵甘特图组件QQ交流群: 63867839
向日葵甘特图组件1.5版发布后,获得了很多用户的好评。我们也再接再励,对向日葵甘特最近做了如下更新:     1、 增加了甘特图中每个组件的isUsing属性,可以判断其是否加载,从而可以允许用户灵活地显示/隐藏 链接线,进度线等组件 ; 2、 当甘特任务数比较少的情况下,甘特图自动在下方平铺甘特图样式,实现更为致的甘特图界面 3、 点击右边甘特条时,自动高亮选择左边的列表行;点击列表栏时,也自动高亮显示右边的甘特条。用户选择任务时更加清晰。 4、 实现行定位任务。用户可以通过筛选条件查找到任务,然后通过甘特图API提供的scrolltoElement方法将其显示到界面中心。参见范例http://www.51diaodu.cn/sfgantt/examples/SFGantt/scrollTo.htm 5、自动合并压缩甘特图的左边列表栏 向日葵甘特图介绍: 向日葵 Gantt 是当前B/S 系统开发中先进的甘特图解决方案,它采用与Google maps相同的AJAX技术,实现了与Ms Project 甘特致的界面和功能,可广泛应用于 ERP 系统、MES系统、项目管理系统或其它的资源时间调度相关领域。 向日葵 Gantt 数据XML核心属性与MS Project 完全致,可以直接读取MS Project XML文件。另外由于向日葵甘特完全采用AJAX的技术来实现,因此比其他的甘特组件至少有如下优势: 完全采用JS实现,与服务器端开发语言无关,可在任何服务器平台上运行; 可轻松地与现有系统整合; 减轻服务器和带宽的负担,节约空间和带宽租用成本; 客户端无需安装任何插件即可运行; 支持大多数主流浏览器,如:IE,FireFox,Opera等; 用户基本操作无需与服务器交互,给用户带来流畅而友好的体验。 向日葵甘特图支持从服务器端动态加载数据,先进的按需加载技术使用户能够轻松应对大数据量任务的呈现问题。 向日葵甘特图是个免费的web图形开发组件,它提供了非常丰富的用户二次开发API和完整的在线文档,参见 http://www.51diaodu.cn/sfgantt/docs/index.html 用户可以非常方便地将其整合到现有的Web系统中,无论用户使用的是Java,Dotnet还是Php等. 另外我们公司也提供收费服务,为用户提供更专业的咨询与升级服务,谢谢您对向日葵甘特开发团队的鼓励与支持! 中文网址: http://www.51diaodu.cn/ 英文网站:http://www.sfgantt.com/ 向日葵甘特图组件QQ交流群: 63867839 邮件:Admin@51diaodu.cn
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值