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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 01.09.2006, 09:16   #1  
Ихъ бин программикеер is offline
Ихъ бин программикеер
Участник
 
23 / 10 (1) +
Регистрация: 12.07.2006
AddRange не фильтрует
Ситуация:
Есть отчет PurchVariancesVendorSPR (может, такое есть далеко не у всех), предназначен для анализа процента количественного исполнения заявок поставщиками. В связи с тем, что данные в этот отчет берутся из таблицы VendPurchOrderJour, а сами заявки хранятся в таблице PurchOrder, при отмене заявок поле статуса заявки в PurchOrder проставляется, а в VendPurchOrderJour - нет. В результате имеем отчет, в котором отмененные нашим предприятием заявки влияют на процент исполнения поставщиком, за счет чего ему назначаются штрафы.

Может быть, журнал VendPurchOrderJour используется еще неким хитрым образом, поэтому я боюсь в нем ковыряться и проставлять отмену. Я хотел бы при составлении отчета пользоваться связью таблиц по полю идентификатора заявки и фильтровать заявки в зависимости от поля статуса заявки в таблице PurchOrder. Что, как понятно из заголовка, у меня почему-то не получается сделать.

Код:
public void init()
{
...
qbds = this.query().dataSourceTable(tableNum(VendPurchOrderJour)).addDataSource(tableNum(PurchTable));
qbds.addLink(fieldNum(VendPurchOrderJour, PurchId),fieldNum(PurchTable, PurchId));
qbr = qbds.addRange(fieldNum(PurchTable, PurchId));
qbr.value(SysQuery::valueNot(PurchStatus::Canceled));
...
}

Дополнительные сведения:

1. Попытки фильтровать по полям таблицы VendPurchOrderJour, в отличие от приведенного кода, дают положительный результат.

2. В этом же методе есть код, написанный не мною, в работоспособности которого я уже начал сомневаться:
...
qbds = this.query().dataSourceTable(tableNum(VendPurchOrderJour)).addDataSource(tableNum(UserRightsVend));
qbds.addLink(fieldNum(VendPurchOrderJour, OrderAccount), fieldNum(UserRightsVend, AccountNum));
qbr = qbds.addRange(fieldNum(UserRightsVend, UserId));
qbr.value(queryValue(curUserId()));
qbr.status(QueryStatus::Hide);
qbds.addRange(fieldNum(UserRightsVend, UserId)).value(queryValue(curUserId()));
...

Резюме:

HELPPP!!!!
Старый 01.09.2006, 10:43   #2  
ice is offline
ice
Участник
Аватар для ice
Лучший по профессии 2014
 
1,738 / 404 (17) +++++++
Регистрация: 23.03.2006
Цитата:
Сообщение от Ихъ бин программикеер
Ситуация:
qbr = qbds.addRange(fieldNum(PurchTable, PurchId));
qbr.value(SysQuery::valueNot(PurchStatus::Canceled));
в range добавляешь поле PurchId, а отфильтровать пытаешься по PurchStatus, что есть ошибка
Старый 01.09.2006, 11:38   #3  
Ихъ бин программикеер is offline
Ихъ бин программикеер
Участник
 
23 / 10 (1) +
Регистрация: 12.07.2006
Да не, на самом деле, ему пофигу. Я менял всякие способы фильтрации - исключение, перечисление и пр., и все равно не фильтрует. Т.е. я, к примеру, составлял код, который не должен ни одной записи выводить, а он все равно их выводит. Или код, который не должен выводить только определенные записи - тоже не работает. В том виде, который тут приведен, понятное дело, должны выводиться все записи, но если убрать SysQuery::valueNot(), то они все равно выводятся все, несмотря на то, что идентификаторов "Отмена", как вы понимаете, не существует....

В общем - почему-то просто НЕ РАБОТАЕТ фильтрация по внутреннему запросу (по крайней мере, в этом месте) и все тут...
Старый 01.09.2006, 12:25   #4  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
У вас есть еще подключенные датасоурсы к VendPurchOrderJour?
__________________
Axapta v.3.0 sp5 kr2
Старый 01.09.2006, 12:29   #5  
Ихъ бин программикеер is offline
Ихъ бин программикеер
Участник
 
23 / 10 (1) +
Регистрация: 12.07.2006
Конечно, есть. VendTable и VendPurchOrderTrans
Старый 01.09.2006, 12:36   #6  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
qbds.fetchMode(QueryFetchMode::One2One) случайно не спасет?
За это сообщение автора поблагодарили: Ихъ бин программикеер (1).
Старый 01.09.2006, 14:27   #7  
Ихъ бин программикеер is offline
Ихъ бин программикеер
Участник
 
23 / 10 (1) +
Регистрация: 12.07.2006
Thumbs up
На первый взгляд, замечательно работает благодарствую, oip!
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Расширенный AddRange и OuterJoin Russland DAX: Программирование 0 04.07.2006 16:36
Расширенный AddRange Russland DAX: Программирование 3 04.07.2006 10:49
Можно ли редактировать форму, если на нее наложен addRange? Hans DAX: Программирование 10 22.05.2006 16:35
Как добавить в addRange условие по "или" на контейнерные поля? Lora DAX: Программирование 9 29.11.2004 13:52
не работает AddRange NataLee DAX: Программирование 9 29.01.2004 13:50

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

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

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