добавить столбец в представление
|
Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Псевдоним123 Участник - экстремал
Вступление в Клуб: 05.06.2018
|
Пн Окт 08, 2018 10:27  добавить столбец в представление |
|
Полезность: Нет оценки
|
добрый день.
подскажите, есть представление, в которое необходимо добавить еще столбец.
представление создано из реквизитов(в основном в виде ссылок).
поле, которое необходимо добавить есть в ссылках, но мне необходимо из ссылки достать определенное поле.
как это можно сделать? |
|
 |
lexus Профи
Вступление в Клуб: 28.09.2007
|
Пн Окт 08, 2018 10:45   |
|
Полезность: Нет оценки
|
Если речь о простом представлении...
Слева внизу список ссылочных реквизитов типа. Правой кнопкой на нужном - Добавить ссылку. Потом встаешь на добавленный и справа видишь реквизиты ссылочного типа. Перетаскиваешь нужный наверх в колонки. |
|
 |
Псевдоним123 Участник - экстремал
Вступление в Клуб: 05.06.2018
|
Пн Окт 08, 2018 10:47   |
|
Полезность: Нет оценки
|
это то я знаю, но необходимо выдернуть конкретное поле из ссылки которого нет в реквизитах. |
|
 |
lexus Профи
Вступление в Клуб: 28.09.2007
|
Пн Окт 08, 2018 11:01   |
|
Полезность: Нет оценки
|
Псевдоним123 пишет: | это то я знаю, но необходимо выдернуть конкретное поле из ссылки которого нет в реквизитах. |
Не понимаю эту фразу. |
|
 |
Псевдоним123 Участник - экстремал
Вступление в Клуб: 05.06.2018
|
Пн Окт 08, 2018 11:12   |
|
Полезность: Нет оценки
|
lexus пишет: | Если речь о простом представлении...
Слева внизу список ссылочных реквизитов типа. Правой кнопкой на нужном - Добавить ссылку. Потом встаешь на добавленный и справа видишь реквизиты ссылочного типа. Перетаскиваешь нужный наверх в колонки. |
то что написано это я знаю.
вопрос в том, что необходимо выдернуть конкретное поле из ссылочного реквизита, которого после нажатия "Правой кнопкой на нужном - Добавить ссылку" справа нет.
например, в ссылочном реквизите есть поля: "collection_id", "obj_id", а необходимо поле "name" |
|
 |
Матвеев Евгений Профи
Вступление в Клуб: 31.01.2012
|
Пн Окт 08, 2018 11:13   |
|
Полезность: 1
|
Цитата: | необходимо выдернуть конкретное поле из ссылки которого нет в реквизитах. |
Приветствую, как вариант
Простое представление
Написать свою функцию, которая по доступному, для искомого представления полю(значению) будет возвращать из третьих мест то значение, которое нужно(можно сделать в простом представлении, реквизит "Источник данных")
Простое представление
Написать свой select, который по доступному, для искомого представления полю(значению) будет возвращать из третьих мест то значение, которое нужно(можно сделать в простом представлении, реквизит "Источник данных")
Либо сделать своё pl plus представление, и в select заложить любую бизнес логику |
|
 |
vtar Эксперт
Вступление в Клуб: 20.03.2009
|
Пн Окт 08, 2018 11:15   |
|
Полезность: 1
|
тебе нужна обратная ссылка или вставка pl/sql
обратная ссылка - посмотри как в Кредитах (Полный спискок что ли) выводится колонка Обеспечение
По вставке - любая колонка которая выводит "количество объектов" {3} просто посмотри как делается вставка |
|
 |
Псевдоним123 Участник - экстремал
Вступление в Клуб: 05.06.2018
|
Вт Окт 09, 2018 13:28   |
|
Полезность: Нет оценки
|
не подскажете, если простое представление состоит из реквизитов, можно ли как-нибудь добавить запросом еще несколько полей? |
|
 |
