Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Передача массива (объекта) из ZenPage в Модель данных
|
|||
|---|---|---|---|
|
#18+
С Cache только начал разбираться. Уткнулся в следующее: Есть некий Persistent класс. Под него есть модель данных. Также для редактирования объектов класса есть Zen-страничка, работающая с этой моделью. На самой странице, помимо всего прочего, формируется ListOfDataTypes. Вот этот list очень хочется передать в модель для дальнейшей обработки. Когда я отправляю его (по сабмиту) в модель в лоб (просто присваивая его одному из свойств модели), то в самой модели я получаю лишь строку следующего вида "52@%Library.ListOfDataTypes". Теперь либо из этой строки как-то нужно достать сам объект, либо нужно модель и страницу научить передавать объекты. Как быть? Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2008, 13:59 |
|
||
|
Передача массива (объекта) из ZenPage в Модель данных
|
|||
|---|---|---|---|
|
#18+
Например в CSP можно просто передать ID экземпляра, а дальше орудовать с этим как душе угодно... ---------- Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2008, 14:09 |
|
||
|
Передача массива (объекта) из ZenPage в Модель данных
|
|||
|---|---|---|---|
|
#18+
Я говорю про list. Какой у них Id? Для объектов Persistent ситуация более-менее ясна. Передал Id со страницы, а потом по OpenId делай что хочешь с объектом. Тут тогда уж через Oref действовать нужно. Но как? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2008, 14:17 |
|
||
|
Передача массива (объекта) из ZenPage в Модель данных
|
|||
|---|---|---|---|
|
#18+
Кажется что-то типа такого можно сделать: перевести объект в список - %SerializeObject (метод класса %Library.RegisteredObject) передать полученную переменную (список) куда нужно, а там создать заново методом %New(ПеременнаяКудаСохраняем) PS. мопед не мой ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2008, 05:31 |
|
||
|
Передача массива (объекта) из ZenPage в Модель данных
|
|||
|---|---|---|---|
|
#18+
Блок А.Н.Кажется что-то типа такого можно сделать: перевести объект в список - %SerializeObject (метод класса %Library.RegisteredObject) передать полученную переменную (список) куда нужно, а там создать заново методом %New(ПеременнаяКудаСохраняем) PS. мопед не мой Можно подробнее? Пытаюсь делать по совету так: на Zen-странице при сохранении пытаюсь запихнуть List в переменную ParamItems Код: plaintext 1. 2. 3. 4. 5. 6. 7. В модели пытаюсь вытащить эту переменную: Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2008, 09:57 |
|
||
|
Передача массива (объекта) из ZenPage в Модель данных
|
|||
|---|---|---|---|
|
#18+
автор method %SerializeObject(ByRef serial As %Binary, partial As %Integer = 0) returns %Status То есть ему нужно в параметры подсунуть переменную, куда его сериализуете ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2008, 10:18 |
|
||
|
Передача массива (объекта) из ZenPage в Модель данных
|
|||
|---|---|---|---|
|
#18+
Ок. Делаю так: На Zen-Странице Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. При этом глобал имеет такой вид ^z2 = $lb($lb("54@%Library.ArrayOfDataTypes"),"%ListOfDataTypes") Попытка получить List из переменной ParamItems в модели не успешна. Что я делаю не так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2008, 10:43 |
|
||
|
Передача массива (объекта) из ZenPage в Модель данных
|
|||
|---|---|---|---|
|
#18+
Добавлено: Явовская строка form.sendEventToController('propertyChange', 'ParamItems', '#(SerialElement.value)#'); уже вызывает ошибку.... Возможно тут как-то нужно экранировать.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2008, 10:53 |
|
||
|
Передача массива (объекта) из ZenPage в Модель данных
|
|||
|---|---|---|---|
|
#18+
sutniКогда я отправляю его (по сабмиту) в модель в лоб (просто присваивая его одному из свойств модели), то в самой модели я получаю лишь строку следующего вида "52@%Library.ListOfDataTypes". А что получим в модели, если вывести не [переменная модели], а [переменная модели].Count(), например, Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2008, 11:14 |
|
||
|
Передача массива (объекта) из ZenPage в Модель данных
|
|||
|---|---|---|---|
|
#18+
Сериализация прошла успешно, это видно по глобалу. А что такое Код: plaintext Далее Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2008, 11:22 |
|
||
|
Передача массива (объекта) из ZenPage в Модель данных
|
|||
|---|---|---|---|
|
#18+
Для конветрации списка в строку $LISTTOSTRING не подходит, так как есть сложенные списки, я бы стал использовать Код: plaintext Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2008, 11:28 |
|
||
|
Передача массива (объекта) из ZenPage в Модель данных
|
|||
|---|---|---|---|
|
#18+
servit sutniКогда я отправляю его (по сабмиту) в модель в лоб (просто присваивая его одному из свойств модели), то в самой модели я получаю лишь строку следующего вида "52@%Library.ListOfDataTypes". А что получим в модели, если вывести не [переменная модели], а [переменная модели].Count(), например, Код: plaintext Получим сообщение Invalid OREF. ..ParamItems - Строка, для которой не Count(). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2008, 11:31 |
|
||
|
Передача массива (объекта) из ZenPage в Модель данных
|
|||
|---|---|---|---|
|
#18+
Ну хорошо. Придёт мне в модель строка вида: $lb($lb("54@%Library.ArrayOfDataTypes"),"%ListOfDataTypes") Как мне из нее получить снова список? Вот что я пытаюсь делать в терминале: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2008, 11:39 |
|
||
|
Передача массива (объекта) из ZenPage в Модель данных
|
|||
|---|---|---|---|
|
#18+
Ну так то лучше. А Зен всякий еще мешается :-) Кстати объект здесь создается через %Open, как ни странно, а не %New, как я предполагал в начале Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2008, 11:58 |
|
||
|
Передача массива (объекта) из ZenPage в Модель данных
|
|||
|---|---|---|---|
|
#18+
Спасибо. Так всё работает!!! Но лично для меня ситуация усложняется тем, что элементы моего List - это Array. А сериализация "вглубь" не работает. Поэтому буду пробовать сериализовать каждый array перед помещением его в list. Потом сериализовать List. Ну и на другой стороне всё в обратном порядке.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2008, 12:28 |
|
||
|
Передача массива (объекта) из ZenPage в Модель данных
|
|||
|---|---|---|---|
|
#18+
Если внутри объекта свойства в виде ссылок на Persistent-объекты, то их должно сериализоваться id@classname, а если свойства в виде SerialObject, то как список, вроде так. Или не так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2008, 13:22 |
|
||
|
Передача массива (объекта) из ZenPage в Модель данных
|
|||
|---|---|---|---|
|
#18+
Еще второй параметр есть у SerializeObject, я не понял, для чего он, может как-то связано? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2008, 13:31 |
|
||
|
Передача массива (объекта) из ZenPage в Модель данных
|
|||
|---|---|---|---|
|
#18+
Блок А.Н.Еще второй параметр есть у SerializeObject, я не понял, для чего он, может как-то связано? Включение второго параметра в моём случае ни на что не повляло. Блок А.Н. Если внутри объекта свойства в виде ссылок на Persistent-объекты, то их должно сериализоваться id@classname, а если свойства в виде SerialObject, то как список, вроде так. Или не так? В моём случае я получал просто строку "54@%Library.ArrayOfDataTypes". Просто Open для нее вызывл ошибку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2008, 14:19 |
|
||
|
|

start [/forum/topic.php?fid=39&msg=35363651&tid=1558860]: |
0ms |
get settings: |
10ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
86ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 251ms |
| total: | 415ms |

| 0 / 0 |
