Рассмотрим функцию CreateDocVer, функцию для создания новой версии документа:
Function CreateDocVer(Flags As Long, VerName As String, SourceVerID As Long, DlgCaption As String) As SingleDoc
Здесь
Flags - это комбинация флажков из EnumCreateDocVerParams
VerName - имя новой версии
SourceVerID - идентификатор версии, на базе которой создается новая версия
DlgCaption - заголовок мастера создания новой версии
Что означают флажки EnumCreateDocVerParams?
cdvBaseOnSourceDocVersion - cоздать новую версию документа на основе существующей, ее идентификатор передается через SourceVerID
cdvCopySourceDocLinks - скопировать связи (применяемость) исходной версии документа
cdvCopySourceFiles - скопировать файловый состав из исходной версии документа
cdvCopySourceLists - cкопировать листы из исходной версии документа
cdvCopySourceParamList - скопировать список атрибутов из исходной версии документа
cdvCopySourceParamValues - cкопировать значения атрибутов исходной версии документа
cdvCopySourceSketches - cкопировать эскизы из исходной версии документа
cdvCopySourceState - cкопировать текущий статус исходной версии документа
cdvCopySourceWorkFlow - cкопировать способ обработки из исходной версии документа
cdvHideFilesDialog - не показывать диалог добавления файлов
cdvMakeActive - сделать новую версию документа активной
cdvShowDialog - показать диалог мастера создания версии документа
cdvUseDlgCaption - установить свой заголовок мастеру создания версии документа, переданный через параметр DlgCaption
Хочу создать версию документа, так чтобы:
1. не показывал мастер диалога - задаем cdvHideFilesDialog
2. создать на основе существующей - задаем cdvBaseOnSourceDocVersion и передаем идентификатор исходной версии через параметр SourceVerID
3. скопировать способ обработки - задаем cdvCopySourceWorkFlow
4. скопировать список атрибутов из исходной версии - задаем cdvCopySourceParamList
5. скопировать значение атрибутов... - задаем cdvCopySourceParamValues
6. скопировать файловый состав - задаем cdvCopySourceFiles
7. скопировать связи. - задаем cdvCopySourceDocLinks
Использую команду CreateDocVer, а Flags - значение из tagEnumCreateDocVerParams как я понимаю должен иметь одно значение.
EnumXXX - это перечислитель значений, в большинстве случаев из него можно - и нужно! - брать комбинацию нескольких значений.
Таким образом, ваш код будет выглядеть, например, так:
Dim Flags as Long
Dim Doc as SingleDoc
Flags = _
cdvHideFilesDialog + _
cdvBaseOnSourceDocVersion + _
cdvCopySourceWorkFlow + _
cdvCopySourceParamList + _
cdvCopySourceParamValues + _
cdvCopySourceFiles + _
cdvCopySourceDocLinks
Set Doc = xxx.CreateDocVer(Flags, NewVerName, SourceVerID, "")