Как найти запись, из которой провалились в массив ссылок?
На страницу 1, 2 След.
|
Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
vek21 Участник со стажем
Вступление в Клуб: 20.09.2007
|
Чт Окт 01, 2015 07:39  Как найти запись, из которой провалились в массив ссылок? |
|
Полезность: Нет оценки
|
Уважаемые Знатоки!
Юзер только что вошел в Нафигатор, встал на запись в справочнике и провалился в МАССИВ ССЫЛОК, который на данный момент пуст. Он запускает конструктор, причем в экранной форме конструктора необходимо использовать сведения о ТОЙ ЗАПИСИ СПРАВОЧНИКА, из которой юзер провалился в массив. Каким образом можно "поймать" эту запись справочника? Ведь в момент работы экранной формы конструктора (даже при установке крыжа "простой конструктор") у THIS нет Collection_ID! Если бы это был массив структур - тут все ясно, в клиент-скрипте конструктора доступен Form1.CollectionID
Но как быть с массивом ссылок?.. |
|
 |
prankster Профи
Вступление в Клуб: 22.08.2014
|
Чт Окт 01, 2015 08:36  Re: Как найти запись... |
|
Полезность: Нет оценки
|
vek21 пишет: | Уважаемые Знатоки!
Юзер только что вошел в Нафигатор, встал на запись в справочнике и провалился в МАССИВ ССЫЛОК, который на данный момент пуст. Он запускает конструктор, причем в экранной форме конструктора необходимо использовать сведения о ТОЙ ЗАПИСИ СПРАВОЧНИКА, из которой юзер провалился в массив. Каким образом можно "поймать" эту запись справочника? Ведь в момент работы экранной формы конструктора (даже при установке крыжа "простой конструктор") у THIS нет Collection_ID! Если бы это был массив структур - тут все ясно, в клиент-скрипте конструктора доступен Form1.CollectionID
Но как быть с массивом ссылок?.. |
Проверил на пользовательском типе в фин. счетах - создал конструктор, в проверке вывел this%collection - он был не пустой, независимо от галочки "простой конструктор". Не понимаю в чем проблема  |
|
 |
vek21 Участник со стажем
Вступление в Клуб: 20.09.2007
|
Чт Окт 01, 2015 08:59   |
|
Полезность: Нет оценки
|
Где создал конструктор? В пользовательском типе? Что за тип? Массив ссылок? |
|
 |
prankster Профи
Вступление в Клуб: 22.08.2014
|
Чт Окт 01, 2015 09:00   |
|
Полезность: Нет оценки
|
vek21 пишет: | Где создал конструктор? В пользовательском типе? Что за тип? Массив ссылок? |
Да, массив ссылок - ::[AC_FIN].[USER_TYPE].
Может у вас переход в этот массив в представлении сделан криво? |
|
 |
vek21 Участник со стажем
Вступление в Клуб: 20.09.2007
|
Чт Окт 01, 2015 10:15   |
|
Полезность: Нет оценки
|
Будьте тогда добры, приаттачьте хранилище с этим типом и конструктором, я взгляну. |
|
 |
prankster Профи
Вступление в Клуб: 22.08.2014
|
Чт Окт 01, 2015 10:51   |
|
Полезность: Нет оценки
|
vek21 пишет: | Будьте тогда добры, приаттачьте хранилище с этим типом и конструктором, я взгляну. |
Не могу, т.к. лицензия закончилась сегодня на этой тестовой БД, как оказалось
В общем, проверяйте переход - при проваливании в массив ссылок, есть окончание "%Из: ..." в наименовании представления (этого массива)?
Если нет - все дело в этом, надо менять переход на автоматический. |
|
 |
Random Эксперт
Вступление в Клуб: 27.06.2011
|
Чт Окт 01, 2015 11:41  Re: Как найти запись, из которой провалились в массив ссылок |
|
Полезность: Нет оценки
|
prankster пишет: | vek21 пишет: | Если бы это был массив структур - тут все ясно, в клиент-скрипте конструктора доступен Form1.CollectionID
Но как быть с массивом ссылок?.. |
Проверил на пользовательском типе в фин. счетах - создал конструктор, в проверке вывел this%collection - он был не пустой, независимо от галочки "простой конструктор". Не понимаю в чем проблема  |
А какая разница, массив чего используется?! Чем ссылка такая особенная? |
|
 |
vek21 Участник со стажем
Вступление в Клуб: 20.09.2007
|
Пт Окт 02, 2015 07:02   |
|
Полезность: Нет оценки
|
prankster пишет: | проверяйте переход - при проваливании в массив ссылок, есть окончание "%Из: ..." в наименовании представления (этого массива)?
Если нет - все дело в этом, надо менять переход на автоматический. |
Есть, естественно, окончание. После "из..." всегда пишется содержимое первой колонки записи, из которой мы провалились в массив.Представление, с помощью которого я проваливаюсь в массив - обычное PL/Plus представление, переход там автоматический, без всяких ручных добавок. И вообще - какая разница, из какого представления я провалился в массив?! Я уже внутри! И запускаю конструктор...
Random, разница существенная, и состоит как раз в том, что при работе конструктора в массиве СТРУКТУР в валидаторе конструктора сразу имеется this%collection, а вот при работе конструктора В МАССИВЕ ССЫЛОК этот this%collection появляется только в теле конструктора! То есть при работе экранной формы конструктора у меня нет доступа к экземпляру, из которого я провалился в массив! |
|
 |
