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

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

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

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

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

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

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

Все открытые 2D документы

Автор podshibyakinea, 20.09.17, 16:59:39

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

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

podshibyakinea

Библиотека заполняет ячейки только в активном документе.
Как обратиться ко всем открытым документам разом для заполнения ячеек?


#programmer

API5
Через KompasObject.GetIterator() получаем итератор, создаём итератор по документам
ksCreateIterator (long tipSearch, long parent); (см. SDK)
Идём по документам с помощью ksMoveIterator (BSTR ch), который возвращает указатели на открытые документы.
С помощью KompasObject.ksGetDocumentByReference(long docRef) получаем указатель на интерфейс документа.

API7
IApplication свойство Documents

Как-то так....

podshibyakinea

Не могу понять как выполнить на api5.
Может будет пример? После SDK свет не наступил)



#programmer

Пример в Step7 SDK ф-я WalkFromDoc().
Но на API7 действительно компактнее и проще :)
+ Благодарностей: 1

podshibyakinea

Ура!

begin
iDoc := CreateIterator( DOCUMENT_OBJ , 0 );
if ( iDoc > 0 ) then
begin
   pDoc := MoveIterator( iDoc, 'F' );
   if ( pDoc > 0 ) then
   begin
  repeat
             if ( SetObjParam( pDoc, nil, 0, DOCUMENT_STATE ) > 0 ) then
       pDoc := MoveIterator(iDoc, 'N');
     until ( pDoc = 0 );
   end;
end;
end;