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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 16.05.2006, 12:49   #1  
MaxAR is offline
MaxAR
Участник
 
22 / 10 (1) +
Регистрация: 23.03.2006
Подскажите, как автоматически передать значения фильтров в отчет из формы.
Ситуация следующая:
Я устанавливаю значения фильтров в форме для одной таблицы и необходимо чтобы после выбора фильтров их значения передавались для фильтрации данных в другой таблице, из которой потом создается отчет. Вручную каждый раз устанавливать фильтры для отчета очень не удобно.
Старый 16.05.2006, 13:08   #2  
bird_imported is offline
bird_imported
Участник
 
45 / 10 (1) +
Регистрация: 11.05.2006
Один из способов:

rec.SETFILTER(...);
rec.SETRANGE(...);
REPORT.RUN(номер_отчета, TRUE, TRUE,rec);

запустит отчет с установленными в rec фильтрами. Да, естессно, что отчет должен быть основан на этой таблице
Старый 28.06.2006, 18:30   #3  
Storkich is offline
Storkich
Участник
 
149 / 10 (1) +
Регистрация: 08.03.2007
А если несколько таблиц?
Например
Код:
Lication
  Item
То процедуру писать?
Старый 28.06.2006, 18:56   #4  
Yoil is offline
Yoil
NavAx
NavAx Club
Лучший по профессии 2017
Лучший по профессии 2009
 
1,574 / 70 (6) ++++
Регистрация: 20.11.2002
Адрес: Msk
Ну вообще да, наверное проще всего написать в отчете функции, принимающий и накладывающие фильтры, объявить переменную типа репорт, вызвать функции и потом его запустить.
__________________
"Моей лошадке ядрышком полмордочки снесло..."
А.В.Суворов, письма к дочери
Старый 03.07.2006, 16:12   #5  
romeo is offline
romeo
Участник
Аватар для romeo
 
564 / 10 (2) +
Регистрация: 31.03.2004
Можно в репорте определить датаайтемы на нужных таблицах. Обрабатывать их в отчете (обрабатывать записи этих айтемов) совсем не обязательно. Они будут только для принятия фильтров. То есть в триггере OnPreDataItem нужно написать CurrReport.BREAK. Наложить на эти айтемы фильтры извне можно командой Report.SETTABLEVIEW(Rec). Айтемов может быть несколько.
Старый 21.07.2006, 11:28   #6  
The_Navisioner is offline
The_Navisioner
Участник
Аватар для The_Navisioner
 
22 / 10 (1) +
Регистрация: 25.01.2006
Цитата:
Сообщение от Bird Посмотреть сообщение
Один из способов:

rec.SETFILTER(...);
rec.SETRANGE(...);
REPORT.RUN(номер_отчета, TRUE, TRUE,rec);

запустит отчет с установленными в rec фильтрами. Да, естессно, что отчет должен быть основан на этой таблице
А ещё можно в отчёт сделать функцию:
------SetParams(_String: Text[1024])-----
Filter := _String;
------------------------------------------------

А потом из вызывающей формы:
ReportVar.SetParams(Rec.GETVIEW);

А потом где там надо в отчёте:
SETVIEW(Filter);

Извращение, конечно.
Удобно: мало кода, репорт и форма будут иметь одинаковые ключи и фильтры.
Плюс строку со вьюшкой если надо можно парсить вдоль и поперёк приятственно, или передавать в отчёт какой-нибудь самодельный фильтр.
Неудобно: если вьюшка будет больше килобайта - вылетит.
__________________
--- GoldEd 2.50+/w32*Origin: Луц по 20 чаттлов! Остановите рост цен на бензин. (2:5099/15)
Старый 21.07.2006, 12:07   #7  
Jackal1 is offline
Jackal1
Участник
 
54 / 10 (1) +
Регистрация: 29.07.2005
Адрес: Киев
Можно в тот же SetParam передать просто рек на котором лежат фильтры, а потом на OnPreDataItem написать COPYFILTER
Старый 21.07.2006, 13:09   #8  
The_Navisioner is offline
The_Navisioner
Участник
Аватар для The_Navisioner
 
22 / 10 (1) +
Регистрация: 25.01.2006
Цитата:
Сообщение от Jackal Посмотреть сообщение
Можно в тот же SetParam передать просто рек на котором лежат фильтры, а потом на OnPreDataItem написать COPYFILTER
Тогда уж COPYFILTERS.
Но COPYFILTERS вроде бы не копирует ключ, может случиться фильтрация не по тому ключу.
__________________
--- GoldEd 2.50+/w32*Origin: Луц по 20 чаттлов! Остановите рост цен на бензин. (2:5099/15)
 


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

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

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