Можно определить из какого представления запущена опер-ия ?
На страницу 1, 2 След.
|
Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Alkov Профи
Вступление в Клуб: 23.09.2010
|
Вт Ноя 05, 2013 09:15  Можно определить из какого представления запущена опер-ия ? |
|
Полезность: Нет оценки
|
Здравствуйте!
Можно ли в операции, определить из какого представления
запущена операция ?
(хотя наверное это только навигатор знает а не бд)
, ну или хотя бы какое представление выполнялось пользователем перед запуском операции , курсор же остаётся открытым? |
|
 |
vtar Эксперт
Вступление в Клуб: 20.03.2009
|
Вт Ноя 05, 2013 12:53   |
|
Полезность: Нет оценки
|
Мне известен только такой кривой способ - в операции фильтре представления взводить глобальную переменную неким флагом (например 1 представление флаг = 1, 2 - 2 и т.п.), в операции смотреть что за флаг.
Или тем же методом, вместо флага устанавливать признак в контексте пользователя. |
|
 |
Random Эксперт
Вступление в Клуб: 27.06.2011
|
Вт Ноя 05, 2013 14:17   |
|
Полезность: Нет оценки
|
vtar пишет: | Мне известен только такой кривой способ - в операции фильтре представления взводить глобальную переменную неким флагом (например 1 представление флаг = 1, 2 - 2 и т.п.), в операции смотреть что за флаг.
Или тем же методом, вместо флага устанавливать признак в контексте пользователя. |
Угу. Очень кривой.
Заходим в одно представление, заходим во второе представление, меню Окно->первое представление, запускаем операцию. Операция думает, что запустили из второго представления, а на самом деле из первого.
Оно, конечно, вероятность такого невелика, но тем не менее ненулевая.
А можно, кстати, сделать идентичные операции, одну разрешить выполнять из одного представления, вторую - из второго, обе пусть вызывают третью с определённым параметром
А цель какова? Зачем такие приседания, может, можно проще решить?
Последний раз редактировалось: Random (Вт Ноя 05, 2013 14:33), всего редактировалось 1 раз |
|
 |
Alexsey Эксперт
Вступление в Клуб: 06.09.2007
|
Вт Ноя 05, 2013 14:32   |
|
Полезность: Нет оценки
|
В чем скрытый смысл знать из какой вьюхи запущена операция? Учитывая, что пользователь может работать из одной вьюхи, какого-нибудь полного списка. _________________ всегда есть как минимум 2 выхода |
|
 |
Alkov Профи
Вступление в Клуб: 23.09.2010
|
Ср Ноя 06, 2013 02:56   |
|
Полезность: Нет оценки
|
Цитата: | А можно, кстати, сделать идентичные операции, одну разрешить выполнять из одного представления, вторую - из второго, обе пусть вызывают третью с определённым параметром
|
Использовал этот вариант.
У разных групп пользователей разный список доступных представлениий,
Соответственно хотели чтобы операция по разному отрабатывала для каждой группы. Разные операции нехотели т.к. отличие работы операций небольшое. |
|
 |
devor Профи
Вступление в Клуб: 13.02.2012
|
Ср Ноя 06, 2013 06:20   |
|
Полезность: 1
|
Alkov пишет: | Цитата: | А можно, кстати, сделать идентичные операции, одну разрешить выполнять из одного представления, вторую - из второго, обе пусть вызывают третью с определённым параметром
|
Использовал этот вариант.
У разных групп пользователей разный список доступных представлениий,
Соответственно хотели чтобы операция по разному отрабатывала для каждой группы. Разные операции нехотели т.к. отличие работы операций небольшое. |
Зачем знать текущее представление для этого?
Надо в операции анализировать вхождение пользователя в группу доступа ну или доступное ему представление. |
|
 |
Alkov Профи
Вступление в Клуб: 23.09.2010
|
Пт Сен 26, 2014 03:54   |
|
Полезность: Нет оценки
|
Вопрос тот же что и в топе ,но задача немного другая.
В Типе есть представление где отображены экземпляры, при это выполнены определённые проверки.
И есть операция которая выполняет аналогичные проверки перед запуском.
Операция может запускаться с любого представления типа.
Хотелось бы если запуск операции производится из "нашего" представления, то не выполнять повторно те же самые проверки...
Контекст по вышеописанному не подходит , т.к. не знаю как сделать изменение контекста при покидании/переключении из нашего представления в другое и обратно.
Вариант
Цитата: | А можно, кстати, сделать идентичные операции, одну разрешить выполнять из одного представления, вторую - из второго, обе пусть вызывают третью с определённым параметром |
Не проходит по скольку в типе есть дистрибутивные представления,
и они покажут обе операции с проверкой и без.
Смотрел также представление
Системный журнал\Список пользовательских сессий
столбец Действие и Операция.
Но они на переключение представлений не реагируют- только на запуск... |
|
 |
