目前在B/S领域内,基于JQuery等框架的流程图绘制引擎非常成熟,但翻遍网络没有发现几个开源的Winform下的流程图绘制解决方案,就算有也是商业化的,封装好的,需要购买的,本人在开发3S系统ERP中,就遇到流程图(包含桌面流程图和审核流程图)的问题,它确实是很多系统中需要用的技术。
下面是我的思路:
1)流程途中有节点,节点对应很多线段,有进去的,有出去的。如是我构建2个对象TVNode、TVLine分别对应流程节点和线段
pubLic class TVLine
{
public Point F;//起点
public Point T;//终点
}
public Classs TVnode :Button
{
public int ID;
public List<TVLine> OutLines;//出方向线段
public List<TVLine> InLines; //入方向线段
}
2) 有了以上2个模型,节点拖动,线段重绘方面的判断就简单多了。采用GDI+函数,节点移动过程中,把旧的线段抹掉,绘制新节点的线段,这样用户看起来就是橡皮筋效果了! 经过一周的工作,代码才不到800行,就实现自己轻量级的流程图引擎,使用到3SERP中,实现ERP流程导向图和审核流定义,效果如下图所示:
下图是3S审核流程图设置页面
如果有感兴趣的朋友,可以跟我多多交流,一起探讨。目前还没有实现更加复杂的系统图。只是基本满足了ERP中的流程导向图和审核流程图。