![]() |
#21 |
Участник
|
Цитата:
Сообщение от 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. По всем результатам в теме отпишусь. У нас еще совещание будет - что делать )))) Посмотрим, что старейшины решат. Ситуация для всех была неожиданностью. И ваши рекомендации спасительны. И огромное спасибо за поддержку! Ваша помощь мгновенно снимает священный ужас ( ![]() |
|
![]() |
#22 |
Участник
|
Товарищи, вы такие умные. ))) Что я местами ничего не понимаю (((((((((((
"группировку" типа "группового кода" - это как ? У нас почти все - это магазины. Остальное - в пределах десятка. С таким перевесом магазинов от введения этого признака не будет особого эффекта. Или я ошибаюсь? |
|
![]() |
#23 |
Участник
|
Цитата:
Сообщение от 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 такого решения хватит... Переделайте логику отчета, чтобы в цикле считать по каждому складу, суммируя результат. |
|
![]() |
#24 |
Участник
|
Цитата:
Сообщение от mira
![]() Товарищи, вы такие умные. ))) Что я местами ничего не понимаю ((((((((((( "группировку" типа "группового кода" - это как ? У нас почти все - это магазины. Остальное - в пределах десятка. С таким перевесом магазинов от введения этого признака не будет особого эффекта. Или я ошибаюсь? Например, Магазины начинаются на 1, Склад на 2, Склад с Магазином на 3. Далее, к примеру, региональный признак, и вы получите кодировку типа 1_01_Тверская - Магазин в москве на тверской (01 - Региональный код Москвы) 1_02_Невский - Магазин в СПБ на Невском 2_03_Ленина - Склад в Екатеринбурге на пл. Ленина. Тогда посмотреть по всем магазинам фильтр будет '1_*' Посмотреть по всем объектам в Москве '?_01*' |
|
![]() |
#25 |
Administrator
|
|
|
![]() |
#26 |
Участник
|
Цитата:
"Item Group".SETFILTER("Item Group"."Location Filter", STRSUBSTNO('%1',txtLocFilter)); Нав ответил "Размер источника больше размера буфера получателя". Я с STRSUBSTNO('%1',txtLocFilter) по-разному попробовала. Это выражение вызывает ошибку даже вне фильтра. ПРичем, даже если я уменьшаю кол-во магазинов, и SETFILTER начинает выполняться, STRSUBSTNO('%1',txtLocFilter) все равно выдает эту ошибку. У STRSUBSTNO допустимый размер строки еще меньше? |
|
![]() |
#27 |
Участник
|
Цитата:
Можно фильтр пользователя раздергать на склады и сделать в любом элементе отчета обработку в цикле. А можно сделать DataItem по складам, перебирать их все и в OnAfterGetRecord() делать проверку очередного склада на вхождение в фильтр. Вам какой вариант больше нравится? Мне второй. Но я пытаюсь понять, нет ли здесь засады .. |
|
![]() |
#28 |
Участник
|
Цитата:
Сообщение от mira
![]() Товарищи, вы такие умные. ))) Что я местами ничего не понимаю (((((((((((
"группировку" типа "группового кода" - это как? У нас почти все - это магазины. Остальное - в пределах десятка. С таким перевесом магазинов от введения этого признака не будет особого эффекта. Или я ошибаюсь? Ну а вообще, можно сделать разные группировки из комбинаций 2 полей.. Что-то похожее есть в "распределении цен и товаров" в LSRetail, но я точно уже сейчас не помню как оно 100% работает. |
|
![]() |
#29 |
Участник
|
У фильтров кажись длина 256 символов максимум может быть. Тоже с этим бились, но ничего не придумали.
Можно ввести новое поле группировки для складов, и фильтр ставить уже по нему. |
|
![]() |
#30 |
Участник
|
Я, б.м., предложу совсем крайний вариант, но тож имеет место быть.
![]() Правда, оговорюсь сразу, что для его применения потребуется доп.финансирование ![]() У нас на фирме довольно популярна такая программа как Jet Reports. Это по сути add-ons к Excel. Но с его помощью можно гораздо меньшей кровью и человеко-затратами делать отчеты, вытягивая данные из Нава. В т.ч. там допустимы длинные фильтры (если фильтр не умещается в строке команды, то просто в строке просто пишешь адрес ячейки, в которой записан фильтр. Таких ячеек можно завести несколько) |
|
![]() |
#31 |
Участник
|
Выше предлагалось решение, которое у нас приняли.
Фильтр уменьшили за счет выявления возможных диапазонов.Т.е.код некоторых складов содержат номера и мы это использовали. Спасибо всем ответившим! |
|