devor Профи
Вступление в Клуб: 13.02.2012
|
Пт Сен 26, 2014 06:30   |
|
Полезность: Нет оценки
|
Alkov пишет: |
Контекст по вышеописанному не подходит , т.к. не знаю как сделать изменение контекста при покидании/переключении из нашего представления в другое и обратно. |
На представление повесить операцию-фильтр, где взводить контекст или переменные. |
|
 |
Random Эксперт
Вступление в Клуб: 27.06.2011
|
Пт Сен 26, 2014 06:51   |
|
Полезность: Нет оценки
|
А ещё, представляете вообще! операции можно вызвать - не входя ни в какие представления - с помощью синтаксиса PLPCALL из другой операции, например!
Поэтому никто и не заморачивается. Я имею в виду разработчиков АРМов. |
|
 |
Alkov Профи
Вступление в Клуб: 23.09.2010
|
Пт Сен 26, 2014 09:08   |
|
Полезность: Нет оценки
|
devor пишет: | Alkov пишет: |
Контекст по вышеописанному не подходит , т.к. не знаю как сделать изменение контекста при покидании/переключении из нашего представления в другое и обратно. |
На представление повесить операцию-фильтр, где взводить контекст или переменные. |
Взводить то понятно где, не понятно как сбросить при переключении в другое... |
|
 |
devor Профи
Вступление в Клуб: 13.02.2012
|
Пт Сен 26, 2014 11:17   |
|
Полезность: Нет оценки
|
Alkov пишет: | devor пишет: | Alkov пишет: |
Контекст по вышеописанному не подходит , т.к. не знаю как сделать изменение контекста при покидании/переключении из нашего представления в другое и обратно. |
На представление повесить операцию-фильтр, где взводить контекст или переменные. |
Взводить то понятно где, не понятно как сбросить при переключении в другое... |
Каждое представление может переопределять контекст. |
|
 |
Alkov Профи
Вступление в Клуб: 23.09.2010
|
Пн Сен 29, 2014 07:23   |
|
Полезность: Нет оценки
|
devor пишет: | Alkov пишет: | devor пишет: | Alkov пишет: |
Контекст по вышеописанному не подходит , т.к. не знаю как сделать изменение контекста при покидании/переключении из нашего представления в другое и обратно. |
На представление повесить операцию-фильтр, где взводить контекст или переменные. |
Взводить то понятно где, не понятно как сбросить при переключении в другое... |
Каждое представление может переопределять контекст. |
При переключении между уже открытыми представлениями такого не будет, т.к. представление при таком переключении заново не переоткрывается. |
|
 |
devor Профи
Вступление в Клуб: 13.02.2012
|
Вт Сен 30, 2014 07:07   |
|
Полезность: Нет оценки
|
Alkov пишет: | devor пишет: | Alkov пишет: | devor пишет: | Alkov пишет: |
Контекст по вышеописанному не подходит , т.к. не знаю как сделать изменение контекста при покидании/переключении из нашего представления в другое и обратно. |
На представление повесить операцию-фильтр, где взводить контекст или переменные. |
Взводить то понятно где, не понятно как сбросить при переключении в другое... |
Каждое представление может переопределять контекст. |
При переключении между уже открытыми представлениями такого не будет, т.к. представление при таком переключении заново не переоткрывается. |
Значит разные представления должны свой контекст заполнять. И тогда операция будет знать, какие представления (проверки) уже выполнены. |
|
 |
Alkov Профи
Вступление в Клуб: 23.09.2010
|
Вт Сен 30, 2014 08:10   |
|
Полезность: Нет оценки
|
devor пишет: | Alkov пишет: | devor пишет: | Alkov пишет: | devor пишет: | Alkov пишет: |
Контекст по вышеописанному не подходит , т.к. не знаю как сделать изменение контекста при покидании/переключении из нашего представления в другое и обратно. |
На представление повесить операцию-фильтр, где взводить контекст или переменные. |
Взводить то понятно где, не понятно как сбросить при переключении в другое... |
Каждое представление может переопределять контекст. |
При переключении между уже открытыми представлениями такого не будет, т.к. представление при таком переключении заново не переоткрывается. |
Значит разные представления должны свой контекст заполнять. И тогда операция будет знать, какие представления (проверки) уже выполнены. |
Это ничего не даст, операция узнает какие представления открыты , но не из какого она запущена. |
|
 |
Random Эксперт
Вступление в Клуб: 27.06.2011
|
Вт Сен 30, 2014 09:36   |
|
Полезность: Нет оценки
|
Alkov пишет: | ...
Это ничего не даст, операция узнает какие представления открыты , но не из какого она запущена. |
А если снабдить разные представления разными идентификаторами?
например, одно - чётными, другое - нечётными.
select id*2+1 :id
...
и
select id*2+1 :id
..
И в операции уже делать анализ?
Только там у операций уже специфичные флаги должны быть выставлены. |
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|