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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 06.08.2009, 18:05   #1  
Dima_Dima is offline
Dima_Dima
Участник
 
144 / 11 (1) +
Регистрация: 09.10.2008
Дополнительный фильтр на smmActiviies форме.
Добрый день.

Такой вопрос:

Сделал дополнительный фильтр на форме smmActivities --> TeamFilter. Смысл, показывать задания только тех работников, которые принадлежат к выбранной команде.

Работает, но почему-то только один раз. Если я выбираю другую команду или удаляю запись в фильтре, вижу пустой Grid.

Изменения в setupRanges на smmactivities_ds выглядит следующим способом:
X++:
datasourceForTeams      = queryBuildDataSource.addDataSource(tablenum(emplTable));
    datasourceForTeams.relations(true);
    datasourceForTeams.joinMode(JoinMode::ExistsJoin);
.
.
.
rangeForTeams           = SysQuery::findOrCreateRange(datasourceForTeams, fieldnum(emplTable, DispatchTeamId));
Изменения в методе executeQuery():

X++:
// If activities are not filtered on any employee
    if (!emplFilter && !teamFilter)
    {
        // Enable/disable ranges
        rangeForEmployee.enabled(false);
        rangeForPrivate.enabled(false);
        rangeForTeams.enabled(false);
        rangeRecId.enabled(true);
        // To show private and non-private activities for current employee AND non-private acitvities for other employees
        qStr = strfmt('((%1 == "%2") || ((%1 != "%2") && (%3 != %4)))', fieldstr(smmActivities, ResponsibleEmployee), smmUtility::getCurrentContact(), fieldstr(smmActivities,Sensitivity), enum2int(smmSensitivity::Privat));
        rangeRecId.value(qStr);
    }
    // If activities are filtered on any employee
    else if(emplFilter && !teamFilter)
    {
        // Enable/disable ranges
        rangeForEmployee.enabled(true);
        rangeForPrivate.enabled(true);
        rangeRecId.enabled(false);
        rangeForTeams.enabled(false);

        // Set value for filter on employee
        rangeForEmployee.value(emplFilter);

        // Private activities will be only visible to owner of activities
        if (emplFilter != smmUtility::getCurrentContact())
        {
            rangeForPrivate.value(queryValue(!smmSensitivity::Privat));
        }
        else
        {
            rangeForPrivate.value(SysQuery::valueUnlimited());
        }
    }
    
    else if(teamFilter && !emplFilter)
    {
        // Enable/disable ranges
        rangeForEmployee.enabled(false);
        rangeForPrivate.enabled(true);
        rangeRecId.enabled(false);
        rangeForTeams.enabled(true);
        //
        rangeForTeams.value(teamFilter);

        teamFilterAnyType = teamFilter;
        select emplTableloc where emplTableloc.DispatchTeamId == teamFilterAnyType;
        if (emplTableloc.EmplId != smmUtility::getCurrentContact())
        {
            rangeForPrivate.value(queryValue(!smmSensitivity::Privat));
        }
        else
        {
            rangeForPrivate.value(SysQuery::valueUnlimited());
        }
    }
    else if (teamFilter && emplFilter)
    {
        //Enable/disable ranges
        rangeForEmployee.enabled(true);
        rangeForPrivate.enabled(false);
        rangeRecId.enabled(false);
        rangeForTeams.enabled(true);

        //
        rangeForEmployee.value(emplFilter);
        rangeForTeams.value(teamFilter);
    }
На Контроле:

X++:
boolean modified()
{
    boolean ret;
    ;

    ret = super();

    // Set team filter
    teamFilter = teamFilterControl.text();

    // Run query again with the new filtering
    smmActivities_ds.executeQuery();
    //info(strfmt("%1", teamFilter));

    return ret;
}
Прошу совета, что я неправильно делаю.

Спасибо.
Теги
crm, поиск, фильтр

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Фильтр на форме InventClassifierItemSelection Andrux DAX: Программирование 11 06.05.2009 10:48
Фильтр на форме в гриде vale15 DAX: Программирование 1 18.09.2007 11:50
Фильтр на Веб форме egorych DAX: Программирование 3 21.06.2007 18:32
Фильтр на форме sah DAX: Программирование 5 10.11.2005 11:31
Не работает стандартный фильтр на форме Julietta DAX: Прочие вопросы 4 06.12.2004 13:30

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

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

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