|  12.08.2014, 16:15 | #1 | 
| Участник | Заполнения при изменении)) 
			
			Добрый день!!)) Ребята не подскажете как написать метод чтобы поле ItemName заполнялось при изменении ItemId??  Или подскажите где мне можно посмотреть пример этого метода? | 
|  | 
|  12.08.2014, 16:24 | #2 | 
| Участник | Цитата: Один из примеров вот SalesLine.ItemName(). | 
|  | 
|  12.08.2014, 16:32 | #3 | 
| Участник | |
|  | 
|  12.08.2014, 16:47 | #4 | 
| Участник | |
|  | 
|  12.08.2014, 16:57 | #5 | 
| Участник | |
|  | 
|  12.08.2014, 17:08 | #6 | 
| Участник | Цитата: Но, если все уверены, что должны быть именно поля, можете посмотреть методы modifiedField на таблицах. Также подобное можно реализовать в методе modified для ItemId-field'а датасорса формы. UPD: Если будет принято решение реализации на таблице, то учтите, что реакция на изменение значения в поле ItemId будет производиться для всех форм, использующих эту таблицу как источник данных. Последний раз редактировалось Cardagant; 12.08.2014 в 17:19. | 
|  | 
|  12.08.2014, 18:36 | #7 | 
| Участник | 
			
			Если это только для одной формы, достаточно перекрыть метод modified на поле  Itemid датасорса и в нём заполнять itemname согласно itemid с помощью X++: InventTable::find(this.itemid); | 
|  | 
|  12.08.2014, 19:06 | #8 | 
| северный Будда | 
			
			Имейте в виду, что для формы с большим количеством строк любой дисплей-метод чреват тормозами
		 
				__________________ С уважением, Вячеслав | 
|  | 
|  12.08.2014, 23:08 | #9 | 
| Участник | Цитата: А чтоб улучшить производительность, если потребуется, на мой взгляд, методы, возвращающие данные такого типа можно добавить в кеш. | 
|  | 
|  13.08.2014, 10:08 | #10 | 
| Ищущий знания... | Цитата: В Ax2012 можно накладывать фильтр по display'ным полям. 
				__________________ "Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем | 
|  | |
| За это сообщение автора поблагодарили: Cardagant (1). | |
|  13.08.2014, 13:43 | #11 | 
| MCTS | 
			
			Насколько эффективна (скорость фильтрации) фильтрация по этим полям по сравнению с обычными? Я ведь так понимаю, что индексов по этим полям нет и всегда идет сканирование полной таблицы с дополнительными вычислениями этого поля?
		 
				__________________ I could tell you, but then I would have to bill you. | 
|  | 
|  13.08.2014, 13:56 | #12 | 
| Молодой, подающий надежды | Цитата: 2012 R2 CU7 | 
|  | 
|  14.08.2014, 07:52 | #13 | 
| Участник | |
|  | 
|  14.08.2014, 10:44 | #14 | 
| Ищущий знания... | Цитата: Вьюхи можно добавлять на формы. В этоге имеем фильтрацию   
				__________________ "Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем | 
|  | 
|  14.08.2014, 14:11 | #15 | 
| Участник | |
|  | 
|  14.08.2014, 14:23 | #16 | 
| Молодой, подающий надежды | Цитата: фильтрации по display'ным полям в Ах как не было, так и нет. | 
|  | |
| За это сообщение автора поблагодарили: lev (2). | |
|  14.08.2014, 18:05 | #17 | 
| Ищущий знания... | Цитата: Т.е. есть view в которой две таблицы. В итоге фильтроваться можно по полям обеих таблиц. Проект с простым примером прилагаю (проект для AX2012). 
				__________________ "Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем | 
|  | 
|  14.08.2014, 19:34 | #18 | 
| Ищущий знания... | Цитата:  Итого, если не вникать что, зачем и почему, а просто ответить на Ваш вопрос, тогда: 1. Перекройте на вашей таблице метод modifiedField(); 2. В нем после super() напишите код: X++: switch (fieldExt2Id(_fieldId)) { case fieldnum(MyTable, ItemId): this.ItemName = InventTable::find(this.ItemId).NameAlias; break; } теперь поле ItemName изменяется при изменении поля itemId. 
				__________________ "Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем | 
|  | 
|  14.08.2014, 22:36 | #19 | 
| Участник | Цитата: 
		
			Сообщение от lev
			   Что то тема ушла от истоков   Итого, если не вникать что, зачем и почему, а просто ответить на Ваш вопрос, тогда: 1. Перекройте на вашей таблице метод modifiedField(); 2. В нем после super() напишите код: X++: switch (fieldExt2Id(_fieldId)) { case fieldnum(MyTable, ItemId): this.ItemName = InventTable::find(this.ItemId).NameAlias; break; } теперь поле ItemName изменяется при изменении поля itemId. | 
|  | 
|  15.08.2014, 08:44 | #20 | 
| Ищущий знания... | Цитата: Если у нас в таблице есть поле, зависимое от другого поля, то его надо заполнять из любых форм! А то получится на форме один таблицу заполняю есть, например, наименование номенклатуры, а на другой форме нет. Это бред. Никакой целостности данных. Более того, писать код на формах это BadPractice (только в крайних случаях). 
				__________________ "Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем | 
|  | 
|  | 
| Опции темы | Поиск в этой теме | 
| Опции просмотра | |
| 
 |