| Предыдущая тема :: Следующая тема | 
	
	
		| Автор | Сообщение | 
	
		| Псевдоним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ой.
 
 | 
 |  | 
	
		|  | 
	
		|  |