Тема: Как выполнить действие

Добрый день! TechnologiCS изучаю недавно, поэтому вопрос может показаться наивным. В большинстве режимов есть кнопка с выпадающим меню "Показать зависимые объекты". При нажатии на стрелку выводится довольно большой спиок действий. Как получить программно доступ к этим действиям? Некоторые могу найти через TCS API Explorer, а остальные никак. К ним на самом деле нельзя обратиться или я ищу неправильно? Версия 5.0.2.0.

(изменено: Дмитрий Гамий, 28 октября 2011 14:37:32)

Re: Как выполнить действие

Эти объекты можно получить в TCS API Explorer`e на закладке IDModule, на подзакладке ChildModules.
Единственное замечание -  данные из этих объектов можно получать только на чтение.

Re: Как выполнить действие

Здравствуйте!
Вообще рекомендуется пользоваться Properties так как их разработчик старается максимально поддерживать от версии к версии.

Зависимые объекты доступны на чтение через ChildModules, по факту все что на экране видите вы можете через них получить, но они могут сильно измениться при переходе на новую версию, так что это надо иметь ввиду.

Есть так же список  команда (доступе через ActionList и в TCS API Explorer они тоже отображаются). Их тоже конечно пользовать можно, но нюансы те же что и с ChildModules надо помнить.

Re: Как выполнить действие

Да в том-то и дело, что добраться я до этих свойств вроде бы могу. Вижу их в TCSActiveModule.ChildModules.ModuleByName("PrjVerParamsEditor").AsIDispatch и в TCSActiveModule.ChildModules.ModuleByName("PrjVerParamsExEditor").AsIDispatch и в закладке ActionList стоит галочка что свойство Enabled, но команда Module_1.ActionList.ActionByName("ShowAction") и Module_1.ActionList.ActionByName("EditAction") не выполняется ни в TCS API Explorer ни в самом модуле :( Конкретно сейчас мня интересуют Атрибуты в режиме Архив и Выборки.

Re: Как выполнить действие

не совсем понятно. ДОлжно быть

Module_1.ActionList.ActionByName("ShowAction").Execute

может в это дело?

Re: Как выполнить действие

Если брать из лога TCS API Explorer'а на закладке IDModule, на подзакладке ChildModules то получаем
Set Module_2 = TCSActiveModule.ChildModules.ModuleByName("PrjVerParamsEditor").AsIDispatch
If  Not Module_2 Is Nothing Then
  Set @ = Module_2.ActionList.ActionByName("ShowAction")
  If  Not @ Is Nothing Then @.Execute
  End If
End If
Этот код в ответ вообще ничего не выдает, хотя значение у акции стоит Enabled.

Re: Как выполнить действие

А в самом TechnologiCS ShowAction из PrjVerParamsEditor что нибудь делает?

Re: Как выполнить действие

В том-то и дело что не делает.

Re: Как выполнить действие

Ну так и через АПИ ничего не сделает.

Re: Как выполнить действие

К атрибутам документа получить доступ лучше через свойство

Set Module_1 = TCSActiveModule.Properties("PARAMS_VALUES").AsIDispatch
If  Not Module_1 Is Nothing Then 
  @ = Module_1.ShowModal("Caption")
End If
Set Module_1 = Nothing