vek21 Участник со стажем
Вступление в Клуб: 20.09.2007
|
Пт Окт 02, 2015 07:07   |
|
Полезность: Нет оценки
|
>То есть при работе экранной формы конструктора у меня нет доступа к экземпляру, из которого я провалился в массив
Имеется в виду, при работе валидаторной части конструктора. |
|
 |
prankster Профи
Вступление в Клуб: 22.08.2014
|
Пт Окт 02, 2015 08:48   |
|
Полезность: Нет оценки
|
vek21 пишет: | prankster пишет: | проверяйте переход - при проваливании в массив ссылок, есть окончание "%Из: ..." в наименовании представления (этого массива)?
Если нет - все дело в этом, надо менять переход на автоматический. |
Есть, естественно, окончание. После "из..." всегда пишется содержимое первой колонки записи, из которой мы провалились в массив.Представление, с помощью которого я проваливаюсь в массив - обычное PL/Plus представление, переход там автоматический, без всяких ручных добавок. И вообще - какая разница, из какого представления я провалился в массив?! Я уже внутри! И запускаю конструктор...
Random, разница существенная, и состоит как раз в том, что при работе конструктора в массиве СТРУКТУР в валидаторе конструктора сразу имеется this%collection, а вот при работе конструктора В МАССИВЕ ССЫЛОК этот this%collection появляется только в теле конструктора! То есть при работе экранной формы конструктора у меня нет доступа к экземпляру, из которого я провалился в массив! |
Почему вы идете в штыки, задавая вопросы "Какая разница?!?!?"? Если вы не видите разницу, это не значит, что ее нет. Сделайте переход по условию - поймете в чем разница, но если в теле появляется коллекция - дело, конечно, не в этом.
Повторюсь - в ЦФТ Банк 15.4 () коллекция известна уже в валидаторе. Если у вас не так - ставьте отладку в pl/sql пакет, гляньте интерфейсный пакет класса-массива, можно и его отладить.
Посмотрите другие такие массивы:
Код: | select ca.class_id "Parent class", ca.attr_id "Attr", c.id "Child class"
from classes c, class_attributes ca
where c.BASE_CLASS_ID = 'COLLECTION'
and c.HAS_INSTANCES = 0
and exists (select 1
from classes c1
where c1.id = c.TARGET_CLASS_ID
and c1.BASE_CLASS_ID = 'REFERENCE'
and c1.HAS_INSTANCES = 1)
and ca.self_class_id = c.id
order by ca.class_id |
Проверьте их конструкторы (ну или создайте свои конструкторы для теста в этих массивах), сравните со своим проблемным |
|
 |
Alkov Профи
Вступление в Клуб: 23.09.2010
|
Пт Окт 02, 2015 09:20  Re: Как найти запись, из которой провалились в массив ссылок |
|
Полезность: Нет оценки
|
vek21 пишет: | Уважаемые Знатоки!
встал на запись в справочнике и провалился в МАССИВ ССЫЛОК, который на данный момент пуст. Он запускает конструктор, |
Может он не в массив проваливается.
Может у вас в представлении на этом столбце стоит переход по условию...
проверьте. |
|
 |
vek21 Участник со стажем
Вступление в Клуб: 20.09.2007
|
Пт Окт 02, 2015 09:42   |
|
Полезность: Нет оценки
|
Нет, Alkov, совершенно точно - переход в представлении "автоматический", никаких условий нет.
prankster, извините - я вовсе не принимаю "в штыки"...
Кстати, у меня, если я проваливаюсь в массив "пользовательский тип" в фин.счетах, в валидаторе конструктора тоже есть collection_id. Непонятно, чем отличается этот массив ссылок от моего массива ссылок, но в валидаторе конструктора моего массива ссылок collection'a нет... |
|
 |
Alex294 Участник со стажем
Вступление в Клуб: 02.06.2013
|
Пт Окт 02, 2015 11:05   |
|
Полезность: Нет оценки
|
vek21 пишет: | Непонятно, чем отличается этот массив ссылок от моего массива ссылок, но в валидаторе конструктора моего массива ссылок collection'a нет... |
Судя по всему в Вашем массиве нет ни одной записи - в таком случае ЦФТ его почему-то считает недомассивом. После появления хотя бы одной записи, массив начинает вести себя по другому. |
|
 |
yaffil Профи
Вступление в Клуб: 18.08.2011
|
Пт Окт 02, 2015 11:09   |
|
Полезность: Нет оценки
|
Alex294 пишет: | Судя по всему в Вашем массиве нет ни одной записи - в таком случае ЦФТ его почему-то считает недомассивом. После появления хотя бы одной записи, массив начинает вести себя по другому. |
Он не может быть недомассивом. Он или создавался при помощи next_valUE('SEQ_ID') - тогда с ним будет все "ОК" или он не создан и тогда естественно будут проблемы |
|
 |
vek21 Участник со стажем
Вступление в Клуб: 20.09.2007
|
Пт Окт 02, 2015 12:19   |
|
Полезность: Нет оценки
|
А что значит "создавался при помощи next_valUE('SEQ_ID')"?
Еще раз:
1)Входим в Навигатор
2)Встаем на запись в справочнике
3)Проваливаемся в (пустой!) массив ссылок
4)Запускаем конструктор
Цель - чтобы в валидаторе конструктора был доступ к записи справочника, из которой провалились в массив. |
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|