在这个问题开始的时候遇到了一些麻烦,而且谷歌搜索解决方案也没什么好运气。
我不能使用MS来显示甘特图,所以我想要用VBA从Access数据库中的任务、完成任务的时间、前面的任务等绘制一个漂亮的甘特图。我知道VBA,但在概念化这个问题时遇到了困难。换句话说,我对画,访问连接等都很满意.在理论上,只要找出每一项任务的开始日期都有困难,理论上就会影响到其他任务。

附上了这个问题的简单例子..。标准CPM的东西,我有一个A的例子,作为任务B和D的先例。如果我从“路径”的角度来考虑这一点,就会有路径A和路径and .如果我的代码是基于A计算起点A的话,那就没有足够的时间让A通过现场直播完成,所以A必须基于A.
虽然看起来很简单,但是有20项有不同先例的任务,就会变得很复杂.也就是说,我可以遍历并找到一组唯一的路径,我可以找到“最长”的路径,但这并不一定给每个任务提供可行的最小开始日期,因为可能会有其他依赖的任务分支并花费更长的时间,因此原始路径需要更早地开始,然后该路径中的所有任务都会被“移位”,因此对相关路径的任何计算都必须转移.
我觉得我不得不写更多关于我试图展示的东西,至少我已经做了努力,但我担心这听起来像是胡言乱语!无论如何,我的第一次尝试有一个递归函数,它会循环每个活动,所以从A开始,它会说“我有后续任务(S)吗?”如果是这样的话,那么这个函数会再次调用B,然后C,返回B,返回A.如果找到多个任务,它将循环遍历每个后续任务,并选择“最小”日期.即对D返回E,然后对A返回D,然后选择D而不是B (D < B)
但是我不能对每个活动循环相同的方法,就好像我从B开始,然后找到后续的活动,我就不会得到上面的“相同的B”.因为B依赖于D和E(因为A)。
所以我想,我要么需要“回首”,另一方面也需要“向前看”。但这让我有点头疼。或者我真的需要在每次任务中存储我的日期,这样我就可以存储A,B,C的日期.然后计算路径A,D,E,这意味着我必须再次改变A,B和C.但是一旦我有了大量的任务,我似乎要回去重新计算每件事.
我在正确的轨道上吗?似乎我倾向于一种“野蛮的力量”,我只是一遍又一遍地重复相同的计算,直到一切“解决”,并发现这是最小的开始日期.我觉得我错过了一种“聪明”的方法?
发布于 2017-03-17 07:01:35
您缺少的术语是"临界路径“和”资源可用性“。您需要确定所有操作都必须按顺序完成的一组操作--这是最长的,在时间上,所有其他操作都可以根据可用的资源来完成--如果您只有一个开发人员,那么她/他就是关键的资源,最小的时间只是所有时间的总和。
有许多解决方案,大多数是基于路径行走的,它们的阅读是高度学术性的,但大多数方案实际上是在每一点上反向工作,检查最终交付的先决条件。
要做的“聪明”的事情是购买,或找到一个免费的解决方案和使用,Excel不是一个很好的工具,例如,看看TaskJuggler,并利用您的技能,在提供接口的工具,从Access (如果你承诺使用)。
请记住,项目是活的,当出现延迟或发现新的依赖关系时,需要重新进行分析,调整优先级,获得额外的资源和/或推迟预期的结束日期。
https://softwareengineering.stackexchange.com/questions/344325
复制相似问题