|
25.04.2013, 14:35 | #1 |
Участник
|
Название темы непонятное, извините, по другому не смог придумать)
Есть две связанных таблицы мастер-деталь. Связь один ко многим. Я отфильтровал таблицу мастер по некоторому полю. Теперь мне нужно наложить фильтр на теблицу деталь таким образом, чтобы в ней были записи, удовлетворяющие набору данных таблицы мастер. Пересечь два множества короче) Какие есть способы в навике это сделать? Я один знаю: во временную таблицу запихать нужные записи, пробежав по детали и проверив наличие записи в мастере... Что не очень охото делать. Может есть попроще способ фильтр на деталь наложить? Заранее спасибо. ps Грешным делом подумал пробежать по мастеру и сформировать строку фильтра типа "Значение1|Значение2|..." и наложить на 2ю таблицу сетфильтром, но потом подумал, сколько строк может быть в мастере... много может быть, не пойдет) |
|
25.04.2013, 14:59 | #2 |
Участник
|
- Можно сделать флоуполя в строках, которые будут транслировать признаки, по которым производится фильтрация, из мастера (быстрая реализация и медленная производительность при накладывании фильтра).
- Создать обычные поля и дублировать признаки из мастера - по трудозатратам сложно сказать, при наличии ключей будет работать быстро - Использовать механихзмы измерений, по затратам как и в предыдущем варианте,как плюс гибчее можно аналитику построить, если все правильно сделать |
|
25.04.2013, 18:02 | #3 |
Участник
|
Если сервер SQL используйте View и таблицы с Linked Object
__________________
Want to believe... |
|
25.04.2013, 18:33 | #4 |
NavAx
|
ну и марки можно использовать
пробежать по второй таблице, поставить Mark(TRUE) на нужные записи, потом оставить только MARKEDONLY
__________________
"Моей лошадке ядрышком полмордочки снесло..." А.В.Суворов, письма к дочери |
|
26.04.2013, 06:31 | #5 |
Участник
|
Попробовал маркер использоваь - с ними не работает CALCSUM, ошибка "Сумма по полю не может быть вычисленна т.к. установлен фильтр только помеченные".
Таблицу тоже не хотелось бы изменять ради одного отчета. DA_NEAL, Сервер действительно SQL. Вы предлагаете на сервере создать вьюху ручками, я правильно понял? Да, этот вариант можно иметь ввиду, но хотелось бы попробовать средствами навика решить. InTacto, А можно по подробней про механизм измерений? Что это? |
|
26.04.2013, 14:44 | #6 |
Участник
|
Цитата:
нужные записе заносите во временную таблицу (т.е. испльзуете вашу таблицу как Rec-переменную с Temporary=Yes). Потом накладываете на эту временую Rec-переменную нужный вам фильтр и делаете CALCSUMS. И что интересно: вы можете делать CALCSUMS в этом варианте даже на те поля, которые не включены в SumIndexFields! |
|
05.05.2013, 22:14 | #7 |
Участник
|
Если из связанной таблицы нужны только суммы, то в мастера можно добавить вычисляемые поля с формулой SUM. Тогда детальная таблица вообще будет не нужна - данные по отфильтрованному мастеру будете получать CALCFIELD'ом соответствующих полей.
|
|
26.04.2013, 11:12 | #8 |
Administrator
|
поля, на которые накладываем фильтр в мастер таблице, добавить в детальную.
а также в ее ключ устанавливать фильтр сразу на детальную и считать кальксумз |
|
26.04.2013, 11:55 | #9 |
Участник
|
Sancho,
Это нужно пока только для одного отчета) Не хотелось бы из-за этого менять таблицу.... |
|
26.04.2013, 13:09 | #10 |
Administrator
|
а не проблема!
если надо быстро (пусть и некрасиво), тогда SQL если надо красиво в Наве - потерпят что кальксумзы не работают, можно и перебором |
|
05.05.2013, 22:53 | #11 |
Administrator
|
для более детального ответа Вам лучше описать тут т.н. Бизнес Кейс, что в итоге надо получить.
например: необходимо все заказы продажи отфильтровать по определенному виду оплаты, потом пробежаться по строкам и их суммам и посчитать сколько ожидаемых продаж с НДС 18, а сколько с НДС 0. пример дебильный, но смысл передал зачем оно. /> а мы тут уже помозгуем как проще и симпатичней это реализовать |
|
06.05.2013, 12:50 | #12 |
Участник
|
Ну вобщем я сделал через темповую таблицу. Пока что стоит задача решать все вопросы стандартными средствами навика, но как то это... трудоемко все. Думаю со временем предложить руководству такие задачи либо в кодюнит выносить и запросом на сервер данные брать, либо вобще связкой excel + sql обойтись, как уже советовали умные люди....
Спасибо всем за советы. |
|