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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 16.03.2012, 15:53   #1  
cupOfCoffe is offline
cupOfCoffe
Участник
 
5 / 10 (1) +
Регистрация: 16.03.2012
Как правильно заполять форму с несколькими DataSource?
Дбрый день!
Возникла такая задача с заковыкой, никак не могу разобраться.
Итак, имеется форма на которой несколько TabPade (всего 5).
На каждой TabPade по одному гриду.
Каждой TabPade соответствует свой датасорс.
Но в основе всех датасорсов одна и та же таблица.
В этой таблице есть поле "признак"
Форма заполняется пользователем вручную.
Нужно чтобы с первой TabPade данные имели в таблице "Признак" ==1, со второй 2 и т.д.
заранее спасибо!
Старый 16.03.2012, 16:00   #2  
samolalex is offline
samolalex
Участник
Аватар для samolalex
Самостоятельные клиенты AX
 
259 / 107 (4) +++++
Регистрация: 18.06.2010
Адрес: Москва
Я думаю, что в этом случае лучше всего датасоурс указать в свойсвах грида.
Для решения Вашей задачи нужно на каждом датасоурсе перекрыть метод initValue и сделать примерно так (это для первого датасоурса):
X++:
void initValue()
{
    super();

    . = 1;
}
Дальше в методе init() каждого датасоурса инициализировать range по полю Признак, а затем в методе executeQuery() датасоурсов задавать данному фильтру значение 1,2,3,4,5 в зависимости от датасоурса. Примерно так:
X++:
public void init()
{
    super();

    qbrMyRange = this.query().dataSourceTable(tablenum()).addRange(fieldnum(, )); 
}

public void executeQuery()
{
    qbrMyRange.value("Значение от 1 до 5");

    super();
}
qbrMyRange нужно объявить в ClassDeclaration формы.
__________________
С уважением, Александр.

Последний раз редактировалось samolalex; 16.03.2012 в 16:04.
За это сообщение автора поблагодарили: cupOfCoffee (1).
Старый 16.03.2012, 16:02   #3  
Alexanderis.ua is offline
Alexanderis.ua
Участник
 
53 / 40 (2) +++
Регистрация: 25.12.2008
Адрес: Киев, Украина
можно сделать примерно следующее (в каждом датасорсе)
X++:
public void init()
{
    QueryBuildDataSource  qbds;
    QueryBuildRange          qbr;

    ;
    
    super();

    qbds = this.query().dataSourceNo(1);
    qbr = qbds.addRange(fieldnum(<Table>, <Field>));
    qbr.value(SysQuery::value(<value>));
    qbr.status(RangeStatus::Locked);
}
Во избежание различного рода непоняток, советую заблокировать ваше поле "признак" для изменения. При добавлении записи в гриде, если там будет этот фильтр, значение поля замо инициализируется.
__________________
If it ain't broke, take it apart and find out why (с)

Последний раз редактировалось Alexanderis.ua; 16.03.2012 в 16:44. Причина: конструктивная критика
За это сообщение автора поблагодарили: S.Kuskov (1), samolalex (1).
Старый 16.03.2012, 16:31   #4  
vallys is offline
vallys
Developer
 
146 / 108 (0) +++++
Регистрация: 18.01.2005
А где QueryBuildRange.status(RangeStatus::Hidden) или QueryBuildRange.status(RangeStatus::Locked) ?
А то ведь пользователи фильтр по полю и изменить ведь могуг ненароком...
За это сообщение автора поблагодарили: Alexanderis.ua (1).
Старый 16.03.2012, 16:44   #5  
Alexanderis.ua is offline
Alexanderis.ua
Участник
 
53 / 40 (2) +++
Регистрация: 25.12.2008
Адрес: Киев, Украина
Верно. Я же написал "примерно" следующее
Подправил
__________________
If it ain't broke, take it apart and find out why (с)
Старый 16.03.2012, 16:55   #6  
cupOfCoffee is offline
cupOfCoffee
Участник
 
3 / 10 (1) +
Регистрация: 16.03.2012
Попробую, спасибо!
Поле "Признак" скрытое, пользователь его не видит.
Старый 16.03.2012, 17:06   #7  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от cupOfCoffee Посмотреть сообщение
Попробую, спасибо!
Поле "Признак" скрытое, пользователь его не видит.
Тут говорят не про поле на самом дата сорсе, а про фильтр (это поле в расширенном фильтре)
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 16.03.2012, 17:10   #8  
cupOfCoffee is offline
cupOfCoffee
Участник
 
3 / 10 (1) +
Регистрация: 16.03.2012
Цитата:
Сообщение от lev Посмотреть сообщение
Тут говорят не про поле на самом дата сорсе, а про фильтр (это поле в расширенном фильтре)
да, поспешил

спасибо за помощь! все работает так как надо
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Обновление DataSource из формы Печать\Новый отчет. Poleax DAX: Программирование 19 13.04.2011 09:28
Как у кнопки динамически поменять DataSource ? Poleax DAX: Программирование 4 06.09.2010 17:45
C# and AX Development: Updating the caller Form/DataSource Blog bot DAX Blogs 0 18.07.2009 02:28
Обновление таблицы в DataSource при ее изменении Андре DAX: База знаний и проекты 7 22.04.2008 13:16
Не удаётся правильно настроить DataSource через метод init Dronas DAX: Программирование 1 08.10.2007 09:10

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

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

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