| Предыдущая тема :: Следующая тема   | 
	 
	
	
		| Автор | 
		Сообщение | 
	 
	
		vek21 Участник со стажем
 
  Вступление в Клуб: 20.09.2007
  | 
		
			
				 Ср Авг 19, 2015 15:07   Перерисовка грида | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				Уважаемые знатоки!
 
Почему-то не наблюдаю в документации по гриду никаких процедур перерисовки оного. На форме грид, под ним отдельная кнопка редактирования, по нажатию которой вызывается операция редактирования текущей записи грида(это важно - отдельная операция, а не редактирование строки грида прямо на экранной форме!). Так вот, после окончания операции редактирования на гриде никаких изменений не видно, несмотря на вызов процедуры RefreshGrid типа вот такой:
 
 
 	  | Код: | 	 		  
 
procedure RefreshGrid(zay ref [KOU_DECL_ZALOG]) is
 
begin
 
   V_ZALOGS.delete;
 
   v_index := 0;
 
   for (select x(x: ID)
 
        in ::[ZAL_BODY_REF] all
 
        where x%collection = zay.[ZALOGS]
 
       )
 
   loop
 
      v_index := v_index + 1;
 
      V_ZALOGS(v_index) := x.ID;
 
   end loop;
 
end;
 
 | 	  
 
Здесь V_ZALOGS - это тот самый грид...
 
А вот если закрыть операцию и снова в нее зайти - в гриде все изменения становятся видны!
 
Как добиться того, чтобы результаты были видны сразу после редактирования, может, кто-то знает? | 
			 
		  | 
	 
	
		  | 
	 
	
		yaffil Профи
 
  Вступление в Клуб: 18.08.2011
  | 
		
			
				 Ср Авг 19, 2015 15:16    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				| А если commit поставить перед end ? | 
			 
		  | 
	 
	
		  | 
	 
	
		vek21 Участник со стажем
 
  Вступление в Клуб: 20.09.2007
  | 
		
			
				 Ср Авг 19, 2015 16:00    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				| К сожалению, ничего не изменилось... Да и не должно было - в процессе работы RefreshGrid можно вывести в пайпу значения и увидеть, что они уже изменились... Но почему-то грид этого замечать не желает! | 
			 
		  | 
	 
	
		  | 
	 
	
		vek21 Участник со стажем
 
  Вступление в Клуб: 20.09.2007
  | 
		
			
				 Ср Авг 19, 2015 16:11    | 
				     | 
			 
			
				Полезность: 2 
  | 
			 
			
				Yes!
 
Сам нашел. Оказывается, прежде, чем вызывать RefreshGrid, надо сделать вызов Grid1.Clear (в клиент-скрипте). вот тогда RefreshGrid все честно перерисовывает   | 
			 
		  | 
	 
	
		  | 
	 
	
		 | 
	 
 
  
	 
	    
	   | 
	
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
  | 
   
 
		 |