Создание и поручение задачи

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

Но прежде всего проверим, какой информацией мы будем обладать после окончания работы с диалоговым окном, а какую будет необходимо собрать дополнительно. Итак, для составления темы задачи нам достаточно серии, названия книги и автора. Для указания получателя задачи также достаточно имени писателя, поскольку Outlook автоматически соотнесет с ним адрес электронной почты. И наконец, последний параметр — длительность — хоть и получен, но не имеет смысла без установки даты начала задачи. Для разрешения этого вопроса за дату начала задачи мы примем дату ее назначения. Комментарием к задаче будет имя пользователя, создавшего поручение, — ответственного редактора.

Программа 22.6. Создание и поручение задачи

Sub AssignTask() Dim tsk As Taskltem tsk = Creatltem(olTaskltem) With tsk .Subject = series + ": " + authors + " " +title .Body = "Ответственный редактор: " + .Owner .StartDate = Now .DueDate = .StartDate + duration .Assign .Recipients.Add authors .Send End With End Sub 

Прокомментируем эту программу. Сначала объявляется переменная — ссылка на объект Задача. После чего посредством функции createitem ей присваивается значение новой задачи. И далее планомерно заполняются поля задачи, при этом для заполнения текстовых полей используется операция сложения строк, а для задания начала задачи вызывается стандартная функция NOW. Для задания конца задачи мы прибавляем к дате старта количество месяцев, указанных в качестве продолжительности проекта.

Наша программа почти полностью готова, осталось лишь связать вызов процедуры AssignTask с реакцией на событие щелкнуть по кнопке Назначить задачу. Для этого перейдите в представление формы и дважды щелкните по кнопке, после чего автоматически откроется окно редактора кода с заглушкой процедуры — реакции на событие.

Программа 22.7. Обработчик процедуры — реакции на событие

Private Sub CommandButtonl_Click() 'Обработчик нажатия кнопки Назначить задачу AssignTask TaskForm.Hide End Sub Private Sub CommandButton2_Click() 'Обработчик нажатия кнопки Отмена TaskForm.Hide End Sub 

Комментарий здесь только один, переменная TaskForm — это имя нашего диалогового окна, чей метод Hide вызывается для закрытия. Итак, программа почти полностью готова, можно осуществить ее запуск и убедиться в ее работоспособности. После нажатия клавиши <F5>, тестового заполнения полей диалогового окна и нажатия кнопки Назначить встречу появится диалоговое окно системы безопасности Outlook. Разрешите доступ к ресурсам Outlook, после чего появится предупреждение об ошибке, изображенное на рис. 22.5.

Диалоговое окно Microsoft Visual Basic, предупреждающее об ошибке

Рис. 22.5. Диалоговое окно Microsoft Visual Basic, предупреждающее об ошибке

Его появление вызвано ошибкой в коде нашей программы, о поиске которой и пойдет дальше речь.