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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 25.04.2013, 14:35   #1  
smoyk is offline
smoyk
Участник
 
188 / 13 (1) ++
Регистрация: 20.04.2007
Название темы непонятное, извините, по другому не смог придумать)
Есть две связанных таблицы мастер-деталь. Связь один ко многим. Я отфильтровал таблицу мастер по некоторому полю. Теперь мне нужно наложить фильтр на теблицу деталь таким образом, чтобы в ней были записи, удовлетворяющие набору данных таблицы мастер. Пересечь два множества короче) Какие есть способы в навике это сделать? Я один знаю: во временную таблицу запихать нужные записи, пробежав по детали и проверив наличие записи в мастере... Что не очень охото делать. Может есть попроще способ фильтр на деталь наложить?
Заранее спасибо.

ps Грешным делом подумал пробежать по мастеру и сформировать строку фильтра типа "Значение1|Значение2|..." и наложить на 2ю таблицу сетфильтром, но потом подумал, сколько строк может быть в мастере... много может быть, не пойдет)
Старый 25.04.2013, 14:59   #2  
InTacto is offline
InTacto
Участник
Аватар для InTacto
 
323 / 11 (1) +
Регистрация: 09.08.2005
- Можно сделать флоуполя в строках, которые будут транслировать признаки, по которым производится фильтрация, из мастера (быстрая реализация и медленная производительность при накладывании фильтра).
- Создать обычные поля и дублировать признаки из мастера - по трудозатратам сложно сказать, при наличии ключей будет работать быстро
- Использовать механихзмы измерений, по затратам как и в предыдущем варианте,как плюс гибчее можно аналитику построить, если все правильно сделать
Старый 25.04.2013, 18:02   #3  
DA_NEAL is offline
DA_NEAL
Участник
Аватар для DA_NEAL
Лучший по профессии 2017
Лучший по профессии 2009
 
788 / 54 (3) ++++
Регистрация: 05.08.2002
Адрес: Королев
Если сервер SQL используйте View и таблицы с Linked Object
__________________
Want to believe...
Старый 25.04.2013, 18:33   #4  
Yoil is offline
Yoil
NavAx
NavAx Club
Лучший по профессии 2017
Лучший по профессии 2009
 
1,574 / 70 (6) ++++
Регистрация: 20.11.2002
Адрес: Msk
ну и марки можно использовать
пробежать по второй таблице, поставить Mark(TRUE) на нужные записи, потом оставить только MARKEDONLY
__________________
"Моей лошадке ядрышком полмордочки снесло..."
А.В.Суворов, письма к дочери
Старый 26.04.2013, 06:31   #5  
smoyk is offline
smoyk
Участник
 
188 / 13 (1) ++
Регистрация: 20.04.2007
Попробовал маркер использоваь - с ними не работает CALCSUM, ошибка "Сумма по полю не может быть вычисленна т.к. установлен фильтр только помеченные".
Таблицу тоже не хотелось бы изменять ради одного отчета.

DA_NEAL,

Сервер действительно SQL. Вы предлагаете на сервере создать вьюху ручками, я правильно понял? Да, этот вариант можно иметь ввиду, но хотелось бы попробовать средствами навика решить.

InTacto,

А можно по подробней про механизм измерений? Что это?
Старый 26.04.2013, 11:12   #6  
Sancho is offline
Sancho
Administrator
Аватар для Sancho
Лучший по профессии 2017
Лучший по профессии 2009
 
1,294 / 221 (10) ++++++
Регистрация: 11.01.2006
поля, на которые накладываем фильтр в мастер таблице, добавить в детальную.
а также в ее ключ
устанавливать фильтр сразу на детальную и считать кальксумз
Старый 26.04.2013, 11:55   #7  
smoyk is offline
smoyk
Участник
 
188 / 13 (1) ++
Регистрация: 20.04.2007
Sancho,
Это нужно пока только для одного отчета) Не хотелось бы из-за этого менять таблицу....
Старый 26.04.2013, 13:09   #8  
Sancho is offline
Sancho
Administrator
Аватар для Sancho
Лучший по профессии 2017
Лучший по профессии 2009
 
1,294 / 221 (10) ++++++
Регистрация: 11.01.2006
а не проблема!
если надо быстро (пусть и некрасиво), тогда SQL
если надо красиво в Наве - потерпят что кальксумзы не работают, можно и перебором
Старый 26.04.2013, 14:44   #9  
alexb_imported is offline
alexb_imported
Участник
 
256 / 12 (1) ++
Регистрация: 25.08.2006
Цитата:
Сообщение от smoyk Посмотреть сообщение
Попробовал маркер использоваь - с ними не работает CALCSUM, ошибка "Сумма по полю не может быть вычисленна т.к. установлен фильтр только помеченные".
Если вы выбрали вариант с перебором записей, то CALCSUMS всё-же можно использовать (не пользуясь маркером):
нужные записе заносите во временную таблицу (т.е. испльзуете вашу таблицу как Rec-переменную с Temporary=Yes).
Потом накладываете на эту временую Rec-переменную нужный вам фильтр и делаете CALCSUMS.
И что интересно: вы можете делать CALCSUMS в этом варианте даже на те поля, которые не включены в SumIndexFields!
Старый 05.05.2013, 22:14   #10  
romeo is offline
romeo
Участник
Аватар для romeo
 
564 / 10 (2) +
Регистрация: 31.03.2004
Если из связанной таблицы нужны только суммы, то в мастера можно добавить вычисляемые поля с формулой SUM. Тогда детальная таблица вообще будет не нужна - данные по отфильтрованному мастеру будете получать CALCFIELD'ом соответствующих полей.
Старый 05.05.2013, 22:53   #11  
Sancho is offline
Sancho
Administrator
Аватар для Sancho
Лучший по профессии 2017
Лучший по профессии 2009
 
1,294 / 221 (10) ++++++
Регистрация: 11.01.2006
для более детального ответа Вам лучше описать тут т.н. Бизнес Кейс, что в итоге надо получить.

например:
необходимо все заказы продажи отфильтровать по определенному виду оплаты, потом пробежаться по строкам и их суммам и посчитать сколько ожидаемых продаж с НДС 18, а сколько с НДС 0.
пример дебильный, но смысл передал зачем оно. />

а мы тут уже помозгуем как проще и симпатичней это реализовать
Старый 06.05.2013, 12:50   #12  
smoyk is offline
smoyk
Участник
 
188 / 13 (1) ++
Регистрация: 20.04.2007
Ну вобщем я сделал через темповую таблицу. Пока что стоит задача решать все вопросы стандартными средствами навика, но как то это... трудоемко все. Думаю со временем предложить руководству такие задачи либо в кодюнит выносить и запросом на сервер данные брать, либо вобще связкой excel + sql обойтись, как уже советовали умные люди....
Спасибо всем за советы.
 

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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