| Предыдущая тема :: Следующая тема   | 
	
	
	
		| Автор | 
		Сообщение | 
	
	
		Псевдоним123 Участник - экстремал
 
  Вступление в Клуб: 05.06.2018
  | 
		
			
				 Чт Авг 22, 2019 10:37   закрыть форму операции | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				добрый день.
 
подскажите как сделать следующее:
 
запускается операция, из которой запускается вторая операция.
 
как при Отмене/Закрытии второй операции сделать так, чтобы вместе с ней закрывалась первая операция? | 
			 
		  | 
	
	
		  | 
	
	
		wolfio Участник - экстремал
 
  Вступление в Клуб: 22.10.2012
  | 
		
			
				 Чт Авг 22, 2019 10:51    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				привет
 
 
посмотри в сторону обработчика OnClose в клиент скрипте (дока Annex4 его описывает). По-моему его можно вызвать, хотя я проверял.
 
 
ну либо, если упростить, используй операцию выбора, которая вызывает операцию без формы, и сама закрывается по завершению вызванной операции. 
 
либо просто plpcall | 
			 
		  | 
	
	
		  | 
	
	
		Псевдоним123 Участник - экстремал
 
  Вступление в Клуб: 05.06.2018
  | 
		
			
				 Чт Авг 22, 2019 11:16    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				пример через plpcall можете показать?
 
 
пробовал так, но мне показывает ошибку, что повторный запуск невозможен...
 
 
 	  | Код: | 	 		  | stdio.put_line_buf('<% PLPCALL [тип].[операция](p_info => ''Cancel'') %>'); | 	 
  | 
			 
		  | 
	
	
		  | 
	
	
		wolfio Участник - экстремал
 
  Вступление в Клуб: 22.10.2012
  | 
		
			
				 Чт Авг 22, 2019 14:26    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				Если я верно понял, ты хочешь чтобы операция1 вызывала операцию2, а по завершении операции2, закрывалась и операция1, верно?
 
 
Если так, то plpcall код нужно писать в операции1, вызывая в ней операцию2. При этом тебе не нужно пробрасывать параметр Cancel или Ок, - она же отработать должна с логическим завершением. Ты ее просто вызываешь с нужными параметрами.
 
 
Если ты делаешь это на этапе валидации, через спец.контрол, то при вызове добавь выход просто, после вызова, и все. что то типа:
 
 
 	  | Код: | 	 		  
 
 
if p_info = 'run_another_oper' then
 
stdio.put_line_buf('<% PLPCALL..
 
rerurn;
 
end if;
 
 
 | 	  
 
 
ну я думаю как-то так должно работать. надо просто уже на код смотреть | 
			 
		  | 
	
	
		  | 
	
	
		markoff Участник - экстремал
 
  Вступление в Клуб: 09.06.2009
  | 
		
			
				 Чт Авг 22, 2019 15:23    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				Может так? 
 
В клиент скрипте прописать вызов операций через ScriptPlayEx PLPCALL 
 
в случае если во второй операций нажали cancel вернет 0 закрывайте операцию 
 
 
 	  | Код: | 	 		  res = Form1.ScriptPlayEx("<% PLPCALL %THIS%.[CONFIRM_COMMISS](%VAR%.V_CLIENT => '" + Number2.Text + "' ) %>")
 
if (res = 0) then
 
   Main = null
 
end if | 	 
  | 
			 
		  | 
	
	
		  | 
	
	
		Псевдоним123 Участник - экстремал
 
  Вступление в Клуб: 05.06.2018
  | 
		
			
				 Чт Авг 22, 2019 17:12    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				| а если не использовать PLPCALL, другими какими-либо способом возможно при закрытии операции 2 следом закрывалась и операция 1??? | 
			 
		  | 
	
	
		  | 
	
	
		wolfio Участник - экстремал
 
  Вступление в Клуб: 22.10.2012
  | 
		
			
				 Чт Авг 22, 2019 17:26    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				покажи код свой, хотя бы фрагмент вызова 2ой из первой.
 
или фрагмент, где ты хочешь ее вызвать.
 
 
а тебе нужна 2ая операция с формой именно? | 
			 
		  | 
	
	
		  | 
	
	
		Псевдоним123 Участник - экстремал
 
  Вступление в Клуб: 05.06.2018
  | 
		
			
				 Пт Авг 23, 2019 09:05    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				из первой операции вызывается вторая
 
 
 	  | Код: | 	 		  str_call   := '<% PLPCALL %THIS%.[CLIENT].[ARD_CHECK_ANKETA](%PARAM%.P_DEBUG => ''True'') %>';
 
stdio.put_line_buf(str_call); | 	 
  | 
			 
		  | 
	
	
		  | 
	
	
		wolfio Участник - экстремал
 
  Вступление в Клуб: 22.10.2012
  | 
		
			
				 Пн Авг 26, 2019 09:31    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				так вот и добавь выход из первой сразу
 
 
 	  | Код: | 	 		  
 
str_call   := '<% PLPCALL %THIS%.[CLIENT].[ARD_CHECK_ANKETA](%PARAM%.P_DEBUG => ''True'') %>'; 
 
stdio.put_line_buf(str_call);
 
return; --операция 1 тут закроется, при этом сообщение о запуске 2ой будет вычитано после закрытия формы 1ой.
 
 | 	 
  | 
			 
		  | 
	
	
		  | 
	
	
		 |