27.04.2005, 12:32 | #1 |
Участник
|
FlowField, в TableFilter
Подскажите, можно ли при создании поля FlowField, в TableFilter использовать использовать выражения типа ..TODAY-1
А то нужно сделать Флоуфилд который бы показывал сумму по операциям за определенные даты. |
|
27.04.2005, 12:46 | #2 |
NavAx
|
Можно использовать DateFilter типа FlowFilter, в который класть TODAY - 1
|
|
27.04.2005, 13:05 | #3 |
Участник
|
не понял, поподробнее plz.
|
|
27.04.2005, 14:01 | #4 |
NavAx
|
Сразу оговорюсь: я про 3.6. Что в 2.6 - не в курсе, к сожалению.
Дык вот, посмотрим для примера на таблицу Customer, на поле Sales (LCY) Это FlowField. Расчитывается, как сумма по полю Sales (LCY) таблицы Cust. Ledger Entry. Смотрим фильтры: Customer No. No. Global Dimension 1 Code Global Dimension 1 Filter Global Dimension 2 Code Global Dimension 2 Filter Posting Date Date Filter Currency Code Currency Filter Agreement No. Agreement Filter Последние 5 фильтров выстроены не по обычным полям таблицы Customer, а по полям типа FlowFilter. Что это означает: если Вы просто откроете табличку Customer, то увидите в этом поле значения, не завязанные на измерения, дату, валюту и договора. Если же Вы установите значения для, например, Date Filter, то в сумму будут входить уже только те клиентские операции из 21-й таблицы, в которых Posting Date попадает в диапазон, заданный в Date Filter. Т.е., например, если Вам нужно посмотреть сумму только по вчерашним операциям - вводите в Date Filter значение (TODAY - 1). Если по всем операциям до вчерашнего дня включительно - вводите '..TODAY - 1' и т.п. Соответственно, если, например, нужно в какой-то форме выводить суммы только по вчерашнему дню, то достаточно на OnOpenForm написать SETFILTER("Date Filter", TODAY - 1); Если в отчете - опять же просто положите фильтр на датаайтем и т.п. На всякий случай, для более конструктивной беседы, опишите более подробно свою задачу З.Ы. Флоуфильтры выставляются по нажатию кнопочки Shift + F7 |
|
27.04.2005, 15:43 | #5 |
Участник
|
задача такова:
нужно показать сумму всех заявок на оплату (это бюджетирование) которые были неоплачены и были подписаны более двух дней назад. для этого создал FlowField поле с такими TableFilter: : |
|
27.04.2005, 16:02 | #6 |
Участник
|
Если бы в значении фильтра в Navision можно было использовать функции (или сложные выражения), то ваша задумка может быть удалась.
|
|
27.04.2005, 16:07 | #7 |
Участник
|
это понятно, а можно ли как-то исхитриться и обойти эти ограничения. или сделать по-другому?
|
|
27.04.2005, 16:13 | #8 |
NavAx
|
Ну я же все написал.
Создайте там, где нужна эта сумма, поле Date Filter типа Flow Filter. В фильтрах FlowFiled'а напишите не Дата Подп. Фин. Дир. FILTER TODAY - 2, а напишите Дата Подп. Фин. Дир. FILTER Date Filter Задайте значение Date Filter = '..TODAY-2' и будет щастье. |
|
27.04.2005, 16:21 | #9 |
Участник
|
да, действительно...
торможжжу... Спасибо ОГРОМНОЕ ! |
|
27.04.2005, 16:32 | #10 |
Участник
|
Цитата:
Изначально опубликовано Yoil
Задайте значение Date Filter = '..TODAY-2' и будет щастье. Не, не будет. |
|
27.04.2005, 16:47 | #11 |
NavAx
|
Да, Шрэк, тут для ЩАСТЬЯ нужно сделать больше - написать на OnOpenForm
SETFILTER("Date Filter", '..' + FORMAT(TODAY - 2)); Действительно, ручками оно выражение TODAT-2 не разберет, т.к. FlowFilter - это совсем не тип Date, прошу прощения, если ввел в заблуждение. |
|
27.04.2005, 16:51 | #12 |
Участник
|
нет, имелось в виду поставить фильтр на "Дата Фильтр" при открытии формы:
Код: SETFILTER("Дата Фильтр", '..%1', TODAY-1) Yoil, спасибо ещё раз! |
|
27.04.2005, 16:53 | #13 |
Участник
|
Пардон, теперь понял, что разговор шел о SETFILTER.
|
|
27.04.2005, 17:27 | #14 |
Участник
|
Господа, хочу ещё спросить.
А есть ли возможность изменить сумму, которая появляется в созданном поле FlowField. Поясню: в заявках на оплату есть поля "Код оригинальной валюты", "Валюта платежа" и "Тип оплаты". Например заявка оформлена на $1000, а оплатить нужно в рублях: "Код оригинальной валюты" USD "Валюта платежа" RUR "Тип оплаты" "Из кассы" Создал флоуфилд-поля (вопросы по ним, я собственно и задавал в этом треде) : "Касса РУБ" "Касса USD" "РасСчет РУБ" "РасСчет USD" В созданных полях показываются суммы, отфильтрованные по простому принципу, если "Код оригинальной валюты" = RUR и "Валюта платежа" = RUR и "Тип оплаты" = "Из кассы", то данная сумма полюсуется к сумме поля "Касса РУБ". По аналогии фильтруются и остальные поля. Это была преамбула. А теперь вопрос знатокам (с) "Что? Где? Когда?" нужно заявки которые: "Код оригинальной валюты" USD "Валюта платежа" RUR "Тип оплаты" "Из кассы" плюсовать к рублёвой кассе (созданное флоуфилд-поле"Касса РУБ") по текущему курсу. Да и вообще возможно ли это? |
|
28.04.2005, 08:24 | #15 |
NavAx
|
Гм. Плюсовать по текущему курсу (т.е. если RUR, то складывать во флоуфилд просто значение поля, а если USD, то значение поля, умноженное на курс) нельзя.
Придется писать функцию ручками. Но, например, если у Вас RUR - локальная валюта, то обычно в "родных" табличках Навыжна бывают поля типа Amount (LCY), где будет храниться сумма в рублях и считать можно на их основе либо вообще не учитываю валюту Код оригинальной валюты, либо задав связку Код оригинальной валюты = Currency Filter (тип - флоуфильтер). Но здесь получится не сумма в USD, умноженная на конкретно текущий курс, а именно сумма, умноженная на курс, соответствующий дате заявки. |
|
28.04.2005, 09:18 | #16 |
Участник
|
да, по курсу соответствующему дате заявки поле есть. но нужно по текущему курсу.
если не особо затруднит можно привести общую идеологию этой функции. Заранее благодарен. |
|
28.04.2005, 09:46 | #17 |
NavAx
|
Ну вместо флоуфилда будет считать что-нибудь типа
PHP код:
PHP код:
|
|
28.04.2005, 11:36 | #18 |
Участник
|
угу, благодарен.
реализовал алгоритм по второму варианту. |
|
|
Похожие темы | ||||
Тема | Ответов | |||
Можно ли сортировать по FlowField??? | 3 | |||
Вычисление FlowField в отчете | 3 | |||
Дублирование FlowField | 7 | |||
SIFT over FlowField | 1 | |||
Фильтры в CalcFormula у FlowField | 2 |
|