| Предыдущая тема :: Следующая тема   | 
	
	
	
		| Автор | 
		Сообщение | 
	
	
		.СергейПанин Участник - экстремал
 
  Вступление в Клуб: 24.06.2008
  | 
		
			
				 Пт Июл 23, 2010 08:56   Контролы на форме | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				коллеги время суток доброе, подстажите советом.
 
можно ли обнулить значения определенных элементов на форме не перечисляя из по имени, что то типа
 
 	  | Код: | 	 		  
 
For Each Ctrl in FORM1.Controls
 
  Ctrl.Enabled = False
 
Next
 
 | 	  
 
только вместо Ctrl.Enabled = False
 
вбабахать что то типа Ctrl.Value = null | 
			 
		  | 
	
	
		  | 
	
	
		prog Эксперт
 
  Вступление в Клуб: 03.03.2008
  | 
		
			
				 Пт Июл 23, 2010 11:06    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				 	  | Код: | 	 		  
 
Form1.Caption = "Режим просмотра"
 
Form1.ScriptDisableForm(Form1)                  
 
CANCEL.Enabled = true
 
 | 	 
  | 
			 
		  | 
	
	
		  | 
	
	
		prog Эксперт
 
  Вступление в Клуб: 03.03.2008
  | 
		
			
				 Пт Июл 23, 2010 11:24    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				не внимательно вопрос прочитал  
 
Можно попробовать собирать скрипт запросом типа  	  | Код: | 	 		  | select VALIDATE_NAME||'.Value = null' from CONTROLS where METH_ID = '785083369' and control = 'TEXT' | 	  
 
а затем его выполнять
  Последний раз редактировалось: prog (Пт Июл 23, 2010 12:06), всего редактировалось 1 раз | 
			 
		  | 
	
	
		  | 
	
	
		ГлСП Профи
 
  Вступление в Клуб: 20.09.2007
  | 
		
			
				 Пт Июл 23, 2010 11:58    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				Посмотри библиотеку   CSMD,  конкретно процедуру fill_tbl, там расписано как добыть все контролы на  форме, а потом уже традиционным методом генерируешь VBScript  и потом в форме запускаешь его.  Хотя,  самой библиотеки должно быть достаточно, чтобы велосипед не изобретать .
 
 
 	  | Код: | 	 		  
 
/*--------------------------------------------------------------------------------------*/
 
-- Заполнение таблицы контролов экранной формы tbl для метода с id=form_id
 
procedure fill_tbl is
 
i integer;
 
val_n varchar2(64);
 
par_n varchar2(64);
 
-- cont_n varchar2(64);
 
type ctl is
 
   select c(c.Validate_name : v,
 
          c.Qualifier : q,
 
          c.control : c)
 
   in controls%rowtype   where c.meth_id=Form_id;
 
begin
 
   i:=0;
 
   for v in cursor ctl
 
   loop   val_n :=v.v; par_n :=v.q;
 
/*         loop
 
         i:=utils.hash_value(par_n);
 
         if not tbl.exists(i) then exit;
 
         end if;
 
      end if;*/
 
      tbl(i).v_name:=val_n; tbl(i).p_name:=par_n;
 
--         debug_pipe(i||' '||tbl(i).v_name||' '||tbl(i).p_name);
 
      i:=i+1;
 
   end loop;
 
end;
 
 
 | 	  
 
 
 Вот ссылочка, где описано, как запускасть скрипты на форме  | 
			 
		  | 
	
	
		  | 
	
	
		.СергейПанин Участник - экстремал
 
  Вступление в Клуб: 24.06.2008
  | 
		
			
				 Пт Июл 23, 2010 16:32    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				Задачка чуть усложнилась    
 
контролы на форме перебираю.. все отлично..
 
а можно ли таким же макаром перебирать переменные и параметры операций и делать их в NULL ? | 
			 
		  | 
	
	
		  | 
	
	
		prog Эксперт
 
  Вступление в Клуб: 03.03.2008
  | 
		
			
				 Пт Июл 23, 2010 16:42    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				В библиотеке SET_VARS есть макрос &set_vars. Он используется для для установки глобальных переменных в операции имеющей экранную форму.
 
По аналогии решаешь свою задачу. Кратко это выглядит так:
 
1) некая функция возвращает кусок PL/PLUS кода
 
2) объявляется макрос pragma macro(xxx,'Z$YOU_OPER.gettext',execute);
 
3) в нужном месте макрос вызывается &xxx | 
			 
		  | 
	
	
		  | 
	
	
		.СергейПанин Участник - экстремал
 
  Вступление в Клуб: 24.06.2008
  | 
		
			
				 Пт Июл 23, 2010 16:47    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				 	  | prog пишет: | 	 		  |  установки глобальных переменных  | 	  
 
 
гы-гы-гы открываю set_vars и что вижу 
 
--Ограничение: НЕ ИСПОЛЬЗОВАТЬ МАКРОСЫ В ОПЕРАЦИЯХ-РАСШИРЕНИЯХ!         | 
			 
		  | 
	
	
		  | 
	
	
		ГлСП Профи
 
  Вступление в Клуб: 20.09.2007
  | 
		
			
				 Пн Июл 26, 2010 10:46    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				 	  | DC_Sergey пишет: | 	 		  Задачка чуть усложнилась    
 
контролы на форме перебираю.. все отлично..
 
а можно ли таким же макаром перебирать переменные и параметры операций и делать их в NULL ? | 	  
 
 
Параметры, наверно, можно выдернуть из системных таблиц ибсо,  а вот на счет списка переменных, то это уже наверно фантастика.  Тогда уже проще выдергивать текст операции, и парсить его. | 
			 
		  | 
	
	
		  | 
	
	
		prog Эксперт
 
  Вступление в Клуб: 03.03.2008
  | 
		
			
				 Пн Июл 26, 2010 12:45    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				 	  | ГлСП пишет: | 	 		   	  | DC_Sergey пишет: | 	 		  Задачка чуть усложнилась    
 
контролы на форме перебираю.. все отлично..
 
а можно ли таким же макаром перебирать переменные и параметры операций и делать их в NULL ? | 	  
 
 
Параметры, наверно, можно выдернуть из системных таблиц ибсо,  а вот на счет списка переменных, то это уже наверно фантастика.  Тогда уже проще выдергивать текст операции, и парсить его. | 	  
 
Вероятно, здесь речь шла о переменных,  объявляемых на закладке "Переменные", при редактировании операции... | 
			 
		  | 
	
	
		  | 
	
	
		ГлСП Профи
 
  Вступление в Клуб: 20.09.2007
  | 
		
			
				 Вт Июл 27, 2010 04:47    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				 	  | prog пишет: | 	 		   	  | ГлСП пишет: | 	 		   	  | DC_Sergey пишет: | 	 		  Задачка чуть усложнилась    
 
контролы на форме перебираю.. все отлично..
 
а можно ли таким же макаром перебирать переменные и параметры операций и делать их в NULL ? | 	  
 
 
Параметры, наверно, можно выдернуть из системных таблиц ибсо,  а вот на счет списка переменных, то это уже наверно фантастика.  Тогда уже проще выдергивать текст операции, и парсить его. | 	  
 
Вероятно, здесь речь шла о переменных,  объявляемых на закладке "Переменные", при редактировании операции... | 	  
 
 
Тогда их тоже можно выдернуть из описания операции. | 
			 
		  | 
	
	
		  | 
	
	
		 |