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)