1

Microsoft DocsLinkPredecessors方法描述为:

public void LinkPredecessors (object Tasks, Microsoft.Office.Interop.MSProject.PjTaskLinkType Link = Microsoft.Office.Interop.MSProject.PjTaskLinkType.pjFinishToStart, object Lag);

如何将滞后值分配给“对象滞后”?下面的代码用于分配前任和任务链接类型,但是,我无法弄清楚如何添加滞后。

Microsoft.Office.Interop.MSProject.PjTaskLinkType LinkType;

    var p = IApp.ActiveProject;
    foreach (var y in tasksPred)
    {
        int intTaskType = Convert.ToInt32(y.RelationshipType);

        switch (intTaskType)
        {
            case 0:
                LinkType = Microsoft.Office.Interop.MSProject.PjTaskLinkType.pjFinishToFinish;
                break;
            case 1:
                LinkType = Microsoft.Office.Interop.MSProject.PjTaskLinkType.pjFinishToStart;
                break;
            case 2:
                LinkType = Microsoft.Office.Interop.MSProject.PjTaskLinkType.pjStartToFinish;
                break;
            case 3:
                LinkType = Microsoft.Office.Interop.MSProject.PjTaskLinkType.pjStartToStart;
                break;
            default:
                LinkType = Microsoft.Office.Interop.MSProject.PjTaskLinkType.pjFinishToStart;
                break;
        }

        if (y.UniqueIDPredecessor != "")
        {
           p.Tasks[Convert.ToInt32(y.UniqueID)].LinkPredecessors(p.Tasks[Convert.ToInt32(y.UniqueIDPredecessor)], LinkType);
        }
    }
4

1 回答 1

0

LinkPredecessors方法需要一个用于滞后的字符串从文档:

一个字符串,它指定链接任务之间的延迟时间。

这方面的例子是:

  • “2d”表示 2 个工作日的延迟
  • “30ed”表示 30的延迟
  • “4h”表示 4 个工作小时的延迟
  • “3w”表示滞后 3 个工作周
  • “30m”表示 30 个工作分钟的延迟

在时间单位之前添加“e”使其经过,如日历日。否则,滞后时间遵循工作日历。

于 2020-02-12T16:58:43.430 回答