Представление VS Операция
|
Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Chekan Участник со стажем
Вступление в Клуб: 29.11.2012
|
Пн Дек 03, 2012 14:55  Представление VS Операция |
|
Полезность: Нет оценки
|
Создал представление для кредитов, которое принадлежит [PR_CRED] и наследуется потомками. При запуске из ТБП Юридические лица этого представления выборка происходит только из ТБП Юридические лица, а не из всех кредитов(ничего себе!!).
Вобщем это все очевидно, но есть одно но. Создана групповая операция в которой точно такая же выборка(близнец прям), но данные берутся из [PR_CRED] а не из ТБП откуда операцию вызвали. Т.е при вызове из юр лиц, так же в результат заносятся и физ лица и т.д.
Люди добрые,какие движения пальцами нужно сделать с операцией в этом случае? Не хотелось бы создавать отдельную операцию для каждого ТБП |
|
 |
markoff Участник - экстремал
Вступление в Клуб: 09.06.2009
|
Пн Дек 03, 2012 16:56   |
|
Полезность: Нет оценки
|
в выборке условие
and x%class = this%class |
|
 |
Alexsey Эксперт
Вступление в Клуб: 06.09.2007
|
Пн Дек 03, 2012 17:48   |
|
Полезность: Нет оценки
|
Сломался на фразе выборка из Юр. лиц и Вьюха в PR_CRED.
Что-то тут не вяжется. Какие данные вьюха должна отбирать?
markoff пишет: | в выборке условие
and x%class = this%class |
так будет правильнее
Код: | ...
x%class = &METHOD$CLASS - короткое имя ТБП, которому принадлежит операция |
как вариант указать вьюху через клиент-скрипт и наложить соответствующий фильтр, там же в клиент-скрипте, но тогда макрос работать не будет, придется выкручиваться например через Form1.ClassId _________________ всегда есть как минимум 2 выхода |
|
 |
Chekan Участник со стажем
Вступление в Клуб: 29.11.2012
|
Вт Дек 04, 2012 05:28   |
|
Полезность: Нет оценки
|
Alexsey пишет: | Сломался на фразе выборка из Юр. лиц и Вьюха в PR_CRED.
Что-то тут не вяжется. Какие данные вьюха должна отбирать?
markoff пишет: | в выборке условие
and x%class = this%class |
так будет правильнее
Код: | ...
x%class = &METHOD$CLASS - короткое имя ТБП, которому принадлежит операция |
как вариант указать вьюху через клиент-скрипт и наложить соответствующий фильтр, там же в клиент-скрипте, но тогда макрос работать не будет, придется выкручиваться например через Form1.ClassId |
&METHOD$CLASS - пробовал такой вариант, дело в том что операция принадлежит [PR_CRED] и наследуется потомками, при вызове этой операции например из ТБП Юр.лица( из потомка) &METHOD$CLASS возвращает PR_CRED, а не желанное KRED_CORP. В случае вьюхи такое сравнение не нужно, оракл автоматически определяет что выборка должна происходить только из потомка из которого вызвали представление( а в условии выборки стоит in ::[PR_CRED] ), это то что нам нужно. Но в случае операции такой прием не катит(огорчает конечно). Вобщем стоит задача определения ТБП из которого ВЫЗВАЛИ операцию(из какого потомка), а не к которому принадлежит операция. Буду очень рад,если вы мне в этом поможете (мб есть какая то функция). Вьюха - представление для просмотра pl/sql |
|
 |
