|
|
|
Не срабатывает свое событие
|
|||
|---|---|---|---|
|
#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:43 |
|
||
|
Не срабатывает свое событие
|
|||
|---|---|---|---|
|
#18+
В коде отсутствует создание экземпляра clsEvents, потому и не срабатывает - нечему срабатывать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2013, 10:14:40 |
|
||
|
Не срабатывает свое событие
|
|||
|---|---|---|---|
|
#18+
Кстати, есть еще нюанс. При инициализации clsEvents создается ДРУГОЙ экземпляр класса clsChange, не тот, который генерит событие AfterChangeTask, так что событие вы все равно не получите. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2013, 10:23:59 |
|
||
|
Не срабатывает свое событие
|
|||
|---|---|---|---|
|
#18+
Shocker.ProКстати, есть еще нюанс. При инициализации clsEvents создается ДРУГОЙ экземпляр класса clsChange, не тот, который генерит событие AfterChangeTask, так что событие вы все равно не получите. Можете подсказать рабочий вариант в данной случае? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2013, 10:44:50 |
|
||
|
Не срабатывает свое событие
|
|||
|---|---|---|---|
|
#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:21 |
|
||
|
Не срабатывает свое событие
|
|||
|---|---|---|---|
|
#18+
Shocker.ProТам много лишнего сейчас наворочено, но я предполагаю, что вы выкладываете упрощенный вариант, а на самом деле все эти навороты вам нужны, поэтому сложно предложить, как поступить, не зная всего объема задачи, ну например можно так: Благодарю, такой вариант подойдет. Если несложно, то может еще поможете? :) При дальнейшем развитии своей поделки столкнулся с тем, что нужно как-то перехватывать событие по drag'n'drop: при перетаскивании задачи у нее меняется index, соответственно мне нужно отлавливать этот момент и апдейтить поля в других задачах, в которых содержится этот индекс (аналогично работе поля "Предшественники")... соответственно документация гласит, что при изменении значения поля в результате drag'n'drop стандартное событие BeforeTaskChange не поднимается... отсюда вопрос как отловить смену значения поля task.index? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2013, 17:49:35 |
|
||
|
|

start [/forum/topic.php?fid=60&fpage=53&tid=2156771]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
20ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
| others: | 205ms |
| total: | 325ms |

| 0 / 0 |
