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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 30.08.2005, 19:51   #1  
Perc is offline
Perc
Участник
 
194 / 57 (2) ++++
Регистрация: 05.03.2005
Сложный фильтр складских журналов
В форме закупки через стандартный фильтр, добавив зависимые таблицы строк закупки и складских аналитик например, могу отфильтровать закупки со строками с определнным складом. Здесь все отлично.
Почему такая фишка не получается со складскими журналами? В списке отношений когда хочу добавить таблицу строк журналов к самим журналам (1:n) она отсутствует. Откуда вообще беруться эти списки зависимых таблиц? Ведь между строками и журналами определнно существует однозначная связь!
Старый 30.08.2005, 21:07   #2  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Вы не совсем правильно действуете. К строкам складского журнала складскую аналитику надо добавлять не ч/з 1:n, а ч/з n:1. Это отношение показывает в каком направлении идет связывание необходимых таблиц. Т.е. складские журналы -> строки складских журналов (InventJournalTable.JournalId = InventJournalTrans.JournalId), складские аналитики -> строки складских журналов (InventDim.InventDimId = InventJournalTrans.InventDimId).

Здесь кроется одна засада. Мне не удалось отфильтровать по складу-получателю для журнала переноса. Best Practices говорит, что использование в одной таблице двух полей одинакового типа является ошибкой, что и видно на данном примере.


А строится все это дело по таблице xRefTableRelation, данные в которую заносятся при построении перекрестных ссылок. Если перекрестные ссылки не построены, то при вызове меню выбора отношений будет предложено это сделать, причем только для отношений м-ду таблицами
За это сообщение автора поблагодарили: Logger (2).
Старый 30.08.2005, 21:44   #3  
Perc is offline
Perc
Участник
 
194 / 57 (2) ++++
Регистрация: 05.03.2005
Цитата:
Изначально опубликовано AndyD
Вы не совсем правильно действуете. К строкам складского журнала складскую аналитику надо добавлять не ч/з 1:n, а ч/з n:1. Это отношение показывает в каком направлении идет связывание необходимых таблиц. Т.е. складские журналы -> строки складских журналов (InventJournalTable.JournalId = InventJournalTrans.JournalId), складские аналитики -> строки складских журналов (InventDim.InventDimId = InventJournalTrans.InventDimId).
Я действовал по аналогии с закупками - там строки закупки выбираются в разделе именно 1:n. В n:1 строк закупки у меня нет. Нуда ладно со складами..
По номенклатуре отфильтровать журналы тоже невозможно хотя в InventJournalTrans номенклатура вроде как одна!
У меня в списках выбора 1:n, n:1 складских жур. вообще нет строк журнала. У вас по другому или я не понял мысли бестпрактис
Старый 30.08.2005, 21:57   #4  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Давайте по шагам с самого начала.

Структура:
1. Выбираем "Таблица складского журнала" -> 1:n -> "Строки складского журнала (Журнал)"
2. Выбираем "Строки складского журнала" -> n:1 - > "Складская аналитика"

Условия:
1. Добавляем новую строку
2. В колонке "таблица" выбираем "Складская аналитика"
3. В колонке "поле" выбираем "Склад"
4. В колонке "критерий" выбираем нужный склад

Ок.

Вуаля.

Извините, что расписываю так подробно, но не вижу способа объяснить свою мысль яснее
Старый 31.08.2005, 00:09   #5  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Посмотрел внимательно на SysQueryBuilder и понял что был неправ. Поля одинакового типа здесь не при чем. Все дело в том, как строятся датасоурсы. Для отработки связей используется класс DictRelation, методы loadFieldRelation или loadTableRelation. При этом поле для которого строится связь нигде не учитывается и происходит, судя по всему, выбор первого из подходящих по FieldId.
Старый 31.08.2005, 00:16   #6  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Да и еще.

Если открыть меню отношений для строк складского журнала n:1, то видно, что таблица "Складская аналитика" указыватеся дважды. Та что со словоми "(Номер аналитики)" - для поля InventDimId, а без - для ToInventDimId
Старый 31.08.2005, 06:25   #7  
Perc is offline
Perc
Участник
 
194 / 57 (2) ++++
Регистрация: 05.03.2005
Цитата:
Изначально опубликовано AndyD
Давайте по шагам с самого начала.

Структура:
1. Выбираем "Таблица складского журнала" -> 1:n -> "Строки складского журнала (Журнал)"
2. Выбираем "Строки складского журнала" -> n:1 - > "Складская аналитика"