Random Эксперт
Вступление в Клуб: 27.06.2011
|
Вт Дек 04, 2012 07:51   |
|
Полезность: Нет оценки
|
Chekan пишет: | Alexsey пишет: | Сломался на фразе выборка из Юр. лиц и Вьюха в PR_CRED.
Что-то тут не вяжется. Какие данные вьюха должна отбирать?
markoff пишет: | в выборке условие
and x%class = this%class |
так будет правильнее
Код: | ...
x%class = &METHOD$CLASS - короткое имя ТБП, которому принадлежит операция |
как вариант указать вьюху через клиент-скрипт и наложить соответствующий фильтр, там же в клиент-скрипте, но тогда макрос работать не будет, придется выкручиваться например через Form1.ClassId |
&METHOD$CLASS - пробовал такой вариант, дело в том что операция принадлежит [PR_CRED] и наследуется потомками, при вызове этой операции например из ТБП Юр.лица( из потомка) &METHOD$CLASS возвращает PR_CRED, а не желанное KRED_CORP. В случае вьюхи такое сравнение не нужно, оракл автоматически определяет что выборка должна происходить только из потомка из которого вызвали представление( а в условии выборки стоит in ::[PR_CRED] ), это то что нам нужно. Но в случае операции такой прием не катит(огорчает конечно). Вобщем стоит задача определения ТБП из которого ВЫЗВАЛИ операцию(из какого потомка), а не к которому принадлежит операция. Буду очень рад,если вы мне в этом поможете (мб есть какая то функция). Вьюха - представление для просмотра pl/sql |
Если операция простая, можно рассмотреть this%class, но это определение, над экземпляром какого ТБП происходит работа, а не из какого места меню она вызвана.
Не забывайте, что операция может быть вызвана из другой операции, в том числе с поднятием экранной формы, или через событие, и уже для этого случая место в иерархии меню абсолютно не определяется.
Можете попробовать определить операции с такими же короткими/длинными наименованиями для всех потомков, тогда они будут подменять друг друга. |
|
 |
Chekan Участник со стажем
Вступление в Клуб: 29.11.2012
|
Вт Дек 04, 2012 08:21   |
|
Полезность: Нет оценки
|
Random пишет: |
Если операция простая, можно рассмотреть this%class, но это определение, над экземпляром какого ТБП происходит работа, а не из какого места меню она вызвана.
Не забывайте, что операция может быть вызвана из другой операции, в том числе с поднятием экранной формы, или через событие, и уже для этого случая место в иерархии меню абсолютно не определяется.
Можете попробовать определить операции с такими же короткими/длинными наименованиями для всех потомков, тогда они будут подменять друг друга. |
this конечно не подходит, ибо операция не простая и не над экземпляром вызывается) Вот не хотелось бы создавать операцию для каждого потомка, но придется видимо побороть лень жаль что нету соответствующего функционала, многим бы время сэкономило -_-
В любом случае всем спасибо, что потратили на меня свое время |
|
 |
vtar Эксперт
Вступление в Клуб: 20.03.2009
|
Вт Дек 04, 2012 08:23   |
|
Полезность: Нет оценки
|
Флажок "показывать дочерние типы" в представлении включен ? |
|
 |
Chekan Участник со стажем
Вступление в Клуб: 29.11.2012
|
Вт Дек 04, 2012 08:28   |
|
Полезность: Нет оценки
|
vtar пишет: | Флажок "показывать дочерние типы" в представлении включен ? |
конечно) |
|
 |
Igorka Профи
Вступление в Клуб: 28.09.2007
|
Вт Дек 04, 2012 08:29   |
|
Полезность: Нет оценки
|
Цитата: | но придется видимо побороть лень |
зачем бороться со своей ленью, пусть пользователи борются. на экранную форму чекбоксы, как в остальных групповых операциях. |
|
 |
Alexsey Эксперт
Вступление в Клуб: 06.09.2007
|
Вт Дек 04, 2012 09:04   |
|
Полезность: 1
|
Есть еще 1 самый простой вариант, сделать операцию обертку без поднятия формы, простую, которая будет через PLPCALL вызывать групповую операцию и передавать в нее класс из которого вызывается. На групповой операции убрать признак "Может быть активирована пользователем". В итоге дорабатывать самую малость и класс будет определяться корректно. _________________ всегда есть как минимум 2 выхода |
|
 |
Chekan Участник со стажем
Вступление в Клуб: 29.11.2012
|
Вт Дек 04, 2012 15:32   |
|
Полезность: Нет оценки
|
Alexsey пишет: | Есть еще 1 самый простой вариант, сделать операцию обертку без поднятия формы, простую, которая будет через PLPCALL вызывать групповую операцию и передавать в нее класс из которого вызывается. На групповой операции убрать признак "Может быть активирована пользователем". В итоге дорабатывать самую малость и класс будет определяться корректно. |
То что надо, плюсик, спасибо большое, заодно наконец-то поюзал PLPCALL  |
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|