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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 11.07.2006, 08:01   #1  
demetra
Гость
 
n/a
Как не использовать relations на таблицах
Пишу всего второй месяц, поэтому вопрос может показаться глупым.
Как я поняла, в Акцапте фильтры по любому документу (например, показать строки текущего журнала) делаются, используя relations на таблицах, в коде нигде эти фильтры не пишутся. Как в таком случае обрабатывается такая ситуация:
У меня есть договора и их приложения. Для просмотра оборотов по приложению надо показать обороты только этого приложения, тут все нормально, а при просмотре оборотов основного договора надо показать обороты самого договора и его приложений в одном списке, здесь уже такой строгий relations с текущим договором не нужен. Как делают правильно в таких случаях, убирают как-то эти relations или еще чего?
Старый 11.07.2006, 08:07   #2  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от demetra
в коде нигде эти фильтры не пишутся
Это не значит, что они нигде не настраиваются.

Вы похоже спрашиваете про кнопки, которые открывают новые формы.
Вы хотите, чтобы новые формы открывались с учетом relation или без него. Так?
У menuItem есть свойство DataSource.
Установите туда значение - будет связь по указанному датасорсу, не установите - не будет связи.

Если вас таки интересует код, то у QueryBuildDataSource есть методы clearLinks и clearDynalinks.
__________________
полезное на axForum, github, vk, coub.
Старый 11.07.2006, 08:48   #3  
demetra
Гость
 
n/a
На menuItem нет свойства DataSource, только на menuItemButton, я убрала оттуда DataSource, но не помогает, все равно фильтрует, а если в коде на qbds очищать линки и устанавливать новый ранг( я понимаю так надо делать), то где это делается ? на методе формы? на каком?
Старый 11.07.2006, 08:53   #4  
Roman777 is offline
Roman777
NavAx
Аватар для Roman777
NavAx Club
 
320 / 64 (3) ++++
Регистрация: 10.02.2005
Адрес: г. Москва
линки можно чистить в методе Init() датасорса после super(),
а также в linkActive() датасорса до super()
Старый 11.07.2006, 10:19   #5  
demetra
Гость
 
n/a
Линки почистились, теперь проблема добавить новый ранг, чтобы был фильтр по текущему договору и всем его приложениям. Что-то не соображу, как это в addrange впихнуть несколько значений.
Старый 11.07.2006, 10:48   #6  
Roman777 is offline
Roman777
NavAx
Аватар для Roman777
NavAx Club
 
320 / 64 (3) ++++
Регистрация: 10.02.2005
Адрес: г. Москва
через запятую!

...опишите подробнее, какие фильтры и по каким полям нужно повесить на датасорс
Старый 11.07.2006, 11:38   #7  
demetra
Гость
 
n/a
Я стою на строке контракта в RContractTable и вызываю форму оборотов этого контракта RContractVendTrans, там в датасурсах таблица VendTrans. Эти таблицы связаны по трем полям:
VendTrans.AccountNum == RContractTable.RContractPartnerCode
VendTrans.RContractAccount == RContractTable.RContractAccount
VendTrans.RContractCode == RContractTable.RContractCode

Мне надо, чтобы если я стою на основном контракте, показывались не только его обороты, но и обороты его приложений общим списком.
У приложений в поле RContractGeneral находится ссылка на RContractAccount основного контракта.

this.query().dataSourceNo(1).addRange(fieldnum(VendTrans,AccountNum)).value(????);
this.query().dataSourceNo(1).addRange(fieldnum(VendTrans,RContractAccount)).value(???);
this.query().dataSourceNo(1).addRange(fieldnum(VendTrans,RContractCode)).value(???);
где ??? должны быть все номера текущего договора и его приложений.
Старый 11.07.2006, 12:01   #8  
Roman777 is offline
Roman777
NavAx
Аватар для Roman777
NavAx Club
 
320 / 64 (3) ++++
Регистрация: 10.02.2005
Адрес: г. Москва
Я так понимаю в этом случае фильтр на поля AccountNum, RContractCode будет одним для главного контракта и его приложений.
А фильтр на поле RContractAccount можно установить либо несколько раз добавив Range (например, в цикле), либо предварительно составить строку "фильтр1, фильтр2,... фильтрN" и передать ее в value().
Старый 11.07.2006, 13:23   #9  
demetra
Гость
 
n/a
Спасибо, все работает.
Старый 14.07.2006, 05:38   #10  
demetra
Гость
 
n/a
Еще один вопрос по этой теме.

Формирую строку нужных номеров для фильтра:
strRContractAccount = "АА1, АА2, АА3 ";
this.query().dataSourceNo(1).addRange(fieldnum(VendTrans,RContractAccount)).value(strRContractAccount);

Все работает прекрасно. Но если
strRContractAccount = "АА1, АА/2, АА/3 ";
то в фильтре берутся только записи с номерами, в которых нет /, а АА/1 и АА/2 игнорируются.
В чем дело, почему не понимается / ?
Старый 14.07.2006, 08:46   #11  
Yegor is offline
Yegor
Участник
 
40 / 37 (2) +++
Регистрация: 12.09.2003
strRContractAccount = QueryValue(“АА/1”) + “,” + QueryValue(“АА/2”);
Старый 14.07.2006, 10:09   #12  
demetra
Гость
 
n/a
Не помогает. Я правда ошиблась, строка strRContractAccount = "АА1, АА\2, АА\3 ";
Старый 14.07.2006, 10:17   #13  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Нужно вставлять по 2 "\" - backslash
Так как один будет экранировать другой
Старый 14.07.2006, 11:00   #14  
demetra
Гость
 
n/a
Спасибо, но я выкрутилась только так
strRContractAccount = QueryValue(@"НСЭ1") + "," + QueryValue(@"НСЭ1\\1") + "," + QueryValue(@"НСЭ1\\2");

без \\ и @ в запросе все равно показывает НСЭ11 и НСЭ12 без \
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Должностные лица - использовать или нет? olesh DAX: Программирование 5 04.03.2019 16:22
Обновление поля с определённым типом во всех таблицах. Corel DAX: Программирование 1 20.12.2008 13:37
Two Tables with Two Relations Blog bot DAX Blogs 0 31.03.2008 11:05
Управление командой разработчиков - что лучше использовать ShadowFromXZone DAX: Прочие вопросы 66 05.02.2007 19:58
Можно ли в инамическом запросе использовать "group by"? yooshi DAX: Программирование 26 23.09.2005 16:35

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 11:06.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.