Эмиралька Эксперт
Вступление в Клуб: 09.11.2015
|
Вт Окт 09, 2018 14:16   |
|
Полезность: 1
|
Псевдоним123 пишет: | не подскажете, если простое представление состоит из реквизитов, можно ли как-нибудь добавить запросом еще несколько полей? |
Представление представляет собой
а) метаданные. Ну это, положим, не особая проблема, редактировать представление runtime возможность есть.
б) которые кэшируются в АРМ Навигатор. То есть после модификации представления нужно как-то заставить пользователя (а то и всех пользователей) закрыть навигатор. Нерешаемо.
в) данные, предоставляемые представлением должны проверяться на доступ, чтобы не предоставить не тем пользователям не ту информацию.
А вот тут проблема, однако. |
|
 |
vtar Эксперт
Вступление в Клуб: 20.03.2009
|
Вт Окт 09, 2018 17:25   |
|
Полезность: Нет оценки
|
Псевдоним123 пишет: | не подскажете, если простое представление состоит из реквизитов, можно ли как-нибудь добавить запросом еще несколько полей? |
обрисуйте задачу. |
|
 |
lexus Профи
Вступление в Клуб: 28.09.2007
|
Вт Окт 09, 2018 21:56   |
|
Полезность: Нет оценки
|
Псевдоним123 пишет: | не подскажете, если простое представление состоит из реквизитов, можно ли как-нибудь добавить запросом еще несколько полей? |
Независимых - да. vtar упоминал это выше. Добавляешь пустую колонку и в ней прописываешь источник pl/sql запросом. И так сколько нужно колонок.
Но, единый запрос, возвращающий несколько полей - так вроде не получится. |
|
 |
vtar Эксперт
Вступление в Клуб: 20.03.2009
|
Ср Окт 10, 2018 09:29   |
|
Полезность: 1
|
lexus пишет: |
Но, единый запрос, возвращающий несколько полей - так вроде не получится. |
если только склеить в строку и одним полем.
listagg Или wm_concat |
|
 |
