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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 28.01.2004, 17:17   #1  
NataLee is offline
NataLee
Участник
Аватар для NataLee
 
20 / 12 (1) ++
Регистрация: 30.09.2003
Адрес: СПб
? не работает AddRange
Здравствуйте!

У меня загвоздка - не срабатывает фильтр по полю в таблице.
Я использую метод addRange :

Filter = MyDataSource.addRange(fieldNum( MyTable, Field_N ));
Filter.value( ' Заданное значение' );

Заданное значение совпадает по типу с типом поля в таблице.
Вроде бы никаких несоответствий.

Что может влиять на срабатывание фильтра?
Результат такой, что фильтр не накладывался вообще.
С другими полями таблицы все нормально.
Field_N - новое поле, добавленное мной в таблицу.

Помогите, пожалуйста, если кто сталкивался с такой ситуацией.

Спасибо.
Старый 28.01.2004, 17:26   #2  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Re: не работает AddRange
Цитата:
я использую метод addRange ... заданное значение совпадает по типу с типом поля в таблице
А вот это уже наводит на нехорошие мысли. Параметр свойства value - всегда строка, а не данные произвольного типа.

Впрочем, ваша проблема заключается не в этом. Приведите, если не затруднит, весь код целиком и без абстракций.
Старый 28.01.2004, 17:30   #3  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
спрашивали подобное когда хотели отобрать пустые значения.
http://axapta.mazzy.ru/hints/emptyqueryrange/

если у вас другой случай, то ищите ошибки в своем коде.
Старый 28.01.2004, 17:54   #4  
NataLee is offline
NataLee
Участник
Аватар для NataLee
 
20 / 12 (1) ++
Регистрация: 30.09.2003
Адрес: СПб
ОК, вот код:

void init() // на единственном датасорсе LedgerBudget
{
QueryBuildDataSource qB;
A_BudgetPeriodNum periodFromCaller; // тип string 20

super();

qB = this.query().dataSourceNo(1);

periodFromCaller = element.args().caller().getPeriodNum();
// здесь я беру данные из вызывающей формы, передается корректно

PeriodFilter = qB.addRange(fieldNum(LedgerBudget, A_BudgetPeriod));
PeriodFilter.value(periodFromCaller);
}

// поле A_BudgetPeriod имеет тот же тип A_BudgetPeriodNum
Старый 28.01.2004, 18:06   #5  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Все правильно. А с этим PeriodFilter нигде ничего больше не происходит?
Попробуйте в метод executeQuery() вставить для тестирования строку: info(this.query().dataSourceNo(1).toString()); и посмотрите, какой на самом деле формируется запрос.
Старый 28.01.2004, 18:16   #6  
NataLee is offline
NataLee
Участник
Аватар для NataLee
 
20 / 12 (1) ++
Регистрация: 30.09.2003
Адрес: СПб
Спасибо, EVGL, что поучаствовали - теперь у меня есть уверенность, что здесь код верный.

Думаю в этой форме надо искать где еще кто-то что-то делал с периодами - возможно именно по этому полю где-то накладываются условия, перекрывающие мой запрос. Дело в том, что я вношу изменения в имеющуюся форму - придется покопаться.

А с toString я проверяла - условие корректное:

SELECT * FROM LedgerBudget USING INDEX ModelIdx WHERE ((A_BudgetPeriod = Дек 2003))

Надеюсь использование индекса здесь не помеха.
Старый 29.01.2004, 11:24   #7  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,701 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Извиняюсь, если я не прав. Но разве не надо взять символьную константу в кавычки?

Может лучше использовать стандартную функцию конвертации для значений:

PeriodFilter.value(sysQuery::value(periodFromCaller));

Правда сама Axapta почему-то использует вызов этой функции опосредовано:

PeriodFilter.value(queryValue(periodFromCaller));

Хотя это одно и то же.
Старый 29.01.2004, 13:09   #8  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Изначально опубликовано Владимир Максимов
Извиняюсь, если я не прав. Но разве не надо взять символьную константу в кавычки?
не, все нормально. это так инфолог показывает.
В общем, непонятно.

NataLee, согласен с EVGL - барабашки не бывает. Ищите место, где кто-то что-то делает с запросом.
Старый 29.01.2004, 13:38   #9  
NataLee is offline
NataLee
Участник
Аватар для NataLee
 
20 / 12 (1) ++
Регистрация: 30.09.2003
Адрес: СПб
Спасибо всем за участие!

Я уже решила проблему и думаю, что должна высказаться.

На этой форме был перекрыт метод executeQuery, где для данного поля устанавливался фильтр без ограничений(т.е. показывались все данные).
И таким образом все мои фильтры аннулировались.
Вот и все.

А сразу на executeQuery было не посмотреть?!!!
Ну что ж - осознала!


Так что addRange - РАБОТАЕТ!
Старый 29.01.2004, 13:50   #10  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Спасибо, NataLee
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Расширенный AddRange и OuterJoin Russland DAX: Программирование 0 04.07.2006 16:36
addRange TDima DAX: Программирование 7 30.05.2006 11:07
Можно ли редактировать форму, если на нее наложен addRange? Hans DAX: Программирование 10 22.05.2006 16:35
JOIN программно на форме не работает rohlenko DAX: Программирование 2 31.03.2005 15:41
CRM ABC, SWOT анализ Как это работает и работает ли вообще. ShadowFromXZone DAX: Функционал 16 02.03.2004 18:09

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

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

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