Регистрация   E-Mail     Пароль   
Портал «Профессионал управления проектами»

123

Максим
28 апреля 2009 г., 12:01

Добрый день, коллеги! Ситуация: во время сохранения проекта нужно делать нечто с задачами проекта. Пишу макрос, привязываю все к событию Project_BeforeSave. Если сначала проект сохраняется, потом сразу же закрывается - все замечательно, макрос отработал, никаких ошибок. Но! Если проект закрывается, Project спрашивает - сохранить ли его? Отвечаем Да, и вот тут-то возникает проблема, потому что активируется макрос, он пытается достучаться до проекта и его задач, и не может! Впечатление такое, что для Project этот проект уже считается закрытым, то есть несуществующим, и макросу просто не с чем работать. Попытка привязываться к событиям объекта Application тоже ни к чему не привела. Может быть у кого-нибудь есть идеи, как это обойти? Кто-нибудь сталкивался с подобным? Спасибо! Максим.
RE: И снова вопрос по макросам. Project_BeforeSave
Максим, добрый день! У меня такого не наблюдается почему-то.. Вадим
Максим
30 апреля 2009 г., 12:04
RE: RE: И снова вопрос по макросам. Project_BeforeSave
Добрый день, Вадим! Может быть у Вас не наблюдается после установки СП2? В списке багов, который лечит этот СП, есть описание моей проблемы. Ситуация та же, код ошибки тот же, правда, описание ошибки другое :) Максим.
Yuriy Cheburkov
7 мая 2009 г., 11:53
RE: undefined
Целесообразней поставить обработку на Project_Open, дабы у пользователей не было много разочарований...
Максим
7 мая 2009 г., 12:13
RE: RE: undefined
Для моей задачи это, увы, неприемлемо, потому что данные должны формироваться и сохраняться именно при сохранении проекта. То есть за один сеанс работы с проектом это может происходить многократно - при каждом сохранении. В противном случае для этого пришлось бы каждый раз закрывать проект и открывать его вновь... :(
Yuriy Cheburkov
7 мая 2009 г., 12:14
RE: undefined
Посмотрите как построен макрос [ссылка...] Я честно говоря подумал, что вы пытаетесь привязать именно его...
Максим
7 мая 2009 г., 13:29
RE: RE: undefined
Посмотрел, спасибо, но... не вижу связи между моей задачей и макросом в этой ссылке.... Для меня, собственно, важен не сам макрос, а то, что он связан с событием Project_BeforeSave и так же то, как ему себя правильно вести при закрытии проекта с последующим сохранением.
RE: И снова вопрос по макросам. Project_BeforeSave
Максим, а что если сделать еще вариант - отлов проекта Before_Close и там выполнение операции. А в Вашем макросе поставить on error resume next? Вадим
Просмотреть все сообщения пользователя, его профиль и отправить личное сообщение Вадим Геря, PMP, MVP
11 мая 2009 г., 21:56
_BeforeSave
Добрый День ! У меня была такая ситуация раза два на тестовой виртуальной машине. Но потом исчезла и, к сожалению, я не помню, что сделал. То ли февральское обновление установил, то ли что то еще... На промыщленных конфигурациях этого не наблюдалось, хотя почти везде используется пересчет при сохранении. Логика здесь четкая, - сначала сохранение потом закрытие. Не могут "отвалиться" объекты до завершения сохранения. Максим, если после СП2 и апрельского апдейта ситуация повторится - напишите. Постараемся разобраться. С уважением, Вадим Геря, PMP
RE: RE: RE: undefined
Максим, добрый день! Вопрос оф-топик, но тем не менее: не пробовали наш business project? Было бы интересно Ваше мнение. с уважением, Вадим
Максим
19 мая 2009 г., 10:57
RE: RE: RE: RE: undefined
Вадим, доброе утро! Увы, увы... не пробовал... текучка, работа, текучка, просто не хватает времени... :(( поставил себе как задачу на будущее :)) С уважением, Максим.
Максим
19 мая 2009 г., 14:50
RE: _BeforeSave
Вадим, добрый день! Вот наконец дошли руки до дальнейших экспериментов. Развернули новый Project Server, накатили СП2 (правда, без апрельского апдейта), все красиво, но ошибка осталась. Я для эксперимента написал вот такой вот код: Private Sub Project_BeforeSave(ByVal pj As Project) [ссылка...] End Sub Public Sub Test() MsgBox (ActiveProject.Name) End Sub И он валится :) То есть если была попытка закрыть проект, доступа к ActiveProject уже нет. Может быть я что-то принципиально не так делаю, и надо было идти не от ActiveProject, а как-то по-другому? Спасибо!
Просмотреть все сообщения пользователя, его профиль и отправить личное сообщение Вадим Геря, PMP, MVP
23 мая 2009 г., 14:26
Признаю, есть такое поведение :)
Действительно! При закрытии проекта, находящегося на сервере, и выборе в появляющемся 'Серверном' окне опции 'Сохранить' (ну и вернуть/не вернуть) - объект ActiveProject или pj становиться недоступен в пределах события Project_BeforeSave. Придеться обходить так: Private Sub Project_BeforeClose(ByVal pj As Project) [ссылка...] End Sub Private Sub Project_BeforeSave(ByVal pj As Project) On Error Resume Next [ссылка...] End Sub Public Sub Test() MsgBox (ActiveProject.Name) End Sub _______________ Или лучше, Private Sub Project_BeforeClose(ByVal pj As Project) Call Test(pj) End Sub Private Sub Project_BeforeSave(ByVal pj As Project) On Error Resume Next Call Test(pj) End Sub Public Sub Test(pj As Project) MsgBox (pj.Name) End Sub ____________________________ С уважением, Успехов :) Вадим Геря, РМР
Максим
25 мая 2009 г., 11:35
RE: Признаю, есть такое поведение :)
Добрый день, Вадим! Спасибо за ответ и за совет! Хотелось убедиться, что это не у одного меня Project так себя ведет :)) Касательного Вашего метода - теперь мне придется еще немного постараться и сделать так, чтобы при закрытии проекта без сохранения макрос не отрабатывал. Но это уже мелочи :) Еще раз спасибо. С уважением, Максим.
Пожалуйста, авторизуйтесь или зарегистрируйтесь для добавления сообщений в этот форум.