Вопрос:
Я хотел бы получить уведомление по электронной почте от MS Project, когда задача предшественника будет отмечена как завершенная. Я бы хотел, чтобы он отправил по электронной почте предварительный ресурс и менеджер проекта. Я не знаю, с чего начать.
Ответ №1
Предполагая, что “отправьте электронное письмо”, вы имеете в виду отправить электронное письмо через Outlook, тогда вы можете использовать этот метод. MS Project не имеет событий на уровне задач, но вы можете использовать событие Project_Change; вам просто нужно выполнить все задачи, чтобы увидеть, какие из них нужно отправлять по электронной почте.
В этом примере я сохранил адрес электронной почты получателя в поле гиперссылки, и я использую поле Flag1, чтобы указать, было ли отправлено электронное письмо. Электронное письмо остается открытым для просмотра пользователем перед нажатием кнопки отправки; оставляя его открытым, также избегает всплывающего сообщения, в котором пользователь должен одобрить программный доступ к Outlook.
Private Sub Project_Change(ByVal pj As Project) Dim tsk As Task Dim succ As Task Dim ol As Outlook.Application Dim mail As Outlook.MailItem For Each tsk In ActiveProject.Tasks If tsk.PercentComplete = 100 And Not tsk.Flag1 Then If ol Is Nothing Then Set ol = GetObject(, «Outlook.Application») End If For Each succ In tsk.SuccessorTasks Set mail = ol.CreateItem(olMailItem) mail.To = tsk.Hyperlink mail.Subject = «A precedessor task has been completed» mail.Body = «Task » & tsk.ID & » which is a predecessor to your task » & succ.ID & » has completed.» mail.Display Next succ tsk.Flag1 = True End If Next tsk End Sub
Примечание. Обязательно добавьте ссылку на библиотеку объектов MS Outlook.