Re: Замечания по использованию АПИ версии 2.9.5.0
В дистрибутиве TechnologiCS имеется файл TcsApi.tlb содержащий описание наших интерфейсов. Рекомендуется использовать его в ваших проектах (подключать библиотеку типов) и хранить его вместе с вашим проектом.
В версии 2.9.5.0 при работе со структурами данных, используется следующий общий принцип инициализации данных
Структура содержит внутри себя поле StructFlags, биты которого определяют какие поля структуры заданы. Маски для задания полей структуры определяются через enum, имя которого формируется следующим образом - EnumИмяСтруктурыFlags. Отдельные члены этого enum-а формируются по следующему принципу ИмяСтруктурыFlagsПолеСтруктуры.
Рассмотрим на примере структуры CreateDocStruct. У нее есть поле StructFlags которое и определяет какие из ее полей заданы и будут обрабатываться в программе. Enum к этой структуре называется EnumCreateDocStructFlags определяет маски, объединяя которые мы задаем те поля, которые проинициализированы в нашей структуре, то есть
[ul]
CreateDocStructFlagsFlags = Задано поле Flags[/ul]
[ul]
CreateDocStructFlagsDocNote = Задано поле DocNote[/ul]
[ul]
CreateDocStructFlagsDocName = Задано поле DocName[/ul]
[ul]
CreateDocStructFlagsDocTypeID = Задано поле DocTypeID[/ul]
[ul]
CreateDocStructFlagsArchiveTreeID = Задано поле ArchiveTreeID[/ul]
[ul]
CreateDocStructFlagsWorkFlowTypeID = Задано поле WorkFlowTypeID[/ul]
[ul]
CreateDocStructFlagsWorkGroupID = Задано поле WorkGroupID[/ul]
[ul]
CreateDocStructFlagsDocParams = Заданы поля DocParamNames и DocParamValues (в данном случае задание только одного из этих полей не имеет смысла)[/ul]
[ul]
CreateDocStructFlagsDlgCaption = Задано поле DlgCaption[/ul]
[ul]
CreateDocStructFlagsV1 = Заданы все поля структуры (то есть равно CreateDocStructFlagsFlags or CreateDocStructFlagsDocNote or CreateDocStructFlagsDocName or CreateDocStructFlagsDocTypeID or CreateDocStructFlagsArchiveTreeID or CreateDocStructFlagsWorkFlowTypeID or CreateDocStructFlagsWorkGroupID or CreateDocStructFlagsDocParams or CreateDocStructFlagsDlgCaption[/ul]
[ul]
CreateDocStructFlagsNext = Зарезервировано[/ul]
Пример использования
Dim DocStruct As CSDN.CreateDocStruct DocStruct.StructFlags = CSDN.CreateDocStructFlagsDocNote Or CSDN.CreateDocStructFlagsDocName Or CSDN.CreateDocStructFlagsFlags Or CSDN.CreateDocStructFlagsDlgCaption DocStruct.Flags = CSDN.cdHideFilesDialog Or CSDN.cdShowDialog DocStruct.DocNote = "Мое обозначение документа" DocStruct.DocName = "Мое наименование документа" DocStruct.DlgCaption = "Здесь мой заголовок" 'И теперь делаем вызов с этой структурой Dim Doc As CSDN.SingleDoc Set Doc = App.CreateDocEx(DocStruct)