CftClub.ru
Клуб специалистов ЦФТ-Банк

как задать команду поиска в массиве представления по фильтру

 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Уроки ЦФТ-Банк для начинающих
Предыдущая тема :: Следующая тема  
Автор Сообщение
roker
Участник


Вступление в Клуб: 01.03.2013
СообщениеПт Мар 01, 2013 09:50   как задать команду поиска в массиве представления по фильтру Ответить с цитатой
Полезность: Нет оценки
Поскажите, пожалуйста, есть ли в ЦФТ-Банк (IBSO) команда для задания дополнительного условия в фильтре представлений, которая бы мониторила искомое значение в массиве представления?

К примеру, в представлении П имеется 3 реквизита: А, В, С

Реквизит С является ссылкой на массив с реквизитами: D, E

Можно ли задать фильтр в Представлении П поиска экземпляров по значениям в реквизитах А и Е???

Заранее благодарен за помощь!
vtar
Эксперт


Вступление в Клуб: 20.03.2009
СообщениеПт Мар 01, 2013 10:22    Ответить с цитатой
Полезность: 1
Простой фильтр так не умеет, массив можно отфильтровать только по условию "пусто/не пусто".

Для Вашего случая возможно, поможет доработка

-ОПЕРАЦИИ-фильтра (которая уже сможет "залезть" внутрь массива по ссылке )

- или модифицировать представление, развернув массив
roker
Участник


Вступление в Клуб: 01.03.2013
СообщениеПт Мар 01, 2013 10:46    Ответить с цитатой
Полезность: Нет оценки
vtar пишет:
Простой фильтр так не умеет, массив можно отфильтровать только по условию "пусто/не пусто".

Для Вашего случая возможно, поможет доработка

-ОПЕРАЦИИ-фильтра (которая уже сможет "залезть" внутрь массива по ссылке )

- или модифицировать представление, развернув массив


Я не из ИТ-отдела. Доработки займут какое-то время, в основном это связано с согласованиями, оформлением всяких заявок, тех. заданий и пр.. В любом фильтре можно поставить галочку доп. условие и прописать командами типа like, or, and, sysdate, trim... условия поиска. Думал, может в языке платформы уже есть какая-то команда, которая отправит анализировать реквизиты в массиве.

Спасибо за советы!
Andry
Участник - экстремал


Вступление в Клуб: 14.01.2009
СообщениеПт Мар 01, 2013 11:58    Ответить с цитатой
Полезность: 1
roker пишет:
В любом фильтре можно поставить галочку доп. условие и прописать командами типа like, or, and, sysdate, trim... условия поиска. Думал, может в языке платформы уже есть какая-то команда, которая отправит анализировать реквизиты в массиве.

Спасибо за советы!

В представление скрыто выводится реквизит аттрибута C, и используя это значение можно на чистом SQL написать условие-подзапрос по типу массива по условию collection_id = ref3
yaffil
Профи


Вступление в Клуб: 18.08.2011
СообщениеПт Мар 01, 2013 12:02    Ответить с цитатой
Полезность: 1
Фильтр - это тупо наложение доп условия на срез, который у тебя в представлении. И но не умеет ходить по ссылкам и переходам.

Если вам не критично, то можете сделать расширение и вытащить значения реквизитов в массиве на представление и накладывать фильтр. Но количество записей увеличится, на количество записей в массиве по каждой строке.
vtar
Эксперт


Вступление в Клуб: 20.03.2009
СообщениеПт Мар 01, 2013 12:07    Ответить с цитатой
Полезность: 1
roker пишет:
В любом фильтре можно поставить галочку доп. условие и прописать командами типа like, or, and, sysdate, trim... условия поиска. Думал, может в языке платформы уже есть какая-то команда, которая отправит анализировать реквизиты в массиве.
Команды эти есть, но они видят только те реквизиты, которые выведены в строке . В Вашем случае у Вас в строку выведен ID массива, что там внутри, команды не увидят.
roker
Участник


