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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 08.02.2011, 10:43   #21  
mira is offline
mira
Участник
Аватар для mira
 
140 / 25 (1) +++
Регистрация: 18.03.2007
Адрес: Москва
Цитата:
Сообщение от Sancho Посмотреть сообщение
решение с filtergroup - респектище!

filtergroup(2);
setrange("Location Filter",txtFilter[1]);
filtergroup(3);
setrange("Location Filter",txtFilter[2]);
filtergroup(4);
setrange("Location Filter",txtFilter[3]);
filtergroup(5);
setrange("Location Filter",txtFilter[4]);
...

в каждом txtFilter набор складов длинной не более 500 символов, например.
сначала создаете тексты разного набора складов, потом по очереди разным группам их скармливаете как фильтр!
на ближайшие лет 5 такого решения хватит...

Ребят, вы гении! Даже я поняла ))))))))))))))))

СНачала попробую совет STRSUBSTNO - это быстро. Потом с filtergroup.
По всем результатам в теме отпишусь.

У нас еще совещание будет - что делать )))) Посмотрим, что старейшины решат.
Ситуация для всех была неожиданностью. И ваши рекомендации спасительны.

И огромное спасибо за поддержку! Ваша помощь мгновенно снимает священный ужас ( ) и позволяет получать удовольствие от процесса.
Старый 08.02.2011, 10:52   #22  
mira is offline
mira
Участник
Аватар для mira
 
