AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 14.12.2012, 10:03   #1  
bodeaux is offline
bodeaux
Участник
Аватар для bodeaux
 
35 / 10 (1) +
Регистрация: 08.10.2012
Адрес: Екатеринбург
Передача параметров в display метод
Здравствуйте.
Подскажите, пожалуйста, возможна ли передача параметров в табличный метод, который используется как дисплейный на некоторой форме.
__________________
Axapta 3.0 SP 4
Старый 14.12.2012, 10:08   #2  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,438 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Если у этих параметров сделать значения по умолчанию, то тогда при вызове этого метода из кода в него можно будет передать нужные параметры, а при работе метода в дисплейном режиме будут использованы значения по умолчанию. Или вы что-то другое имеете в виду?
За это сообщение автора поблагодарили: bodeaux (1).
Старый 14.12.2012, 10:09   #3  
macklakov is offline
macklakov
NavAx
Аватар для macklakov
 
2,233 / 974 (37) +++++++
Регистрация: 03.04.2002
Цитата:
Сообщение от bodeaux Посмотреть сообщение
Здравствуйте.
Подскажите, пожалуйста, возможна ли передача параметров в табличный метод, который используется как дисплейный на некоторой форме.
Теоретически можно, наверное. Но не стоит. Если поведение метода зависит от состояниф формы, то и определяться он должен на форме. Иначе его же потом могут на другую форму или отчет drag&drop-нуть. И эта форма не будет знать, что нужно какие-то параметры передавать.
__________________
Isn't it nice when things just work?
За это сообщение автора поблагодарили: bodeaux (1).
Старый 14.12.2012, 10:15   #4  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
а edit-метод - не то?

Скажите задачу - легче будет вам помочь. Стойкое ощущение, что куда-то не туда роете.

С Уважением,
Георгий
За это сообщение автора поблагодарили: bodeaux (1).
Старый 14.12.2012, 10:25   #5  
bodeaux is offline
bodeaux
Участник
Аватар для bodeaux
 
35 / 10 (1) +
Регистрация: 08.10.2012
Адрес: Екатеринбург
Цитата:
Сообщение от macklakov Посмотреть сообщение
Теоретически можно, наверное. Но не стоит. Если поведение метода зависит от состоянию формы, то и определяться он должен на форме. Иначе его же потом могут на другую форму или отчет drag&drop-нуть. И эта форма не будет знать, что нужно какие-то параметры передавать.
Да, согласен, что удобнее было повесить этот метод на DS формы.
Но при обращении вычислении значений поля, метод обращается к данным из курсора DS, следовательно, значения всех display-полей в столбце (при наличии нескольких отображенных строк) будут одинаковыми в каждый момент времени. Ясно, что необходимо, чтобы каждая ячейка вычислялась по своей строке, но я не знаю, как этого добиться, если display метод объявлен на DS формы.
Может быть, вы сможете объяснить, как добиться желаемого поведения.
__________________
Axapta 3.0 SP 4
Старый 14.12.2012, 10:29   #6  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,438 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от bodeaux Посмотреть сообщение
Да, согласен, что удобнее было повесить этот метод на DS формы.
Но при обращении вычислении значений поля, метод обращается к данным из курсора DS, следовательно, значения всех display-полей в столбце (при наличии нескольких отображенных строк) будут одинаковыми в каждый момент времени. Ясно, что необходимо, чтобы каждая ячейка вычислялась по своей строке, но я не знаю, как этого добиться, если display метод объявлен на DS формы.
Может быть, вы сможете объяснить, как добиться желаемого поведения.
Элементарно. Внутри дисплейного метода датосорса нужно работать не с текущим курсором а с тем курсором, который передаётся в дисплейный метод как входящий параметр
Старый 14.12.2012, 10:46   #7  
bodeaux is offline
bodeaux
Участник
Аватар для bodeaux
 
35 / 10 (1) +
Регистрация: 08.10.2012
Адрес: Екатеринбург
Цитата:
Сообщение от George Nordic Посмотреть сообщение
а edit-метод - не то?

Скажите задачу - легче будет вам помочь. Стойкое ощущение, что куда-то не туда роете.

С Уважением,
Георгий
Я хочу реализовать свой кэш значений, вычисленных display-методом. Поведение, реализуемое стандартным кэшированием методов на форме, не то, что хочется иметь в данном случае.

Чтобы табличная функция могла обратиться к кэшу, хочу передавать его с формы в качестве параметра.
__________________
Axapta 3.0 SP 4
Старый 14.12.2012, 11:02   #8  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,438 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Еще раз о Display-методах
Старый 14.12.2012, 11:05   #9  
bodeaux is offline
bodeaux
Участник
Аватар для bodeaux
 
35 / 10 (1) +
Регистрация: 08.10.2012
Адрес: Екатеринбург
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Элементарно. Внутри дисплейного метода датосорса нужно работать не с текущим курсором а с тем курсором, который передаётся в дисплейный метод как входящий параметр

Я правильно понимаю, что если в свойствах поля указаны
X++:
DataMethod: myMethod
DataSource:  myDS (  myTable)
, то объявление функции на myDS в виде

X++:
public real myMethod( myTable   currentMyTable){}
приведет к тому, что в переменную currentMyTable будет попадать курсор текущей записи?
__________________
Axapta 3.0 SP 4
Старый 14.12.2012, 11:10   #10  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,438 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от bodeaux Посмотреть сообщение
Я правильно понимаю, что если в свойствах поля указаны
X++:
DataMethod: myMethod
DataSource:  myDS (  myTable)
, то объявление функции на myDS в виде

X++:
public real myMethod( myTable   currentMyTable){}
приведет к тому, что в переменную currentMyTable будет попадать курсор текущей записи?
Текущей - в смысле, той значение которой в данный момент вычисляется. В отличии от значения DS, которым всегда будет являтся активная на данный момент строка.
Старый 14.12.2012, 11:16   #11  
bodeaux is offline
bodeaux
Участник
Аватар для bodeaux
 
35 / 10 (1) +
Регистрация: 08.10.2012
Адрес: Екатеринбург
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Покорнейше благодарю. Пользу от общения с вами сложно переоценить.
__________________
Axapta 3.0 SP 4
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Не обновляется display метод на форме kit22 DAX: Программирование 7 15.08.2012 11:04
Ax 3.0 SP 3. Интересный факт с передачей параметров во внутренний метод lev DAX: Программирование 1 02.12.2011 18:20
Display метод временной таблицы выполняется в компании DAT S.Kuskov DAX: Программирование 4 15.04.2011 20:11
Передача переменного числа параметров в метод lemchey_white DAX: Программирование 16 14.12.2009 21:21
Передача массива VARIANTов в Automation метод Maximin DAX: Программирование 0 09.10.2002 19:31

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 00:25.