|  30.03.2016, 19:06 | #1 | 
| Участник | дисплей-метод не срабатывает 
			
			Добрый день!  Есть форма, на ней датасорс. На форме есть контролы, подвязанные к датасорсу. В таблице есть display-метод, который должен срабатывать при смене значения в некотором поле. На форме есть грид. В гриде том есть контрол, через который меняется значение. И есть контрол, привязанный к дисплей-методу. В гриде все работает, все сменяется, дисплей метод отрабатывает. НО (!) если контролы оформить не в грид, а отдельно - дисплей-метод не срабатывает автоматически! срабатывает только если щелкнуть в контрол с дисплей-методом.... в гриде, повторюсь, все работает... Поиском по форуму нашлось подобное, но к сожалению мою проблему ответы не решили. | 
|  | 
|  30.03.2016, 19:32 | #2 | 
| Участник | Цитата: display-метод срабатывает при попытке отрисовать поля записи. display-метод не срабатывает и не вызывается ядром при смене значения. винда очень сильно кэширует отображаемые участки экрана и не дает команду перерисовать их, если нет грида. а грид отрисовывается очень часто, слишком часто. | 
|  | 
|  30.03.2016, 19:39 | #3 | 
| Участник | Цитата: эти методы позволяет запретить перерисовку формы и контрола. делайте element.redraw или myControl.updateWindow чтобы принудительно заставить аксапту перерисовать окно или контрол | 
|  | 
|  30.03.2016, 20:21 | #4 | 
| Боец | Цитата: Если уж стучать в бубен, то лучше так: P.S.: Да, если ничего не путаю, для версии AX < 2009, "нажимать" нужно F5, для тех что по-выше "Ctrl+F5". Последний раз редактировалось DSPIC; 30.03.2016 в 20:31. | 
|  | |
| За это сообщение автора поблагодарили: mazzy (2). | |
|  30.03.2016, 20:29 | #5 | 
| Участник | Цитата: 
		
			Сообщение от DSPIC
			   Если уж стучать в бубен, то лучше так: | 
|  | 
|  30.03.2016, 20:50 | #6 | 
| Участник | 
			
			После redraw у меня форма не прорисовывается полностью, странно работает...  myControl.updateWindow не отработал вообще. А F5 если "нажимаю" на методе modified поля, то оно возвращает прежнее значение этого поля , сперва надо write принудительно сделать? При том если я сворачиваю-разворачиваю даже группу с этим полем или щелкая по названию группы даже, то все перерисовывается отлично. Какую-то правильную надо перерисовку. | 
|  | 
|  30.03.2016, 21:34 | #7 | 
| Участник | Цитата: можно конечно начать обновлять датасорс при помощи table_ds.refresh() или table_ds.refreshEx() https://msdn.microsoft.com/en-us/lib...e.refresh.aspx эти методы вроде даже к базе не обращаются. но они действует на все поля датасорса. + про обновление с данными (прикольный комментарий) https://msdn.microsoft.com/en-us/library/hh812104.aspx | 
|  | 
|  30.03.2016, 21:49 | #8 | 
| Участник | Цитата: 
		
			Сообщение от mazzy
			   а какая версия аксапты и виндов? странно. можно конечно начать обновлять датасорс при помощи table_ds.refresh() или table_ds.refreshEx() https://msdn.microsoft.com/en-us/lib...e.refresh.aspx эти методы вроде даже к базе не обращаются. но они действует на все поля датасорса. + про обновление с данными (прикольный комментарий) https://msdn.microsoft.com/en-us/library/hh812104.aspx | 
|  | 
|  31.03.2016, 13:21 | #9 | 
| Участник | 
			
			По ссылке, приведенной DSPIC в конце той темы кеширование и вычисление display метода X++: MyTable_ds.cacheCalculateMethod(tablemethodstr(MyTable, methodName));
MyTable_ds.refresh();PS: MyTable_ds - это стандартное имя, которое формируется автоматически, путем добавления окончания "_ds" к имени указанному как DataSource формы Например, если у Вас в DataSource в качестве имени указано InventTable, то в методах формы к этому DataSource можно обращаться через переменную InventTable_ds. 
				__________________ - Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... | 
|  | 
|  04.04.2016, 21:29 | #10 | 
| Участник | 
			
			можно взглянуть на сам метод?
		 
				__________________ Felix nihil admirari | 
|  | 
|  05.04.2016, 21:12 | #11 | 
| Участник | 
			
			public display QTY () { qty ret ; ret = this.MaxVolume - this.MinVolume return ret; } в гриде сразу отрабатывает, в отдельном поле на методе после принудительного ds_write(). | 
|  | 
|  08.04.2016, 08:22 | #12 | 
| Участник | |
|  |