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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 03.07.2014, 13:19   #1  
at5454 is offline
at5454
Участник
 
61 / 10 (1) +
Регистрация: 29.05.2014
Изменение грида с виртуальными полями
Здравствуйте!
Есть грид на форме. После применения фильтров он выводит 10 строчек.
В гриде 2 поля: "каталожный номер" и "сумма".
Причем "каталожный номер" - реальное поле одной из таблиц датасорса,
А "сумма" - виртуальное поле грида полученное с помощью дисплей методов.
Так вот мне надо пробежаться циклом по этим 10 строчкам и там где
"каталожный номер"="06.11069-0179 " в поле "сумма" всадить значение "2514656".

Как же апдейтить эти виртуальные поля? По какому объекту пробегаться циклом?
К таблице? -никак она не содержит поля "сумма"
К гриду? - неуверен как это сделать(будет ли он показывать все поля в том числе виртуальные, будет ли он обрабатывать только 10 отфильтрованных строчек,)

Я Новичок,Дисплей методы читал и на форуме смотрел
Старый 03.07.2014, 13:52   #2  
Cardagant is offline
Cardagant
Участник
 
317 / 54 (2) ++++
Регистрация: 11.10.2011
То есть для определённого номера каталога Вам нужно выводить в поле сумма указанное значение, а остальные значения в этом поле будут пустыми?

Дисплей метод содержит функцию, которая возвращает значение требуемого типа в созданное поле на гриде формы (на форме в принципе) для каждой строки грида. Использование дисплей метода не подразумевает наличия циклов по записям, дисплей методы вычисляются на уровне AOS для каждой строки последовательно.

В контексте Вашего варианта это выглядит как хардкод, что не очень хорошо.
Старый 03.07.2014, 14:22   #3  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,429 / 1772 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Виртуальное поле грида полученное с помощью дисплей метода, другими словами - вычисляемое поле. Т.е значения этого поля вычисляются при помощи какой-то формулы/алгоритма. Что-бы повлиять на значение этого поля ("всадить", как вы выразились, туда другое значение) очевидно нужно либо изменить формулу/алгоритм расчета либо входные данные, которые используются расчетом.
Старый 03.07.2014, 14:27   #4  
tricky is offline
tricky
Участник
 
140 / 64 (3) ++++
Регистрация: 03.05.2005
Адрес: Гуково
Да не надо вам ничего всаживать.

У вас на датасоурсе или таблице есть display-метод. В теле этого метода нужно анализировать значение Каталожного номера, и возвращать из метода соответствующее значение.
Например:
X++:
display int myDisplayMethod(MyTable _myTable)
{
    Int ret;
;
    if (_myTable.< > == "06.11069-0179 ")
        ret = 100;
    else
        ret = 2514656;

    return ret;
}
А вот если поле "каталожный номер" принадлежит другой таблице (т.е. не тому источнику данных, где реализован display-метод, то значение этого номера нужно получить запросом внутри этого метода).

Как-то так )).
Старый 03.07.2014, 14:29   #5  
Cardagant is offline
Cardagant
Участник
 
317 / 54 (2) ++++
Регистрация: 11.10.2011
Цитата:
Сообщение от tricky Посмотреть сообщение
X++:
display int myDisplayMethod(MyTable _myTable)
{
    Int ret;
;
    if (_myTable.< > == "06.11069-0179 ")
        ret = 100;
    else
        ret = 2514656;

    return ret;
}

Как-то так )).
Вот такой хардкод я и имел ввиду
Старый 03.07.2014, 16:15   #6  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,429 / 1772 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от Cardagant Посмотреть сообщение
Вот такой хардкод я и имел ввиду
А ещё можно на мониторе маркером поверх выводимого значения своё написать ...

Какую задачу вы решаете? Вам нужно изменить информацию в системе или только на форме?
Старый 03.07.2014, 16:24   #7  
user_ax is offline
user_ax
Участник
Аватар для user_ax
 
599 / 39 (3) +++
Регистрация: 07.10.2012
Адрес: ZP
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение

Какую задачу вы решаете? Вам нужно изменить информацию в системе или только на форме?

Как я понимаю по предыдущим темам, он разбирается с этой проблемой => Обход грида в цикле
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
EP AX2009: сохранить параметры грида (фильтр, позиционирование) caper DAX: Программирование 9 01.04.2010 09:16
Дисплей метод таблицы который вызывается из ГРИДА 3oppo DAX: Программирование 10 23.05.2006 06:47
Выделение строк грида жирным шрифтом JohNick DAX: Программирование 1 26.04.2004 09:54
Кнопка быстрого рефреша грида Zabr DAX: Функционал 2 12.04.2004 16:19
Сколько раз вызывается DataMethod поля грида при инициализации этого грида? storer DAX: Программирование 2 18.11.2003 14:03

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 12:54.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.