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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 23.03.2011, 09:03   #1  
Mila is offline
Mila
Участник
 
73 / 31 (2) +++
Регистрация: 21.04.2006
Фильтр по сетке в lookup
Добрый день. Подскажите пожалуйста как можно решить следующую проблему. Изначально задача заключалась в сохранении фильтра, введенного на lookup форме. Эту задачу я решила. Фильтр действительно сохраняется и отрабатывается при открытии lookup формы, но шапочка с наложенными фильтрами не отображается (обычно это можно сделать по кнопке Фильтр по сетке).
Старый 23.03.2011, 09:42   #2  
Poleax is offline
Poleax
Модератор
Аватар для Poleax
MCP
MCBMSS
Злыдни
 
1,353 / 595 (22) +++++++
Регистрация: 17.02.2005
Адрес: msk
Записей в блоге: 34
в Ax2009
Сервис --> Параметры --> вкладка Разное --> поле "Фильтр по сетке включен по умолчанию"
__________________

This posting is provided "AS IS" with no warranties, and confers no rights.
Старый 23.03.2011, 10:16   #3  
Mila is offline
Mila
Участник
 
73 / 31 (2) +++
Регистрация: 21.04.2006
Эту настройку я уже пробовала. Но, во-первых, отображается шапка фильтрации на всех формах, а во-вторых, в lookup-форме шапка отображается, но мои фильтры, которые кстати отрабатывают правильно, в ней не отображаются.
Старый 23.03.2011, 10:33   #4  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от Mila Посмотреть сообщение
шапочка с наложенными фильтрами не отображается (обычно это можно сделать по кнопке Фильтр по сетке).
Можно нажать на кнопочку программно. Например вот так.
X++:
public void init()
{
    super();

    #sysTaskRecorderMacro
    this.task(#sysTaskRecorderTaskFilterByGrid);
}
Цитата:
Сообщение от Mila Посмотреть сообщение
мои фильтры, которые кстати отрабатывают правильно, в ней не отображаются.
А вы фильтры накладываете на _ds.query() или на _ds.queryRun().query()?
За это сообщение автора поблагодарили: epetrov (1), player (1).
Старый 23.03.2011, 10:36   #5  
Mila is offline
Mila
Участник
 
73 / 31 (2) +++
Регистрация: 21.04.2006
Я так понимаю, что что-то нужно добавить в метод unpack(). Приведу его код. Может быть тогда появятся какие-нибудь предложения
X++:
 public boolean unpack(container packedClass)
{
    Integer         version     = conpeek(packedClass,1);
    PackedQueryRun  packedQuery;
    switch (version)
    {
        case #CurrentVersion:
            [version,packedQuery] = packedClass;
            if (queryIsPackedOk(packedQuery))
            {
                query = new Query(packedQuery);
            }
            break;
        default :
            return false;
    }
    InventTable_ds.query(query);
    InventTable_ds.refresh();
    return true;
}
X++:
public void init()
{
    super();
    xSysLastValue::getLast(this);
    element.selectMode(InventTable_ItemId);
}
Старый 23.03.2011, 14:36   #6  
Mila is offline
Mila
Участник
 
73 / 31 (2) +++
Регистрация: 21.04.2006
S.Kuskov, большое вам спасибо. Ваш код очень помог. Кроме того, нашла на форуме сообщение, в котором обсуждалась проблема с кнопкой Удалить фильтр. Так же как и в том случае мои фильтры воспринимались как программные, а нужно чтобы они воспринимались как пользовательские. Ниже приведу методы, после редактирования которых, все заработало. Методы формы:
X++:
public boolean unpack(container packedClass)
{
    Integer         version     = conpeek(packedClass,1);
    PackedQueryRun  packedQuery;
    switch (version)
    {
        case #CurrentVersion:
            [version,packedQuery] = packedClass;
            if (queryIsPackedOk(packedQuery))
            {
                query = new Query(packedQuery);
            }
            break;
        default :
            return false;
    }
    return true;
}
X++:
public void init()
{
    ;
    xSysLastValue::getLast(this);
    super();
    element.selectMode(InventTable_ItemId);
 
}
X++:
public void run()
{
    ;
    super();
    inventTable_ds.research();
    #sysTaskRecorderMacro
    this.task(#sysTaskRecorderTaskFilterByGrid);
}
Метод источника данных:
X++:
public void executeQuery()
{
    if(this.queryRun())
    {
        super();
    }
    else
    {
        super();
        this.queryRun().query().dataSourceTable(tableNum(InventTable)).clearRanges();
        this.queryRun().query(query);
    }
}
За это сообщение автора поблагодарили: player (1).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Фильтр по сетке в lookup форме. jonny DAX: Программирование 6 18.11.2010 10:37
ERP-BLOG: Axapta, фильтр по сетке Blog bot DAX Blogs 26 05.02.2009 15:56
Lookup form, OuterJoin и фильтр Russland DAX: Программирование 45 26.10.2007 15:45
Фильтр в lookup Azat DAX: Программирование 7 08.11.2005 11:40
lookup фильтр в произвольной lookup форме 111andrei DAX: Программирование 4 05.10.2005 11:28

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

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

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