Получение комплекта документации на объект
Одной из важных функций 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