Вступление в Клуб: 01.03.2013
СообщениеПт Мар 01, 2013 12:25    Ответить с цитатой
Полезность: Нет оценки
Всем спасибо! придется выводить реквизиты в представление.
Andry
Участник - экстремал


Вступление в Клуб: 14.01.2009
СообщениеПт Мар 01, 2013 12:57    Ответить с цитатой
Полезность: 1
Жаль, я думал что в доп. свойстве фильтра можно писать что-то вроде
Код:
exists (SELECT * from Z#PATTERN  P where P.COLLECTION_ID = REF4 and P.C_CODE = 'УЧЕТ_НАЧ_ПРЦ_1')

(должно было работать в "Бизнес-операции (полный список)")
Vlad
Участник


Вступление в Клуб: 23.06.2007
СообщениеПт Мар 01, 2013 14:00    Ответить с цитатой
Полезность: 2
Andry пишет:
Жаль, я думал что в доп. свойстве фильтра можно писать что-то вроде
Код:
exists (SELECT * from Z#PATTERN  P where P.COLLECTION_ID = REF4 and P.C_CODE = 'УЧЕТ_НАЧ_ПРЦ_1')

(должно было работать в "Бизнес-операции (полный список)")


Можно такие условия писать, под владельцем точно будут работать. У обычных пользователей нет прав на таблицы, надо использовать представления. Как пример доп. условие на представление "Подробная форма" в фин счетах:

substr(C_1, 1,4) in ('4081', '4082', '4230', '4260')
and (select count(*) from ibs.VW_CRIT_AC_FIN_OPEN acf where acf.ref11 = VW_CRIT_AC_FIN.ref3) > 0
roker
Участник


Вступление в Клуб: 01.03.2013
СообщениеВт Мар 05, 2013 08:49    Ответить с цитатой
Полезность: Нет оценки
Vlad пишет:
Andry пишет:
Жаль, я думал что в доп. свойстве фильтра можно писать что-то вроде
Код:
exists (SELECT * from Z#PATTERN  P where P.COLLECTION_ID = REF4 and P.C_CODE = 'УЧЕТ_НАЧ_ПРЦ_1')

(должно было работать в "Бизнес-операции (полный список)")


Можно такие условия писать, под владельцем точно будут работать. У обычных пользователей нет прав на таблицы, надо использовать представления. Как пример доп. условие на представление "Подробная форма" в фин счетах:

substr(C_1, 1,4) in ('4081', '4082', '4230', '4260')
and (select count(*) from ibs.VW_CRIT_AC_FIN_OPEN acf where acf.ref11 = VW_CRIT_AC_FIN.ref3) > 0


не силен в синтаксисе, подскажи, как можно попробовать задать условие поиска, если в Представлении (задаю стандартеные условия поиска) + в реквизите С_31 ссылка на массив "Папка платежей" называется кажется ibs.VW_CRIT_FOLDER_PAY, !!!здесь поиск элементов по названию бизнес-операции по условию С_3 like '%налог%'.
Справочник бизнес-операций называется ibs.VW_CRIT_PATTERN_DOC
Vlad
Участник


Вступление в Клуб: 23.06.2007
СообщениеВт Мар 05, 2013 12:23    Ответить с цитатой
Полезность: Нет оценки
roker пишет:

не силен в синтаксисе, подскажи, как можно попробовать задать условие поиска, если в Представлении (задаю стандартеные условия поиска) + в реквизите С_31 ссылка на массив "Папка платежей" называется кажется ibs.VW_CRIT_FOLDER_PAY, !!!здесь поиск элементов по названию бизнес-операции по условию С_3 like '%налог%'.
Справочник бизнес-операций называется ibs.VW_CRIT_PATTERN_DOC

Насколько я понял задачу, в папках платежей можно искать обычным фильтром, без использования доп. параметров, по наименованию бизнес операции. Но если хочется через доп. параметры, то синтаксис будет такой:
ibs.VW_CRIT_FOLDER_PAY.REF4 in (select bo.id from ibs.VW_CRIT_PATTERN_DOC bo where lower(bo.C_3) like '%налог%')
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Уроки ЦФТ-Банк для начинающих Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Рейтинг@Mail.ru