powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Получить список полей и их значения
7 сообщений из 7, страница 1 из 1
Получить список полей и их значения
    #37340387
Vixler
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В документации нашёл, как пройтись по всем полям любого класса:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Method ListProperties() [ CodeMode = objectgenerator ]
{		
    For i =  1 : 1 :%compiledclass.Properties.Count() {
        Set prop = %compiledclass.Properties.GetAt(i).Name        
        Do %code.WriteLine(" Write """ _ prop _ """,!")        
    }
    Do %code.WriteLine(" Quit")
    Quit $$$OK
}

Эта функция выводит названия всех полей класса. Но как вытащить значение конкретного Property у экземпляра класса? Если написать просто write %compiledclass.Properties.GetAt(i), то на выходе получится непонятное "16@%Dictionary.CompiledProperty". А никакого GetAt(i).Value нет. Или может это вообще как-то по-другому делается? Задача такая: пройтись по всем полям объекта произвольного класса и вывести значения этих полей.
...
Рейтинг: 0 / 0
Получить список полей и их значения
    #37340396
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поищите на форуме или в документации что-то типа $ZOBJPROPERTY.
Правда, если не ошибаюсь, для разных версий может быть немного по разному.
...
Рейтинг: 0 / 0
Получить список полей и их значения
    #37340400
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vixler,

Укажите Вашу версию Caché.
...
Рейтинг: 0 / 0
Получить список полей и их значения
    #37340404
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если задача стоит вывести на текущее устройство дамп объекта, то есть готовый метод $system.OBJ.Dump :
Код: plaintext
1.
set obj=##class(package.classname).%OpenId( 23 )
do $system.OBJ.Dump(obj)
...
Рейтинг: 0 / 0
Получить список полей и их значения
    #37340409
Vixler
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Версия каше 2010.2.1.503

Функция Dump как я понял выводит одним большим блоком инфу об объекте. А мне надо взять первое поле, его значение, потом второе, значение, и так до последнего.
...
Рейтинг: 0 / 0
Получить список полей и их значения
    #37340413
Vixler
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В принципе через $PROPERTY получается получить значение конкретного поля конкретного объекта. Но теперь другая проблема. Передать список названий полей. Из-за атрибута [ CodeMode = objectgenerator ] нельзя установить у метода возвращаемое значение. Как вернуть список? Можно ли указать ссылку на список в параметре метода (что-то вроде "Method ListParameters(ref list As %List)") Пока не получается никак
...
Рейтинг: 0 / 0
Получить список полей и их значения
    #37340477
Vixler
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А, всё получилось, нужно было точку поставить перед переменной.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Получить список полей и их значения
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]