|
Не срабатывает свое событие
|
|||
---|---|---|---|
#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:04 |
|
Не срабатывает свое событие
|
|||
---|---|---|---|
#18+
В коде отсутствует создание экземпляра clsEvents, потому и не срабатывает - нечему срабатывать. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.09.2013, 10:14 |
|
Не срабатывает свое событие
|
|||
---|---|---|---|
#18+
Кстати, есть еще нюанс. При инициализации clsEvents создается ДРУГОЙ экземпляр класса clsChange, не тот, который генерит событие AfterChangeTask, так что событие вы все равно не получите. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.09.2013, 10:23 |
|
Не срабатывает свое событие
|
|||
---|---|---|---|
#18+
Shocker.ProКстати, есть еще нюанс. При инициализации clsEvents создается ДРУГОЙ экземпляр класса clsChange, не тот, который генерит событие AfterChangeTask, так что событие вы все равно не получите. Можете подсказать рабочий вариант в данной случае? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.09.2013, 10:44 |
|
Не срабатывает свое событие
|
|||
---|---|---|---|
#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.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.09.2013, 10:59 |
|
Не срабатывает свое событие
|
|||
---|---|---|---|
#18+
Shocker.ProТам много лишнего сейчас наворочено, но я предполагаю, что вы выкладываете упрощенный вариант, а на самом деле все эти навороты вам нужны, поэтому сложно предложить, как поступить, не зная всего объема задачи, ну например можно так: Благодарю, такой вариант подойдет. Если несложно, то может еще поможете? :) При дальнейшем развитии своей поделки столкнулся с тем, что нужно как-то перехватывать событие по drag'n'drop: при перетаскивании задачи у нее меняется index, соответственно мне нужно отлавливать этот момент и апдейтить поля в других задачах, в которых содержится этот индекс (аналогично работе поля "Предшественники")... соответственно документация гласит, что при изменении значения поля в результате drag'n'drop стандартное событие BeforeTaskChange не поднимается... отсюда вопрос как отловить смену значения поля task.index? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2013, 17:49 |
|
|
start [/forum/topic.php?fid=60&tid=2156771]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
44ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
44ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 153ms |
0 / 0 |