140 / 25 (1) +++
Регистрация: 18.03.2007
Адрес: Москва
Цитата:
Сообщение от RedFox Посмотреть сообщение
Цитата:
Сообщение от Sancho Посмотреть сообщение
а более грамотно будет, имхо, найти какой-то определяющий признак для каждого склада: это будет опшн (склад/магазин/прочее) или код на основе интежера (10 - склады, 20 - магазины, 25 - магазины без склада, например) и этот признак протащить в ОПЕРАЦИИ. вы же операции фильтруете?
Или попытаться ввести "группировку" типа "группового кода".
Товарищи, вы такие умные. ))) Что я местами ничего не понимаю (((((((((((
"группировку" типа "группового кода" - это как ?

У нас почти все - это магазины. Остальное - в пределах десятка. С таким перевесом магазинов от введения этого признака не будет особого эффекта. Или я ошибаюсь?
Старый 08.02.2011, 11:22   #23  
.Quattro. is offline
.Quattro.
Участник
Лучший по профессии 2009
 
194 / 22 (1) +++
Регистрация: 22.05.2006
Цитата:
Сообщение от Sancho Посмотреть сообщение
решение с filtergroup - респектище!

filtergroup(2);
setrange("Location Filter",txtFilter[1]);
filtergroup(3);
setrange("Location Filter",txtFilter[2]);
filtergroup(4);
setrange("Location Filter",txtFilter[3]);
filtergroup(5);
setrange("Location Filter",txtFilter[4]);
...

в каждом txtFilter набор складов длинной не более 500 символов, например.
сначала создаете тексты разного набора складов, потом по очереди разным группам их скармливаете как фильтр!
на ближайшие лет 5 такого решения хватит...
Это никак не подойдет - вы получите перечень складов, которые есть во всех 4 фильтрах.

Переделайте логику отчета, чтобы в цикле считать по каждому складу, суммируя результат.
Старый 08.02.2011, 11:29   #24  
.Quattro. is offline
.Quattro.
Участник
Лучший по профессии 2009
 
194 / 22 (1) +++
Регистрация: 22.05.2006
Цитата:
Сообщение от mira Посмотреть сообщение

Товарищи, вы такие умные. ))) Что я местами ничего не понимаю (((((((((((
"группировку" типа "группового кода" - это как ?

У нас почти все - это магазины. Остальное - в пределах десятка. С таким перевесом магазинов от введения этого признака не будет особого эффекта. Или я ошибаюсь?
Имеется в виду вести кодировку кодов магазинов.
Например, Магазины начинаются на 1, Склад на 2, Склад с Магазином на 3.
Далее, к примеру, региональный признак, и вы получите кодировку типа
1_01_Тверская - Магазин в москве на тверской (01 - Региональный код Москвы)
1_02_Невский - Магазин в СПБ на Невском
2_03_Ленина - Склад в Екатеринбурге на пл. Ленина.

Тогда посмотреть по всем магазинам фильтр будет '1_*'
Посмотреть по всем объектам в Москве '?_01*'
Старый 08.02.2011, 11:48   #25  
Sancho is offline
Sancho
Administrator
Аватар для Sancho
Лучший по профессии 2017
Лучший по профессии 2009
 
1,294 / 221 (10) ++++++
Регистрация: 11.01.2006
Цитата:
Сообщение от .Quattro. Посмотреть сообщение
Это никак не подойдет - вы получите перечень складов, которые есть во всех 4 фильтрах.
точно! решение одновременно красивое и неработоспособное. я был очарован красотой и не подумал.

простите.
Старый 08.02.2011, 13:39   #26  
mira is offline
mira
Участник
Аватар для mira
 
140 / 25 (1) +++
Регистрация: 18.03.2007
Адрес: Москва
Цитата:
Сообщение от AlexB Посмотреть сообщение
Попробуйте:
Код:
"Item Group".SETFILTER("Location Filter",STRSUBSTNO('%1',txtLocFilter));
На вид одно и то же, но я по опыту знаю, что SETFILTER иногда совсем необъяснимо глючит и меня часто выручал STRSUBSTNO.
На вариант
"Item Group".SETFILTER("Item Group"."Location Filter", STRSUBSTNO('%1',txtLocFilter));

Нав ответил "Размер источника больше размера буфера получателя".

Я с STRSUBSTNO('%1',txtLocFilter) по-разному попробовала. Это выражение вызывает ошибку даже вне фильтра. ПРичем, даже если я уменьшаю кол-во магазинов, и SETFILTER начинает выполняться, STRSUBSTNO('%1',txtLocFilter) все равно выдает эту ошибку.

У STRSUBSTNO допустимый размер строки еще меньше?
Старый 08.02.2011, 14:00   #27  
mira is offline
mira
Участник
Аватар для mira
 
140 / 25 (1) +++
Регистрация: 18.03.2007
Адрес: Москва
Цитата:
Сообщение от .Quattro. Посмотреть сообщение
Переделайте логику отчета, чтобы в цикле считать по каждому складу, суммируя результат.
Вы уж простите, что я советуюсь дальше ..
Можно фильтр пользователя раздергать на склады и сделать в любом элементе отчета обработку в цикле.

А можно сделать DataItem по складам, перебирать их все и в OnAfterGetRecord() делать проверку очередного склада на вхождение в фильтр.

Вам какой вариант больше нравится? Мне второй. Но я пытаюсь понять, нет ли здесь засады ..
Старый 08.02.2011, 15:01   #28  
RedFox is offline
RedFox
Участник
 
1,441 / 10 (0) +
Регистрация: 28.12.2004
Адрес: Киев
Цитата:
Сообщение от mira Посмотреть сообщение
Товарищи, вы такие умные. ))) Что я местами ничего не понимаю (((((((((((
"группировку" типа "группового кода" - это как?
У нас почти все - это магазины. Остальное - в пределах десятка. С таким перевесом магазинов от введения этого признака не будет особого эффекта. Или я ошибаюсь?
мне трудно сейчас сказать как именно лучше сгрупировать, но например на магазинах сделать поле, получаемое из списка (например, МАГАЗИН), а для остальных = Склад, ОФИС, Прочее. Ну а в фильтре можно задавать значения даже типа <>.
Ну а вообще, можно сделать разные группировки из комбинаций 2 полей.. Что-то похожее есть в "распределении цен и товаров" в LSRetail, но я точно уже сейчас не помню как оно 100% работает.
Старый 08.02.2011, 17:51   #29  
Yakuza is offline
Yakuza
Участник
 
124 / 10 (1) +
Регистрация: 26.10.2004
У фильтров кажись длина 256 символов максимум может быть. Тоже с этим бились, но ничего не придумали.
Можно ввести новое поле группировки для складов, и фильтр ставить уже по нему.
Старый 09.02.2011, 11:21   #30  
Kadawrik is offline
Kadawrik
Участник
 
279 / 11 (1) +
Регистрация: 04.11.2010
Я, б.м., предложу совсем крайний вариант, но тож имеет место быть.
Правда, оговорюсь сразу, что для его применения потребуется доп.финансирование (на дополнительный софт)
У нас на фирме довольно популярна такая программа как Jet Reports. Это по сути add-ons к Excel. Но с его помощью можно гораздо меньшей кровью и человеко-затратами делать отчеты, вытягивая данные из Нава. В т.ч. там допустимы длинные фильтры (если фильтр не умещается в строке команды, то просто в строке просто пишешь адрес ячейки, в которой записан фильтр. Таких ячеек можно завести несколько)
Старый 10.02.2011, 13:06   #31  
mira is offline
mira
Участник
Аватар для mira
 
140 / 25 (1) +++
Регистрация: 18.03.2007
Адрес: Москва
Выше предлагалось решение, которое у нас приняли.
Фильтр уменьшили за счет выявления возможных диапазонов.Т.е.код некоторых складов содержат номера и мы это использовали.

Спасибо всем ответившим!
 


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

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

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