Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
06.09.2013, 10:04
|
|||
---|---|---|---|
Не срабатывает свое событие |
|||
#18+
Помогите плиз... Решил накалякать небольшое подспорье при работе с проектами в MS Project 2007... Кейс такой: При изменении значение одного поля в задаче необходимо сменить аналогичные поля и для нескольких других задач. Пытаюсь реализовать с через перехват событий: 1. Код для объекта ThisProject: Код: vbnet 1. 2. 3.
2. Создал Модуль ChangeCode: Код: vbnet 1. 2. 3. 4. 5. 6.
3. Создал класс модули clsChange и clsEvents: clsChange Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
clsEvents Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
В итоге событие ProjApp_ProjectBeforeTaskChange срабатывает нормально, а вот событие AfterChangeTask не срабатывает.:( Подскажите чего не так делаю, плиз.. Программированием уже давно никаким не занимался.. так что сильно не наезжайте если уж совсем глупость написана :) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
06.09.2013, 10:14
|
|||
---|---|---|---|
|
|||
Не срабатывает свое событие |
|||
#18+
В коде отсутствует создание экземпляра clsEvents, потому и не срабатывает - нечему срабатывать. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
06.09.2013, 10:23
|
|||
---|---|---|---|
|
|||
Не срабатывает свое событие |
|||
#18+
Кстати, есть еще нюанс. При инициализации clsEvents создается ДРУГОЙ экземпляр класса clsChange, не тот, который генерит событие AfterChangeTask, так что событие вы все равно не получите. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
06.09.2013, 10:44
|
|||
---|---|---|---|
Не срабатывает свое событие |
|||
#18+
Shocker.ProКстати, есть еще нюанс. При инициализации clsEvents создается ДРУГОЙ экземпляр класса clsChange, не тот, который генерит событие AfterChangeTask, так что событие вы все равно не получите. Можете подсказать рабочий вариант в данной случае? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
06.09.2013, 10:59
|
|||
---|---|---|---|
|
|||
Не срабатывает свое событие |
|||
#18+
Там много лишнего сейчас наворочено, но я предполагаю, что вы выкладываете упрощенный вариант, а на самом деле все эти навороты вам нужны, поэтому сложно предложить, как поступить, не зная всего объема задачи, ну например можно так: 1. Код для объекта ThisProject: Код: vbnet 1. 2. 3.
2. Создал Модуль ChangeCode: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9.
3. Создал класс модули clsChange и clsEvents: clsChange Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
clsEvents Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
10.09.2013, 17:49
|
|||
---|---|---|---|
Не срабатывает свое событие |
|||
#18+
Shocker.ProТам много лишнего сейчас наворочено, но я предполагаю, что вы выкладываете упрощенный вариант, а на самом деле все эти навороты вам нужны, поэтому сложно предложить, как поступить, не зная всего объема задачи, ну например можно так: Благодарю, такой вариант подойдет. Если несложно, то может еще поможете? :) При дальнейшем развитии своей поделки столкнулся с тем, что нужно как-то перехватывать событие по drag'n'drop: при перетаскивании задачи у нее меняется index, соответственно мне нужно отлавливать этот момент и апдейтить поля в других задачах, в которых содержится этот индекс (аналогично работе поля "Предшественники")... соответственно документация гласит, что при изменении значения поля в результате drag'n'drop стандартное событие BeforeTaskChange не поднимается... отсюда вопрос как отловить смену значения поля task.index? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=60&tablet=1&tid=2156771]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
52ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 168ms |
0 / 0 |