Как получить дату окончания из любого идентификатора задачи в пользовательском столбце? (настраиваемое поле?) - PullRequest
0 голосов
/ 12 апреля 2019

Я отслеживаю документацию и использую MS Project, чтобы получить представление о фактической продолжительности задач, например:

### ID | task | Duration  | Start | Finish  ###
1 | Document version 1 issue | 0 days | date1 | date1

2 | Comments version 1       | 0 days | date2 | date2

3 | Document version 2 issue | 0 days | date3 | date3

4 | Review approval ver 2    | 0 days | date4 | date4

Все задачи зависят от внешних факторов, поэтому для длительности задано значение 0 и запуск.-финиши это одна и та же дата.В зависимости от документа для рассмотрения и утверждения может потребоваться больше времени.

Я хотел бы добавить еще один столбец, который легко добавить, для расчета фактической продолжительности между задачами.Например:

### ID | task | Duration  | Start | Finish | DAYS ###
1 | Document version 1 issue | 0 days | date1 | date1 | 

2 | Comments version 1       | 0 days | date2 | date2 | days between ID2 and ID1

3 | Document version 2 issue | 0 days | date3 | date3 | days between ID3 and ID2

4 | Review approval ver 2    | 0 days | date4 | date4 | days between ID4 and ID3

Я пытался использовать таможенные поля, но не могу понять, как получить дату выбранного идентификатора задачи (в другой строке) в другой строке идентификатора задачи.

Допустим, я бы сделал что-то вроде

DateDiff ("d", Finish ([ID]), Finish ([ID] -1)

Тогда я ожидал бы получить разницу днейИз опыта я могу узнать, сколько на самом деле требуется времени для просмотра определенной информации.

Есть ли какие-либо предложения для выполнения этой задачи?

Спасибо!

1 Ответ

0 голосов
/ 13 апреля 2019

ОК. На основании этого предложения в конце ...

Тогда я ожидаю получить разницу в днях, чтобы из опыта узнать, сколько времени на самом деле требуется, чтобы просмотреть определенную информацию.

... Я бы предложил НЕ делать никакого специального кодирования.Скорее, я бы предложил вам изменить структуру вашего расписания.Я бы поставил задачи «Обзор» между этими вехами, которые представляют работу по выполнению обзоров.Первоначально их длительности будут оценками, основанными на размере и характере проверяемой вещи, но они могут быть обновлены по мере продолжения процесса проверки.

Если вы ДОЛЖНЫ структурировать это таким образом, то вот код:

Sub CalcCustomDuration()
Dim P As Project
Dim T As Task
Set P = Application.ActiveProject
For Each T In P.Tasks
    If Not (T Is Nothing) Then
        If T.Number1 > 0 Then
            T.Number2 = Application.DateDifference(P.Tasks(T.ID - 1).Finish, T.Start) / 60 / 8
        End If
    End If
Next T
End Sub
...