Условия:
1. Добавляем новую строку
2. В колонке "таблица" выбираем "Складская аналитика"
3. В колонке "поле" выбираем "Склад"
4. В колонке "критерий" выбираем нужный склад
яснее
Я вроде делаю по пунктам
1. открыл складской журнал "перенос"
2. нажал фильтрация записей
3. в структуре на "таблица складского журнала" кликнул правой кнопкой выбрал 1:n
там меню пунктов из 10-ти появляется, но никаких подобий "строки складского журнала" там нет.
Может у меня аксапта неправильная?
Что сделать чтобы у меня нормальный список сформировался?
Старый 31.08.2005, 08:24   #8  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Может у вас перекрестные ссылки не обновились?

Попробуйте выполнить следующий джоб

PHP код:
static void Job1(Args _args)
{
    ;
    new 
xRefTableRelationUpdate().run();


Старый 31.08.2005, 09:26   #9  
Perc is offline
Perc
Участник
 
194 / 57 (2) ++++
Регистрация: 05.03.2005
Цитата:
Изначально опубликовано AndyD
Может у вас перекрестные ссылки не обновились?

Попробуйте выполнить следующий джоб

PHP код:
static void Job1(Args _args)
{
    ;
    new 
xRefTableRelationUpdate().run();


спсб конечно.
Выполнил джобик. отработалось чтото, но ситуация не изменилась. Печально.
Старый 31.08.2005, 09:34   #10  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Были ли у вас модификации на таблице InventJournalTrans?

Проверьте, не изменялся ли тип поля JournalId. В стандарте используется EDT InventJournalId. Проверьте, есть ли релейшен на таблицу InventJournalTable для EDT, используемого в этом поле.

Проверьте, есть ли релейшены на таблице InventJournalTrans для связи с InventJournalTable (не уверен, что причина может быть в этом, но проверить стоит)
Старый 31.08.2005, 09:58   #11  
Владимир Ю. is offline
Владимир Ю.
Участник
Аватар для Владимир Ю.
 
251 / 9 (1) +
Регистрация: 26.09.2003
Адрес: СПб
Цитата:
Изначально опубликовано Perc

...По номенклатуре отфильтровать журналы тоже невозможно хотя в InventJournalTrans номенклатура вроде как одна!...
Ах 3.0 SP3
У меня фильтрует складские журналы Перенос нормально.
1. Добавил к Таблице складского журнала через 1:n таблицу Строки складского журнала.
2. В Поле выбрал Номенклатура
3. В критерии - код номенклатуры.
Фильтр сработал нормально. Не забудьте про значение поля "Разнесено".
Ваша ситуация не воспроизводится.
__________________
ИМХО.
С уважением, Владимир Ю.
Старый 31.08.2005, 10:44   #12  
Yprit is offline
Yprit
Злыдни
Аватар для Yprit
Злыдни
 
419 / 93 (4) ++++
Регистрация: 22.02.2004
Адрес: СПб
Цитата:
Изначально опубликовано AndyD
Проверьте, есть ли релейшены на таблице InventJournalTrans для связи с InventJournalTable (не уверен, что причина может быть в этом, но проверить стоит)
http://www.adem.karavaevo.ru/index.p...id=23&Itemid=2
Старый 31.08.2005, 11:04   #13  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Я имел в виду, что релейшен может стоять не на поле JournalId таблицы InventJournalTable, а на какое-то другое. Хотя это уже клиника.

По идее должно отрабатываться и без добавления релейшена на таблице. Может быть это исправлено в каких-то версиях? У меня 3.0 sp3 cu1
Старый 31.08.2005, 12:42   #14  
Владимир Ю. is offline
Владимир Ю.
Участник
Аватар для Владимир Ю.
 
251 / 9 (1) +
Регистрация: 26.09.2003
Адрес: СПб
Спасибо, Yprit, за существенное уточнение. Так все работает.
__________________
ИМХО.
С уважением, Владимир Ю.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Одобрение складских журналов AlexeyBP DAX: Функционал 3 11.04.2013 14:25
Длительное создание складских журналов Paul_ST DAX: Программирование 2 13.09.2006 10:52
Сумма и количество складских проводок при разноске складских журналов vasiliy DAX: Программирование 0 04.08.2005 11:04
Очистка складских журналов dyatlowsky DAX: Функционал 0 26.03.2004 17:55
фильтр по строкам складских журналов не работает... dyatlowsky DAX: Функционал 5 12.03.2004 20:25

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

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

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