Количество классификаторов в данной коллекции.
Read-only свойство
Visual Basic |
---|
Public Property Count As Long |
Example (VBScript) | ![]() |
---|---|
'Тест методов и свойств колллекции TDMSClassifiers: 'Создать два новых классификатора, переставить их местами и удалить '===================================================================== 'Получить коллекции классификаторов 1го и 2го уровня Set Col_1 = ThisApplication.Classifiers Set Col_2 = Col_1(0).Classifiers '-------------------- метод Create 'Создать классификатор как дочерний для первого раздела Set cls1 = Col_1.Create 'Создали классификатор на верхнем уровне cls1.Parent = ThisApplication.Classifiers(0) 'Переместили его в состав первого раздела cls1.Description = "Классификатор-тест 1" 'Дали описание 'То же самое можно было сделать так (создать сразу в первом разделе): Set cls2 = Col_2.Create cls2.Description = "Классификатор-тест 2" '-------------------- метод Swap 'Сообщить порядковые номера созданных классификаторов в коллекции MsgBox Col_2.Index(cls1) & Chr(13) & Col_2.Index(cls2) 'Переставить классификаторы местами (пока в локальной коллекции) Col_2.Swap cls1, cls2 'Теперь обновить базу данных Col_2.Update 'Сообщить новые порядковые номера MsgBox Col_2.Index(cls1) & Chr(13) & Col_2.Index(cls2) '-------------------- Разбор ошибок 'Как делать нельзя: 'При обращении ThisApplication.Classifiers(0).Classifiers запрашивается 'коллекция классификаторов ThisApplication.Classifiers(0).Classifiers.Swap cls1, cls2 'Теперь коллекция запрашивается снова и выполняется запрос на обновление информации в базе (Update). 'Все изменения, произведенные методом Swap, потеряны. With ThisApplication.Classifiers(0).Classifiers .Update MsgBox "Старый индекс: " & Col_2.Index(cls1) & " Новый: " & .Index(cls1) _ & Chr(13) & "Старый индекс: " & Col_2.Index(cls2) & " Новый: " & .Index(cls2) 'индексы не изменились End With '-------------------- методы Erase, Remove 'Удалить созданные классификаторы. 'Способ 1. Удаление объекта из базы выполняется немедленно, 'однако как бы в обход коллекции: здесь он все еще существует cls1.Erase MsgBox "Локальная коллекция, Has(cls1): " & Col_2.Has(cls1) MsgBox "База данных, Has(cls1): " & ThisApplication.Classifiers(0).Classifiers.Has(cls1) 'Объект все еще можно получить из локальной коллекции Set LocalCls = Col_2.Item("Классификатор-тест 1") MsgBox LocalCls.Sysname 'Чтобы "увидеть", что объект уже удален, надо выполнить обновление Col_2.Update MsgBox "Локальная коллекция, Has(cls1) (обновление): " & Col_2.Has("Классификатор-тест 1") 'Способ 2. Удаление объекта производится одновременно из коллекции и базы данных Col_2.Remove cls2 MsgBox "Локальная коллекция, Has(cls2): " & Col_2.Has("Классификатор-тест 2") MsgBox "База данных, Has(cls2): " & ThisApplication.Classifiers(0).Classifiers.Has("Классификатор-тест 2") '===================================================================== |