Можно определить из какого представления запущена опер-ия ? 
	  На страницу 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
 
..
 
 
И в операции уже делать анализ?
 
Только там у операций уже специфичные флаги должны быть выставлены. | 
			 
		  | 
	 
	
		  | 
	 
	
		 | 
	 
 
  
	 
	    
	   | 
	
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
  | 
   
 
		 |