|  09.06.2006, 08:08 | #1 | 
| Участник |  Проблема с Edit методом 
			
			На таблице пишу edit метод для заполнения поля в Grid: Код: edit UM_QtyInPakage QtyInPakage(boolean _set, UM_QtyInPakage _val)
{
    if (!_set)
    {
        return UnitConvert::find(this.itemID,"Шт","М").Factor;
    }
    return _val;
}Код: return _val; Код: return UnitConvert::find(this.itemID,"Шт","М").Factor; | 
|  | 
|  09.06.2006, 08:53 | #2 | 
| Участник |   Цитата: 
		
			Сообщение от Sada
			
			 PHP код: 
			Или я чего-то не понимаю?   Последний раз редактировалось PavelSR; 09.06.2006 в 09:11. | 
|  | 
|  09.06.2006, 08:54 | #3 | 
| Программатор | 
			
			у меня на форме   не учёл, что вы пишите на табле... Последний раз редактировалось Sada; 09.06.2006 в 08:57. | 
|  | 
|  09.06.2006, 09:08 | #4 | 
| Участник | 
			
			И как мне быть?   | 
|  | 
|  09.06.2006, 09:16 | #5 | 
| Программатор | 
			
			А если на форме Edit метод написать? Я тут не силен, где лучше а где нет, но рассмотрите такой вариант.
		 Последний раз редактировалось Sada; 09.06.2006 в 09:18. | 
|  | 
|  09.06.2006, 09:21 | #6 | 
| Участник | 
			
			Не совсем понятно что вы хотите получить - изменения в вашем методе нигде не сохранются и после обновления датасорурса они пропадут
		 
				__________________ Axapta v.3.0 sp5 kr2 | 
|  | 
|  09.06.2006, 09:34 | #7 | 
| Участник | Цитата: 
		
			Сообщение от Sada
			
			 А если на форме Edit метод написать? Я тут не силен, где лучше а где нет, но рассмотрите такой вариант. Код: edit UM_QtyInPakage QtyInPakage(boolean _modif,  UM_QtyInPakage _val)
{
    if (!_modif)
    {
        if(curQtyInPakage)
            return curQtyInPakage;
        return UnitConvert::find(UM_ConvertBladingLineTable.itemID,"Шт","М").Factor;
    }
    curQtyInPakage = _val;
    return _val;
} | 
|  | 
|  09.06.2006, 09:39 | #8 | 
| Программатор | Цитата: 
		
			Сообщение от PavelSR
			
			 На форме написал edit метод: Код: edit UM_QtyInPakage QtyInPakage(boolean _modif,  UM_QtyInPakage _val)
{
    if (!_modif)
    {
        if(curQtyInPakage)
            return curQtyInPakage;
        return UnitConvert::find(UM_ConvertBladingLineTable.itemID,"Шт","М").Factor;
    }
    curQtyInPakage = _val;
    return _val;
}Этот метод (пост я стёр, так как не подходит, но вы успели его процитировать  ) я писал на тот случай, когда не понятно почему форма вызывалась два раза (а то и три), вам он не подходит, напишите обычный Edit метод и должно все заработать. PHP код: 
			 | 
|  | 
|  09.06.2006, 09:50 | #9 | 
| Участник | Цитата: 
		
			Должно работать.
		
	 | 
|  | 
|  09.06.2006, 09:59 | #10 | 
| Программатор | 
			
			Поставте счетчик  .Если вызывается первый раз то чистим глобальную переменную и потом её запоминаем, если второй раз то возвращаем её и счетчик сбросили. Это конечно мог придумать только мой ивращенный мозг, но на вскидку ничего ЭЛЕГАНТНОГО не лезет     | 
|  | 
|  09.06.2006, 10:12 | #11 | 
| Участник | 
			
			Думаю нада так: завести в таблице поле типа UM_QtyInPakage, например бум звать его QtyInPakage //---> edit UM_QtyInPakage QtyInPakage(boolean _set, UM_QtyInPakage _val) { if (_set) { this.QtyInPakage = UnitConvert::find(this.itemID,"Шт","М").Factor; } return this.QtyInPakage; } //<-- по моему так должно быть PS: Двойной вызов это нормально, первый раз когда вы изменяете значение, второй когда форма хочет перерисовать контрол. Последний раз редактировалось Jony; 09.06.2006 в 10:15. | 
|  | 
|  09.06.2006, 10:27 | #12 | 
| Участник |   
			
			Честно говоря, непонятно, чего вы пытаетесь получить вашим методом. Edit методы используются для того, чтобы отображать значение, к примеру, не из вашей таблицы датасорса, и чтобы при его изменении можно было произвести более сложное изменение. У вас же ничего не меняется. Возможно вам просто нужен display method? А если вам таки нужно что-то изменять, тогда напишите что. Сейчас же ваш метод отрабатывает полностью верно - при изменении вызывается метод с параметром _set = true. а после этого сразу же он вызывается с параметром _set = false; Разберитесь, короче, что вы хотитет получить от этого метода | 
|  | 
|  09.06.2006, 10:55 | #13 | 
| Участник | 
			
			Я все понял...  Действително я зря пытался использовать edit метод... Задача была следующая: в Grid'е есть поле ItemId от которого зависят некоторые другие... при выборе кода номенклатуры должны измениться зависимые от него с последующей возможностью редактирования... Я изменил поле непосредственно в источнике данных, перекрыв метод modified... в контроле ItemId.   | 
|  | 
|  | 
|  Похожие темы | ||||
| Тема | Ответов | |||
| проблема с display методом | 6 | |||
| Проблема с EDIT методом и гридом | 1 | |||
| Помогите разобраться с edit-методом | 4 | |||
| Грабли с наследником и edit-методом | 5 | |||
| 
 |