Псевдоним123 Участник - экстремал
Вступление в Клуб: 05.06.2018
|
Ср Окт 10, 2018 10:15   |
|
Полезность: Нет оценки
|
решил переписать представление и столкнулся с проблемой, что в последних столбцах не отражаются данные, хотя они есть..
[code]
type main is
SELECT A1_1(
A1_1.[SUMMA_DOG],
A1_2.[DATE_BEGIN],
A1_2.[DATE_ENDING], A1_1.[LIST_PROL],
A1_1.[CLIENT] ,
A1_1.[ACCOUNT] ,
A1_1.[DATE_GIVE],
A1_1.[DATE_ENDING_MAX],
A1_2.[ARRAY_DOG_ACC], ,
A1_1.[FILIAL],
A1_1%CLASS,
A1_2.[ARRAY_SUM_DOG],
A1_1.[DEBTORS],
A1_1.[BANK_SWIFT],
A1_2.[INTERNAL_CODE],
abs(A1_1%ID),
A1_1.[HIGH_LEVEL_CR],
A1_1.[PROPERTIES],
(select p(p.[date_beg]) in ::[PROPERTIES], (::[PROPERTY_GRP] all : g), (::[PROD_PROPERTY] all : d)
where p%COLLECTION=a1_1.[properties]
and p.[GROUP_PROP]=g%id and p.[prop]=d%id
--and g%id = 92187029348
and rownum = 1
and g.[CODE] = 'SVB_RISK_PREMIUM'),
(select g(
TRIM(DECODE(NVL(g.[TYPE_VALUE],' '),' ',d.[NAME],
'NUMBER',TO_CHAR(p.[NUM],'999G999G999G999G990D0099'),
'STRING',p.[STR],
'DATE',TO_CHAR(p.[V_DATE],'dd.mm.yyyy'),
'BOOL',DECODE(p.[BOOL],'1','Да','0','Нет',''),
'REF',Z$RUNTIME_OBJ.GETOBJVALUE(p.[OBJ],g.[TBP]),
'!Ошибка! Тип значения не определён!'))
)
in ::[PROPERTY_GRP], (::[PROPERTIES] all : p), (::[PROD_PROPERTY] all : d)
where p%COLLECTION=a1_1.[properties]
and p.[GROUP_PROP]=g%id and p.[prop]=d%id
--and g%id = 92187029348
and rownum = 1
and g.[CODE] = 'SVB_RISK_PREMIUM'),
(select p(p.[date_beg]) in ::[PROPERTIES], (::[PROPERTY_GRP] all : g), (::[PROD_PROPERTY] all : d)
where p%COLLECTION=a1_1.[properties]
and p.[GROUP_PROP]=g%id and p.[prop]=d%id
--and g%id = 144962844321
and rownum = 1
and g.[CODE] = 'SVB_INNER_RATING'),
(select g(
TRIM(DECODE(NVL(g.[TYPE_VALUE],' '),' ',d.[NAME],
'NUMBER',TO_CHAR(p.[NUM],'999G999G999G999G990D0099'),
'STRING',p.[STR],
'DATE',TO_CHAR(p.[V_DATE],'dd.mm.yyyy'),
'BOOL',DECODE(p.[BOOL],'1','Да','0','Нет',''),
'REF',Z$RUNTIME_OBJ.GETOBJVALUE(p.[OBJ],g.[TBP]),
'!Ошибка! Тип значения не определён!'))
)
in ::[PROPERTY_GRP], (::[PROPERTIES] all : p), (::[PROD_PROPERTY] all : d)
where p%COLLECTION=a1_1.[properties]
and p.[GROUP_PROP]=g%id and p.[prop]=d%id
--and g%id = 144962844321
and rownum = 1
and g.[CODE] = 'SVB_INNER_RATING'),
(select p(p.[date_beg]) in ::[PROPERTIES], (::[PROPERTY_GRP] all : g), (::[PROD_PROPERTY] all : d) collections
where p%COLLECTION=a1_1.[properties]
and p.[GROUP_PROP]=g%id and p.[prop]=d%id
--and g%id = 6799565379
and rownum = 1
and g.[CODE] = 'СВБ_КУРИР_ПОДР'),
(select g(
TRIM(DECODE(NVL(g.[TYPE_VALUE],' '),' ',d.[NAME],
'NUMBER',TO_CHAR(p.[NUM],'999G999G999G999G990D0099'),
'STRING',p.[STR],
'DATE',TO_CHAR(p.[V_DATE],'dd.mm.yyyy'),
'BOOL',DECODE(p.[BOOL],'1','Да','0','Нет',''),
'REF',Z$RUNTIME_OBJ.GETOBJVALUE(p.[OBJ],g.[TBP]),
'!Ошибка! Тип значения не определён!'))
)
in ::[PROPERTY_GRP], (::[PROPERTIES] all : p), (::[PROD_PROPERTY] all : d)
where p%COLLECTION=a1_1.[properties]
and p.[GROUP_PROP]=g%id and p.[prop]=d%id
--and g%id = 6799565379
and rownum = 1
and g.[CODE] = 'СВБ_КУРИР_ПОДР'
--and g.[code] = 'СВБ_КУРИР_ПОДР'
)
)
in ::[PR_CRED] ,
(::[PRODUCT] all : A1_2)
WHERE A1_1%ID = A1_2%ID
[/code] |
|
 |
vtar Эксперт
Вступление в Клуб: 20.03.2009
|
Ср Окт 10, 2018 10:20   |
|
Полезность: 1
|
Код: |
in ::[PROPERTY_GRP], (::[PROPERTIES] all : p), (::[PROD_PROPERTY] all : d)
where p%COLLECTION=a1_1.[properties]
|
property_GRP всегда имеет collection_id ?
Я всегда беру за правило в джойнах колотить все ALL по всем таблицам
указываю явно в условиях отбор по %collection
Код: |
in ::[PROPERTY_GRP], (::[PROPERTIES] all : p), (::[PROD_PROPERTY] all : d) ALL
|
и тут
in ::[PR_CRED] ,
(::[PRODUCT] all : A1_2)
нету ALL |
|
 |
Псевдоним123 Участник - экстремал
Вступление в Клуб: 05.06.2018
|
Ср Окт 10, 2018 11:45   |
|
Полезность: Нет оценки
|
спасибо всем за советы/подсказки, решил проблему. |
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|