Получение комплекта документации на объект

Материал из Intermech Wiki
Перейти к навигации Перейти к поиску

Одной из важных функций Search является получение комплекта документации на объект. Пользователь может увидеть этот список документов с помощью команды Объект|Документация, описание которой приведено в п. «Документация на объект». Руководства пользователя. Search API позволяет получить список документации на объект из других приложений. Для этого предназначены процедуры и функции, описанные в данном разделе, а в п. 16.16.5 приведен пример использования этих функций.

OpenArtDocuments

Процедура открывает список документов на указанный объект.

Синтаксис:

Procedure OpenArtDocuments(ArtID, DocTypeID: Integer);

ArtID - инвентарный номер объекта, документацию на которое Вы хотите получить. Если DocTypeID > 0, то в список документов попадут только документы типа DocTypeID. Если DocTypeID = 0, то в список включаются документы всех типов. Если DocTypeID < 0, то список документов будет сформирован в соответствие с настройками фильтрации типов документов, которые пользователь Search сделал в окне документации на объект (см. п. «Документация на объект». Руководства пользователя). Таблица типов документов описана в п. 15.9.

GetDocumentsCount

Функция возвращает количество документов в списке документации на объект.

Синтаксис:

Function GetDocumentsCount: Integer;

Список документов должен быть сначала открыт процедурой OpenArtDocuments.

GetArtDocumentID

Функция возвращает инвентарный номер документа, указанного в списке документации на объект, открытом процедурой OpenArtDocuments.

Синтаксис:

Function GetArtDocumentID(I: Integer): Integer;

I - номер документа в списке (должен находится в пределах от 0 до GetDocumentsCount - 1).

GetLinkType

Функция возвращает тип связи указанного документа и объекта.

Синтаксис:

Function GetLinkType(I: Integer): Integer;

I - номер документа в списке (должен находится в пределах от 0 до GetDocumentsCount - 1).

Эта функция может возвращать следующие значения:

0 - документ записан в разделе «Документация» в конструкторской спецификации на данный объект;

-8, -9 - документ или сам является извещение об изменении на главный документ, по которому этот объект выпускается, или является документом, прикрепленным к извещению на главный документ;

-10 - документ является главным документом (спецификацией или чертежом детали), по которому этот объект выпускается;

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

CloseArtDocuments

Процедура закрывает список документов, открытый процедурой OpenArtDocuments, и высвобождает занятые списком ресурсы.

Синтаксис:

Procedure CloseArtDocuments;

Процедура обязательно должна быть вызвана после завершения работы со списком документации на объект.

В приведенном ниже примере функция GetUserLinkedDoc возвращает номер документа, который пользователь UserID прикрепил вручную к объекту ArtID:

Var s4Application: ITS4App;

function GetUserLinkedDoc( UserID, ArtID: integer ): integer;
var 
 i: integer;
begin
 Result := 0;
 with s4Application do
 begin
   OpenArtDocuments(ArtID, 0);
   try
     for i := 0 to GetDocumentsCount - 1 do
     if GetLinkType(i) = UserID then
     begin
       Result := GetArtDocumentID(i);
       break;
     end;
   finally
     CloseArtDocuments;
   end;
 end;
end;

LinkDocToArticle

Функция включает документ в список документации на объект.

Синтаксис:

Function LinkDocToArticle( ArtID, DocID, LinkType, LinkToIsp: Integer ): Integer;

ArtID - идентификатор объекта, к которому прикрепляется документ с номером DocID;
LinkType - параметр зарезервирован для последующего использования (должен содержать 1);
LinkToIsp - если параметр равен 1, то документ будет присоединен ко всем исполнениям данного объекта, если таковые имеются. Функция возвращает номер созданной связи в таблице DOCSLINKS (см. п. 15.7).


UnLinkDocToArticle

Функция исключает документ из списка документации на объект.

Синтаксис:

Function UnLinkDocToArticle( ArtID, DocID: Integer ): Integer;

ArtID - идентификатор объекта
DocID - инвентарный номер документа


LinkDocVersionToArticleVersion

Функция привязывает версию документа к версии объекта.

Синтаксис:

function LinkDocVersionToArticleVersion(ArtID, ArtVerID, DocID, DocVersionID, LinkType, LinkToIsp : Integer): Integer;

ArtID - идентификатор объекта
ArtVerID - номер версии объекта
DocID - инвентарный номер документа
DocVersionID - номер версии документа
LinkType - параметр зарезервирован для последующего использования (должен содержать 1);
LinkToIsp - если параметр равен 1, то документ будет присоединен ко всем исполнениям данного объекта, если таковые имеются.
Функция возвращает номер созданной связи в таблице DOCSLINKS

UnLinkDocVersionToArticleVersion

Процедура удаляет версию документа из списка документации объекта начиная с версии объекта указанной в параметре ArtVerID.

Синтаксис: procedure UnLinkDocVersionToArticleVersion(ArtID, ArtVerID, DocID, DocVersionID : integer);

ArtID - идентификатор объекта
ArtVerID - номер версии объекта
DocID - инвентарный номер документа
DocVersionID - номер версии документа


LinkDocVersionToArticleVersionEx

function LinkDocVersionToArticleVersionEx(ArtId: Integer; ArtVerID: Integer; DocID: Integer; DocVerID: Integer; LinkType: Integer; ArtFamily: Integer; StartNum: Integer; EndNum: Integer): Integer;

ArtID - идентификатор объекта
ArtVerID - номер версии объекта
DocID - инвентарный номер документа
DocVersionID - номер версии документа
LinkType - параметр зарезервирован для последующего использования (должен содержать 1);
ArtFamily, StartNum, EndNum - зарезервировано

Функция возвращает номер созданной связи в таблице DOCSLINKS

UnLinkDocVersionToArticleVersion2

Процедура удаляет запись из списка документации объекта начиная с версии объекта указанной в параметре

procedure UnLinkDocVersionToArticleVersion2(ArtID: Integer; ArtVerID: Integer; LinkID: Integer);

ArtID - идентификатор объекта
ArtVerID - номер версии объекта
LinkID - идентификатор записи в таблице DOCLINKS