|  01.06.2006, 12:28 | #1 | 
| Участник | Display метод на форме 
			
			Создаю дисплей метод на форме: Код: display InventQty pQtyOrdered()
{
   return SalesLine.QtyOrdered;
}Связал его с контролом в Grid, получаю одинаковые значения поля во всех строка на форме... что не так? Видимо Код: SalesLine.QtyOrdered | 
|  | 
|  01.06.2006, 12:35 | #2 | 
| Moderator | 
			
			Читайте внимательнее мануал, синтаксис display-методов на форме. display InventQty pQtyOrdered(SalesLine _salesLine) { return _salesLine.QtyOrdered; } 
				__________________ Андрей. | 
|  | 
|  01.06.2006, 12:41 | #3 | 
| NavAx | 
			
			Еще можете разместить этот метод прямо на таблице, тогда будет возможность использовать его и на других формах.
		 | 
|  | 
|  01.06.2006, 12:41 | #4 | 
| Участник | Цитата: 
		
			Сообщение от Dron AKA andy
			
			 Читайте внимательнее мануал, синтаксис display-методов на форме. display InventQty pQtyOrdered(SalesLine _salesLine) { return _salesLine.QtyOrdered; } Кстати, указанный вариант также не работает... | 
|  | 
|  01.06.2006, 12:45 | #5 | 
| Moderator | 
			
			Так его и надо делать на источнике данных, или я что-то не понял? По какой строке SalesLine Вы хотите получить данные, если делаете его на форме, а не на источнике? 
				__________________ Андрей. | 
|  | 
|  01.06.2006, 12:45 | #6 | 
| Программатор | 
			
			А почему просто не прописать в свойствах контрола таблицу и её поле? и поставить AllowEdit в No?
		 | 
|  | 
|  01.06.2006, 12:45 | #7 | 
| Участник | Цитата: 
		
			Сообщение от LEX
			
			 Еще можете разместить этот метод прямо на таблице, тогда будет возможность использовать его и на других формах. | 
|  | 
|  01.06.2006, 12:52 | #8 | 
| Участник | 
			
			Ошибка в том, что если вы пытаетесь добавить дисплей метод в grid, то использовать следует метод на датасорсе, а метод на форме с табличной перемнной salesLine будет во всех строках Grid-a отражать значение из выделенной в данный момент строки.
		 | 
|  | 
|  01.06.2006, 12:53 | #9 | 
| Участник | Цитата: 
		
			Сообщение от Dron AKA andy
			
			 Так его и надо делать на источнике данных, или я что-то не понял? Цитата: 
		
			Сообщение от Dron AKA andy
			
			 По какой строке SalesLine Вы хотите получить данные, если делаете его на форме, а не на источнике? | 
|  | 
|  01.06.2006, 12:54 | #10 | 
| Участник |   
			
			Ошибка в том, что вне зависимости от такого в каком месте формы вы напишите display-method, если вы будете обращаться к датасорсу по имени (SalesLine) - то будете всегда получать текущую выбранную строку _ (так оно и должно работать) Поэтому при написании дисплей методов на форме - их необходимо писать на датасорсе, и передавать параметром строку SalesLine - это будет прорисовываемая в данный момент строка - и сразу получите разные значения для строк. А если писать на таблице, то вообще проблем не будет. Успехов | 
|  | |
| За это сообщение автора поблагодарили: PavelSR (1). | |
|  01.06.2006, 12:55 | #11 | 
| Участник | 
			
			Руководство разработчика: "Note You must use display on a form data source method when the return value is to be shown on a grid control." | 
|  | 
|  01.06.2006, 13:00 | #12 | 
| Участник | Цитата: 
		
			Сообщение от PavelSR
			
			 На форме я его делаю для того, чтобы сделать кэширование в ручную (с использованием класса Map).... | 
|  | 
|  01.06.2006, 13:10 | #13 | 
| Участник | Цитата: 
		
			Сообщение от Gad
			
			 Если используется "ручное" кэширование, то зачем вам переменная salesLine для вывода значения? Если есть это кэширование (не понял что за зверь), то нужно наверное данные из Map и читать иначе зачем он тогда нужен?   | 
|  | 
|  01.06.2006, 13:16 | #14 | 
| Участник | 
			
			Тож говорю - переменная salesLine ссылается на активную строку грида. Всегда. Для каждой прорисовывоемой строки. Соответственно и значения все одинаковые. И другого и быть не может.   | 
|  | 
|  01.06.2006, 13:36 | #15 | 
| Участник | Цитата: 
		
			Сообщение от PavelSR
			
			 Кстати, указанный вариант также не работает... | 
|  | 
|  01.06.2006, 13:50 | #16 | 
| Участник |   Цитата: 
		
			Сообщение от Gad
			
			 Кстати, если указанный вариант тоже не работает, может дело не в дисплей методе, а в том, что например на контроле кроме поля DataMethod, не заполнено поле DataSourse, которое для метода на форме заполнять не надо, а вот для метода на датасорсе очень даже надо.  Отдельное спасибо kashperuk за подробные комментарии! | 
|  | 
|  | 
|  Похожие темы | ||||
| Тема | Ответов | |||
| Grid и display-метод | 20 | |||
| display-метод | 9 | |||
| Можно ли в display методе узнать для какого FormControl'а этот метод вызван? | 3 | |||
| display метод с параметром | 5 | |||
| display метод на форме | 11 | |||
| 
 |