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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 13.07.2004, 14:59   #1  
Shirmin Oleg is offline
Shirmin Oleg
Участник
 
89 / 35 (2) +++
Регистрация: 26.03.2004
display метод на форме
Есть форма с одним dataSourc'oм, на dataSourc'e создан display метод:
PHP код:
display SettleStatus_ZZZ payment_settlestatus()
{
  
SettleStatus_ZZZ settlestatus;
  
CustTrans _custTrans this.cursor();
  if(
_custTrans.Closedsettlestatus SettleStatus_ZZZ::FullSettle;
  else if(!
_custTrans.Closed && _custTrans.SettleAmountCur != 0settlestatus SettleStatus_ZZZ::NotFullSettle;
  else if(!
_custTrans.Closed && _custTrans.SettleAmountCur == 0settlestatus SettleStatus_ZZZ::NotSettle;

  return 
settlestatus;

Т.е, мне нужно последовательно перебрать записи, но в отладчике видно, что строка, получаемая по
PHP код:
 this.cursor(); 
всегда - первая строка.
Подскажите, пожалуйста, как получить доступ к строке, которая выводится в Grid на момент срабатывания метода.
Старый 13.07.2004, 15:03   #2  
Лютый is offline
Лютый
Участник
Аватар для Лютый
 
18 / 10 (1) +
Регистрация: 12.07.2004
Адрес: Екатеринбург
display SettleStatus_ZZZ payment_settlestatus(CustTrans _custTrans)
{
SettleStatus_ZZZ settlestatus;
if(_custTrans.Closed) settlestatus = SettleStatus_ZZZ::FullSettle;
else if(!_custTrans.Closed && _custTrans.SettleAmountCur != 0) settlestatus = SettleStatus_ZZZ::NotFullSettle;
else if(!_custTrans.Closed && _custTrans.SettleAmountCur == 0) settlestatus = SettleStatus_ZZZ::NotSettle;

return settlestatus;
}

Axapta автоматически передаст параметр в display метод
Старый 13.07.2004, 15:06   #3  
axLog is offline
axLog
Участник
 
286 / 10 (1) +
Регистрация: 01.03.2004
Что-то я не понял, у Вас датасорс именно CustTrans ? таки не надо тогда никаких this.cursor() !
Старый 13.07.2004, 15:11   #4  
Shirmin Oleg is offline
Shirmin Oleg
Участник
 
89 / 35 (2) +++
Регистрация: 26.03.2004
Так тоже не получается... То, что передает Ахарта - это опять только первая строка.
Старый 13.07.2004, 15:24   #5  
dn is offline
dn
Участник
Самостоятельные клиенты AX
 
486 / 159 (6) ++++++
Регистрация: 26.03.2003
Адрес: Москва
А можно всё-таки уточнить задачу?
Если нужно, чтобы корректно выводилось дисплей поле в Grid, то в дисплей методе расположенном на источнике данных необходимо явно указать параметр - табличную переменную. Что в принципе уже и написали.
А если задача
Цитата:
последовательно перебрать записи
, то может стоит использовать while select ?..
Старый 13.07.2004, 15:31   #6  
dn is offline
dn
Участник
Самостоятельные клиенты AX
 
486 / 159 (6) ++++++
Регистрация: 26.03.2003
Адрес: Москва
Отладчик плохо работает с дисплей методом. Он зацикливается на обновлении первой строки. Попробуй выводить в инфолог информацию о строке, без использования отладчика.
Старый 13.07.2004, 15:38   #7  
Shirmin Oleg is offline
Shirmin Oleg
Участник
 
89 / 35 (2) +++
Регистрация: 26.03.2004
Уточняю: при заполнении Grid'a записями нужно в этих самых записях (которые ещё не отображены) посмотреть некоторые поля, и в зависимости от их значений установить значание переменной, которая возвращается методом.
Под "последовательно перебрать записи" я подразумевал что в момент вывода строки можно же как-то получить к ней доступ, а не перебор "ручками".
Прошу прощения за некорректность формулировки.
Старый 13.07.2004, 15:47   #8  
dn is offline
dn
Участник
Самостоятельные клиенты AX
 
486 / 159 (6) ++++++
Регистрация: 26.03.2003
Адрес: Москва
Цитата:
Изначально опубликовано Shirmin Oleg
Уточняю: при заполнении Grid'a записями нужно в этих самых записях (которые ещё не отображены) посмотреть некоторые поля, и в зависимости от их значений установить значание переменной, которая возвращается методом.
Отображаемая запись как раз и будет в табличной переменной, указанной в качестве параметра метода. Обращайся на здоровье к её полям внутри своего метода.
Старый 13.07.2004, 15:55   #9  
Shirmin Oleg is offline
Shirmin Oleg
Участник
 
89 / 35 (2) +++
Регистрация: 26.03.2004
Цитата:
Отладчик плохо работает с дисплей методом.
Infolog показывает то же самое - recId у записи не меняется.
Цитата:
Отображаемая запись как раз и будет в табличной переменной, указанной в качестве параметра метода. Обращайся на здоровье к её полям внутри своего метода.
Запись есть, но это всегда первая запись. И у всех записей, кот. выведены в Grid значение display поля одно и то же - как у первой записи. А если выделить другую запись, то для неё выведется правильное значение, но оно же появится и для всех других.
Старый 13.07.2004, 16:04   #10  
dn is offline
dn
Участник
Самостоятельные клиенты AX
 
486 / 159 (6) ++++++
Регистрация: 26.03.2003
Адрес: Москва
Попробуй перезайти в Аксапту, почистить кэш и т.п.
Короче это должно работать как ни крути ...
p.s.
Посмотри как на форме LedgerTable реализован метод accountBalance()
Старый 13.07.2004, 16:30   #11  
Shirmin Oleg is offline
Shirmin Oleg
Участник
 
89 / 35 (2) +++
Регистрация: 26.03.2004
А теперь, внимание, правильный ответ:

PHP код:
display SettleStatus_ZZZ payment_settlestatus(CustTrans _custTrans)
{
  
SettleStatus_ZZZ settlestatus;

  if(
_custTrans.Closedsettlestatus SettleStatus_ZZZ::FullSettle;
  else if(!
_custTrans.Closed && _custTrans.SettleAmountCur != 0settlestatus SettleStatus_ZZZ::NotFullSettle;
  else if(!
_custTrans.Closed && _custTrans.SettleAmountCur == 0settlestatus SettleStatus_ZZZ::NotSettle;
  
  return 
settlestatus;

Всем спасибо за Ваши ответы.
Старый 13.07.2004, 16:58   #12  
dn is offline
dn
Участник
Самостоятельные клиенты AX
 
486 / 159 (6) ++++++
Регистрация: 26.03.2003
Адрес: Москва
;)
Ну и в чем же отличие от ответа во втором постинге этой ветки?
Теги
display метод, x++

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Grid и display-метод Russland DAX: Программирование 20 09.04.2007 09:25
Display метод на форме PavelSR DAX: Программирование 15 01.06.2006 13:50
Можно ли в display методе узнать для какого FormControl'а этот метод вызван? Dudnik Anton DAX: Программирование 3 01.02.2006 12:22
display метод с параметром Андре DAX: Программирование 5 11.01.2006 19:04
Display-метод формы Paul_ST DAX: Программирование 6 11.02.2004 12:14

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

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

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