18.09.2013, 18:56 | #1 |
Участник
|
Коллега активно убеждает в реальности изменения панели фильтрации в RTC (конкретно что туда можно всунуть фильтрацию по рассчетной переменной). Как я понял в экспресс фильтр подгребаются поля из списка на странице... Скрин панели и описание с MSDN прилагается.
__________________
Как только вы проиграете, все ваши прошлые победы забудут. |
|
24.09.2013, 11:00 | #2 |
Участник
|
Может быть коллега имел в виду вот это Динамические фильтры: Как приумножить радость от обладания
|
|
24.09.2013, 12:56 | #3 |
Участник
|
Цитата:
Сообщение от AlexB
Может быть коллега имел в виду вот это Динамические фильтры: Как приумножить радость от обладания
__________________
Как только вы проиграете, все ваши прошлые победы забудут. |
|
24.09.2013, 17:40 | #4 |
Участник
|
Нужного результата добиться не удалось - да я и сразу говорил что такое врядли реализуемо (рассчетное поле по которому нужен был фильтр рассчитывается по типу из нескольких таблиц). Зато появилась другая мысль, но с ней новый вопрос: опять та же панель фильтров - можно как-то с нее выдернуть установленные пользователем фильтра? через FILTERGROUP(0) не пошло - кто в курсе как до фильтров достучаться?
__________________
Как только вы проиграете, все ваши прошлые победы забудут. |
|
24.09.2013, 22:22 | #5 |
Участник
|
Цитата:
Подсунуть фильтр (причём по любому полю таблицы а не только из экспресс-фильтра!) - например: Код: SalesOrder.SETRANGE("Document Type",SalesOrder."Document Type"::Order); SalesOrder.SETRANGE("No.",'101005','101020'); PAGE.RUNMODAL(PAGE::"Sales Order List",SalesOrder); Код: SalesOrder.SETRANGE("Document Type",SalesOrder."Document Type"::Order); SalesOrder.SETRANGE("No.",'101005','101020'); IF NOT SalesOrder.ISEMPTY THEN BEGIN SalesOrder.FINDSET; REPEAT SalesOrderTmp:= SalesOrder; SalesOrderTmp.INSERT; UNTIL SalesOrder.NEXT = 0; END; PAGE.RUNMODAL(PAGE::"Sales Order List",SalesOrderTmp); Внимание: записи собранные во временную переменную надо показывать обычно в page с Editable=No, т.к. изменения во врем. таблицах не сохраняются. В приведённом варианте пользователь открывает карту из списка и в карте производит нужные изменения. Итак, определитесь, что вы хотите "подсунуть" пользователю: 1) фильтр, который пользователь видит и может изменить 2) или записи, предварительно отфильтрованные прогр. кодом И последнее: если ваш коллега активно вас убеждает в каких-то возможностях NAV'а, то почему он вам опять же активно не покажет то в чём убеждает? Или это тот классический вариант: знаю, но тебе не скажу, ищи решение сам? |
|
26.09.2013, 10:34 | #6 |
Участник
|
F1 - пока главный путеводитель по C/AL.
По поводу фильтров: в панели фильтрации пользователь может установить любые фильтра по любым полям - именно эти фильтра и надо вытащить... На сколько я понимаю они объединяются в FILTERGROUP(0) - но пока достучаться до этой группы не получается (возможно не оттуда "стучу"). Просто опыта в NAV разработке всего 2 месяца - но активно учусь))) На счет коллеги - так и работаем: "Это можно сделать - делай, как сама не знаю. Но точно можно!" - и приходится самому решать как реализовать...
__________________
Как только вы проиграете, все ваши прошлые победы забудут. |
|
26.09.2013, 15:41 | #7 |
Участник
|
Цитата:
Интересная у вас коллега! А вы ей на такого рода заявления скажите в ответ что-то вроде: "Это невозможно сделать. Почему - не знаю. Но точно невозможно!" |
|
27.09.2013, 13:38 | #8 |
Участник
|
Цитата:
Все же мне кажется есть возможность более элегантного решения...
__________________
Как только вы проиграете, все ваши прошлые победы забудут. |
|
27.09.2013, 14:21 | #9 |
Участник
|
Может кому-нибудь пригодится...
Фильтра наложеные через Filter Pane в RTC можно выловить через конструкцию: Код: Text := GETVIEW; таблица.SETVIEW(Text);
__________________
Как только вы проиграете, все ваши прошлые победы забудут. |
|