我想以时间作为横坐标,一个节点(小方块也成)表示一个事件。 然后画出一张用很多离散事件表示的工作流程的图。 并且能在图中给出每个事件更详细的信息,比如名称,时间,使用的资源等等,这些信息也从数据库中得到。 整个流程的数据也是从数据库中得到。
有没有现成的控件可以使用呢,这样最好了。
不然,给出画的思路也行。

解决方案 »

  1.   

    吧所有事件按照开始事件排序,然后开启循环逐个处理在你的绘图区域,比如PANEL,上自己设置虚拟坐标,比如左上角表示 (0,0),然后取第一笔数据的开始时间应该就是你整个区域的时间起始范围(你可以自己预留10PX这样不至于太靠边不美观。
    自己规定每10PX表示1天(当然也可以取到PANEL的宽度,然后取最小开始时间和最大结束时间做平均决定几个PX是表示1天)那么在一次事件的循环中,基于0,0点找到你的起始时间点,画矩形(高度自己决定,下一个循环事件都要自动将Y坐标增加这个高度),第一事件有几天就画多宽,然后在其后空余一定空白后,画文本表示你的资源名等等以此循环即可。如果图形超出PANEL高度,记得加滚动条
      

  2.   

    逻辑上我还是清楚的, 我想请教下具体实现方法。
    1,比如我的事件比较多,这样造成滚动条很长,可读性就差了。有没有什么idea可以把信息表达的很清晰。
    2,每个事件用怎么样一个图形画上去,因为每个事件包含的信息也不少,最好是直接显示一些,然后把一些隐藏,用户点上去的时候显示出来。有木有现在的第三方控件啊, 自己画一个感觉好难啊。
      

  3.   

    zedgraph 开源的而且有实例