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