Справочное руководство по TDMS 7.0 API
VB Script
Смотри также Отправить замечание

Glossary Item Box

Исходный текст

Option Explicit
Call CreateObjectDef(ThisApplication.ObjectDefs)

'==============================================================================
'Создать новый    тип объекта в приложении.
'Скрипт может выполнять только системный администратор
'==============================================================================
Sub CreateObjectDef(ObjDefsCol)
        Dim StrRet, NewObjDef, NewObj, i, EditObjDlg, StrSysName
        
        'Запросить описание нового типа
        StrRet = InputBox("Введите описание для нового типа объекта:")
        
        'Если введена пустая строка или диалог отменен, выйти из процедуры
        If StrRet="" Then Exit Sub
        
        'Проверить, существует ли такое системное имя; если да - запросить другое
        StrSysName = "TYPE_NEW"
        While ObjDefsCol.Has(StrSysName)
                    StrSysName = InputBox("Введите другое сист. имя (такое уже есть):",, StrSysName)
        Wend
                
        'Создать новый тип объекта
        Set NewObjDef = ObjDefsCol.Create
        
        ' Присваиваем свойства новому типу
        With NewObjDef
        
                .SysName = StrSysName 'системное имя
                .Description = StrRet 'описание
                .Comments(0) = "Тестовый первый комментарий"
                
                ' Добавляем типы атрибутов
                For i=0 To 3
                        .AttributeDefs.Add ThisApplication.AttributeDefs.Item(i)
                Next
                
                ' Добавляем типы файлов
                .AllFileDefs = FALSE 'не может содержать все типы файлов
                For i=0 To 3
                        .FileDefs.Add ThisApplication.FileDefs.Item(i)
                Next
                
                ' Добавляем типы объектов, которые могут быть в составе
                .AllObjectDefs = FALSE 'не может содержать все типы Объектов
                For i=0 To 3
                        .ObjectDefs.Add ThisApplication.ObjectDefs.Item(i)
                Next
                
                ' Добавляем форму ввода
                .InputForms.Add ThisApplication.InputForms.Item(0)
        
                'Включим поддержку версионности
                .VersionsEnabled = TRUE
        End With
        
        'В логах отладчика выводим идентификатор
        ThisApplication.DebugPrint("Идентификатор нового типа объекта - " & NewObjDef.Handle)
        
        'Создадим производный объект...
        Set NewObj = NewObjDef.CreateObject
        
        '...и откроем его в диалоге редактирования. Необходимо учесть, что новый объект 
        'создается не в коллекции, а прямо в базе, и искать его (после закрытия диалога) 
        'придется с помощью выборки.
        Set EditObjDlg = ThisApplication.Dialogs.EditObjectDlg
        EditObjDlg.Object = NewObj
        EditObjDlg.Show
End Sub
'==============================================================================
© 2023 CSoft Development. Все права защищены.