• Добро пожаловать на Форум пользователей ПО АСКОН. Пожалуйста, авторизуйтесь.
 

Уважаемые пользователи,

Хотим проинформировать вас о режиме работы регистрации на нашем сайте.

Зарегистрироваться возможно в рабочие дни, с 8:00 до 20:00 (мск).

Если у вас возникнут вопросы или потребуется дополнительная информация, не стесняйтесь обращаться к нашей службе поддержки. Вы можете связаться с нами по указанным контактным данным на нашем сайте.

Благодарим вас за понимание и сотрудничество. Мы ценим ваше терпение и стремимся предоставить вам лучший опыт использования нашего сервиса.

С уважением,
Команда Ascon

Работа со спецификацией

Автор Wiscont, 25.03.18, 16:12:21

« назад - далее »

0 Пользователи и 3 гостей просматривают эту тему.

Wiscont

Слипил (из примеров CBuilder++) прогу которая читает только Базовые объекты по Разделам Спецификации.
Нужно еще Вспомогательные объеты !!!
if ( kompas ) {
kompas = (IDispatch*)GetActiveOleObject( "KOMPAS.Application.5" );
ksSpcDocumentPtr docSpc = kompas->SpcActiveDocument();
ksSpecification * specification = (ksSpecification *)docSpc->GetSpecification();
int count = specification->ksGetSpcTableColumn( 0, 0, 0 );
ksIterator * iter( (ksIterator*)kompas->GetIterator() );
iter->ksCreateSpcIterator( 0, 0, 0 );
obj = iter->ksMoveIterator( StringToOleStr("F") );
do {
for ( int i = 1; i <= count; i++ ) {
ksSpcColumnParam * spcColPar( (ksSpcColumnParam*)kompas->GetParamStruct(ko_SpcColumnParam) );
specification->ksGetSpcColumnType( obj,  i, spcColPar );
long columnType = spcColPar->get_columnType();
long ispoln = spcColPar->get_ispoln();
long blok = spcColPar->get_block();
::sprintf( buf, "%d - %s\n", i, WideCharToString(specification->ksGetSpcObjectColumnText( obj, columnType, ispoln, blok )) );
str1 += buf;
delete buf;
} // for  i
} while( docSpc->ksExistObj ( obj = iter->ksMoveIterator( StringToOleStr("N") )) );
iter->ksDeleteIterator();

333

см справку на ksCreateSpcIterator
spcObjType
- тип объектов:
0 - базовые,
1 - вспомогательные,
2 - базовые и вспомогательные из сортирован­ного массива,
3 - все объекты.
+ Благодарностей: 1

Wiscont

ksCreateSpcIterator( 0, 0, 2 );

Спасибо !