AXForum  
Go Back   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Forgotten Your Password?
Register Forum Rules FAQ Members List Today's Posts Search Mark Forums Read

 
 
Thread Tools Search this Thread Display Modes
Old 11.07.2006, 08:01   #1  
demetra
Гость
 
n/a
Как не использовать relations на таблицах
Пишу всего второй месяц, поэтому вопрос может показаться глупым.
Как я поняла, в Акцапте фильтры по любому документу (например, показать строки текущего журнала) делаются, используя relations на таблицах, в коде нигде эти фильтры не пишутся. Как в таком случае обрабатывается такая ситуация:
У меня есть договора и их приложения. Для просмотра оборотов по приложению надо показать обороты только этого приложения, тут все нормально, а при просмотре оборотов основного договора надо показать обороты самого договора и его приложений в одном списке, здесь уже такой строгий relations с текущим договором не нужен. Как делают правильно в таких случаях, убирают как-то эти relations или еще чего?
Old 11.07.2006, 08:07   #2  
mazzy is offline
mazzy
Участник
mazzy's Avatar
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Join Date: 29.11.2001
Location: Москва
Blog Entries: 10
Quote:
Originally Posted by demetra
в коде нигде эти фильтры не пишутся
Это не значит, что они нигде не настраиваются.

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

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

...опишите подробнее, какие фильтры и по каким полям нужно повесить на датасорс
Old 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(???);
где ??? должны быть все номера текущего договора и его приложений.
Old 11.07.2006, 12:01   #8  
Roman777 is offline
Roman777
NavAx
Roman777's Avatar
NavAx Club
 
320 / 64 (3) ++++
Join Date: 10.02.2005
Location: г. Москва
Я так понимаю в этом случае фильтр на поля AccountNum, RContractCode будет одним для главного контракта и его приложений.
А фильтр на поле RContractAccount можно установить либо несколько раз добавив Range (например, в цикле), либо предварительно составить строку "фильтр1, фильтр2,... фильтрN" и передать ее в value().
Old 11.07.2006, 13:23   #9  
demetra
Гость
 
n/a
Спасибо, все работает.
Old 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 игнорируются.
В чем дело, почему не понимается / ?
Old 14.07.2006, 08:46   #11  
Yegor is offline
Yegor
Участник
 
40 / 37 (2) +++
Join Date: 12.09.2003
strRContractAccount = QueryValue(“АА/1”) + “,” + QueryValue(“АА/2”);
Old 14.07.2006, 10:09   #12  
demetra
Гость
 
n/a
Не помогает. Я правда ошиблась, строка strRContractAccount = "АА1, АА\2, АА\3 ";
Old 14.07.2006, 10:17   #13  
kashperuk is offline
kashperuk
Участник
kashperuk's Avatar
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Join Date: 30.05.2004
Location: Atlanta, GA, USA
Нужно вставлять по 2 "\" - backslash
Так как один будет экранировать другой
Old 14.07.2006, 11:00   #14  
demetra
Гость
 
n/a
Спасибо, но я выкрутилась только так
strRContractAccount = QueryValue(@"НСЭ1") + "," + QueryValue(@"НСЭ1\\1") + "," + QueryValue(@"НСЭ1\\2");

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

Similar Threads
Thread Thread Starter Forum Replies Last Post
Должностные лица - использовать или нет? 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
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Рейтинг@Mail.ru
All times are GMT +3. The time now is 02:03.
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Contacts E-mail, Advertising.