Как программно назначить лаг в MSProject C# - PullRequest
1 голос
/ 12 февраля 2020

Microsoft Docs LinkPredecessors Метод описывается так:

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

Как я могу присвоить значение Lag для "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);
        }
    }

1 Ответ

0 голосов
/ 12 февраля 2020

Метод LinkPredecessors ожидает строку для лага. Из документов:

Строка, указывающая продолжительность времени задержки между связанными задачами.

Примерами этого могут быть:

  • «2d» для 2-дневной задержки
  • «30ed» для 30- прошедшего -дневного отставания
  • «4 часа» для 4-часовой задержки
  • "3 Вт" для лага на 3 рабочих недели
  • "30 м" для лага на 30 рабочих минут

Добавление "е" перед единица времени делает это истекшим, как в календарных днях. В противном случае время задержки должно соответствовать рабочему календарю.

...