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

Glossary Item Box

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

Option Explicit
Call ShowInfo(ThisApplication.Shell.SelObjects)

'==============================================================================
'Вывести информацию обо всех атрибутах подсвеченного 
'выделением объекта 
'==============================================================================
Sub ShowInfo(ObjCol)

    'Если приехала пустая коллекция объектов, закончить работу
    If ObjCol.Count = 0 Then
        MsgBox "Нет ни одного выделенного объекта.", vbInformation
        Exit Sub
    End If

    Dim obj, attr, ACol, tAttrDefTypes, num, RetVal, str, strVal, usr

    'Получить коллекцию атрибутов объекта
    Set obj = ObjCol(0)
    Set ACol = Obj.Attributes

    'Если коллекция атрибутов пустая, закончить работу
    If ACol.Count = 0 Then
        MsgBox "Объект """ & Obj.Description & """ не имеет атрибутов.", vbInformation
        Exit Sub
    End If

    ' Перечисление типов данных TDMS
    tAttrDefTypes = Array ("tdmString", "tdmInteger", "tdmReal", "tdmBool", _
                "tdmInteger64", "tdmDate", "tdmClassifier", "tdmObjectLink", "tdmList", _
                "tdmUserLink", "tdmFileLink", "tdmTable")

    'Если коллекция атрибутов непустая, вывести описания 
    'каждого элемента коллекции в Окно сообщений.
    For Each attr In ACol
        str = ACol.Index(attr)+1 & ") " & attr.Description & Chr(13)' № п/п, описание
        str = str & "SysID: " & attr.AttributeDefName & Chr(13) 'системное имя типа
        str = str & "Тип данных: " & tAttrDefTypes(attr.Type) & Chr(13) 'тип данных
        
        'В логах отладчика выводим идентификатор
        ThisApplication.DebugPrint("Идентификатор атрибута " & attr.Description & " - " & attr.Handle)
        
        'Вывести значение атрибута, если он непустой (проверим свойство Empty).
        If attr.Type = tdmTable Then 'для таблиц свойство Empty всегда имеет значение TRUE
            strVal = "таблица, размерность: " & attr.Rows.Count & "x" & attr.Rows.AttributeDefs.Count

        ElseIf attr.Empty <> FALSE Then 'атрибут не инициализирован
            strVal = "не присвоено"

        Else    
            strVal = attr.Value 
            'Если атрибут - ссылка на объект, пользователя, классификатор или файл, 
            'добавим описание элемента, на который ссылаемся
            Select Case attr.Type
                Case tdmClassifier
                    strVal = strVal & Chr(13) & "Ссылка на классификатор, SysID: " & _
                        attr.Classifier.SysName
                Case tdmObjectLink
                    strVal = strVal & Chr(13) & "Ссылка на объект типа """ & _
                        attr.Object.ObjectDef.Description & """"
                Case tdmUserLink
                    Set usr = attr.User
                    strVal = strVal & Chr(13) & "Ссылка на пользователя: " & _
                        usr.FirstName & " " & usr.MiddleName & " " & usr.LastName
                Case tdmFileLink
                    strVal = strVal & Chr(13) & "Ссылка на файл типа " & _
                        attr.File.FileDef.Description
            End Select
        End If

        str = str & "Значение: " & strVal 
                
        'Добавить описание в Окно сообщений
        ThisApplication.AddNotify str
    Next
End Sub
'==============================================================================
© 2023 CSoft Development. Все права защищены.