Автор Тема: Остатки по всем складам по группе. (Укрсклад)  (Прочитано 509 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Sheodar

  • Младший Пользователь
  • **
  • Сообщений: 11
  • Репутация: 0
Имеется необходимость получить остатки по всем складам по группе. Для понимания чего-сколько осталось и дальнейшего формирования заказа.
Что-то схожее с https://www.softbalance.com.ua/forum/index.php?topic=2191.0

Но, как там было отмечено в ответе #11, запрос в SQL блока
WHERE
 t.tip = #товар_группа_№# AND
//
Работает ТОЛЬКО на подгруппы. Пример:
У меня есть группа "Видеокарты". Там есть подгруппы "Видеочипы для ноутбука" "Декстопные видеокарты" "Геймерские видеокарты" .
Так, если я выбирают "Декстопные видеокарты", мне выведет остатки по всем складам, правильно. Но если я выберу группу "Видеокарты", мне выбьет ошибку "Отчет пустой".

На основе стандартного отчета "Остатки на складе":
Цитировать
SELECT
  gr.group_name,
  t.name, 
  s.num,   
  t.kod,
  CASE 
  WHEN (c.how_to_calc = 1) THEN t.#цена_тип_поле#/c.kurs 
  WHEN (c.how_to_calc = 0) THEN t.#цена_тип_поле#*c.kurs 
  END AS cena,   
  t.ed_izm,
  gr.num, 
  SUM(s.z_kolvo) AS z_kolvo, 
  SUM(((t.#цена_тип_поле#*s.z_kolvo)/#валюта_курс#)) AS z_suma
FROM 
  view_sklad_zal_all('#дата#') s,
  tovar_name t   
      LEFT JOIN currency c ON t.#цена_тип_поле_пр#_curr_id = c.num, 
  print_view_sklad_all(#активная_фирма_№#) gr 
WHERE   
  s.num = t.num AND   
  t.tip = gr.num AND         
  '#товар_группа№#'= t.tip AND         
  s.sklad_id = gr.sklad_id AND
  s.sklad_id > 0 AND
  t.visible = 1 
GROUP BY 
  1,2,3,4,5,6,7 
ORDER BY   
  gr.group_name, 
  t.#товар_сорт#
« Последнее редактирование: Февраля 23, 2019, 16:05:41 от Sheodar »

Sheodar

  • Младший Пользователь
  • **
  • Сообщений: 11
  • Репутация: 0
Re: Остатки по всем складам по группе. (Укрсклад)
« Ответ #1 : Февраля 27, 2019, 13:10:05 »
Неужели никто не сталкивался с подобной необходимостью?  ??? У разных производителей (в нашем случае, косметика), есть различные коллекции, в них свои группы. И подготовить заказ без знания "что на все складах есть вообще" невозможно. Сама детализация то не нужна - нужно только общее количество. Как и писалось в мейн посте, t.tip = '#товар_группа№#' работает как хотелось бы, но только на финальную подгруппу.

admin

  • Админ
  • Помогающий
  • *****
  • Сообщений: 6602
  • Репутация: 1082
  • Пол: Мужской
    • УкрБланк, УкрСклад, УкрЗарплата, Унидок
Re: Остатки по всем складам по группе. (Укрсклад)
« Ответ #2 : Февраля 27, 2019, 15:13:37 »
Вместо
t.tip = #товар_группа_№# ANDиспользуйте
t.tip IN (SELECT sg.num FROM get_tovar_subgroups(#товар_группа_№#,0) sg) AND

Sheodar

  • Младший Пользователь
  • **
  • Сообщений: 11
  • Репутация: 0
Re: Остатки по всем складам по группе. (Укрсклад)
« Ответ #3 : Февраля 27, 2019, 17:07:14 »
Вместо
t.tip = #товар_группа_№# ANDиспользуйте
t.tip IN (SELECT sg.num FROM get_tovar_subgroups(#товар_группа_№#,0) sg) AND
Спасибо! Это то, что нужно.

Batareyka

  • Новенький
  • *
  • Сообщений: 5
  • Репутация: 0
Re: Остатки по всем складам по группе. (Укрсклад)
« Ответ #4 : Февраля 27, 2019, 21:15:43 »
Это то, что нужно,только у меня прописываются все группы и подгруппы в отчете,как это можно исправить?

admin

  • Админ
  • Помогающий
  • *****
  • Сообщений: 6602
  • Репутация: 1082
  • Пол: Мужской
    • УкрБланк, УкрСклад, УкрЗарплата, Унидок
Re: Остатки по всем складам по группе. (Укрсклад)
« Ответ #5 : Февраля 28, 2019, 10:41:07 »
Это то, что нужно,только у меня прописываются все группы и подгруппы в отчете,как это можно исправить?

Что именно исправить?

Batareyka

  • Новенький
  • *
  • Сообщений: 5
  • Репутация: 0
Re: Остатки по всем складам по группе. (Укрсклад)
« Ответ #6 : Февраля 28, 2019, 12:32:26 »
Один и тот же товар дублируется во всех группах и подгрупах как на скриншоте, это очень не удобно.Подскажите пожалуйста,как в этом отчете убрать сортировку по имени?

admin

  • Админ
  • Помогающий
  • *****
  • Сообщений: 6602
  • Репутация: 1082
  • Пол: Мужской
    • УкрБланк, УкрСклад, УкрЗарплата, Унидок
Re: Остатки по всем складам по группе. (Укрсклад)
« Ответ #7 : Февраля 28, 2019, 12:37:46 »
Один и тот же товар дублируется во всех группах и подгрупах как на скриншоте, это очень не удобно.Подскажите пожалуйста,как в этом отчете убрать сортировку по имени?

Значит вы неправильно сделали отчет, мы вам только выборку по группам дали для вашего отчета, не более.

Sheodar

  • Младший Пользователь
  • **
  • Сообщений: 11
  • Репутация: 0
В общем, прошло чуть времени и понял, что основная задача была все же поставлена мной не совсем правильно... Все же есть необходимость смотреть остатки не только в сумме, но и конкретно, по складам. Пример - Остатки по всем складам (детализация).
Но, здесь всплывает другой вопрос:
t.tip IN (SELECT sg.num FROM get_tovar_subgroups(#товар_группа_№#,0) sg) ANDРаботает как надо - фильтрует все правильно. Я не могу понять, как сделать саму форму отчета...
В стандартной форме детализации используется cross-tab, которая представляет из себя полотно текста, без разделений, групп, итогов по группе и т.д.
Но в обычном отчете "остатки по всем складам" все выглядит куда более приемлимо.
Группа > Список товаров > Итог по группе.
Cross tab - это прямая таблица с заголовками и туда не получается вставить "пробелы" в виде названия группы/итогов группы. А в стандартном виде отчета не получается получить весь список складов/остатки на конкретном складе. Как бы совместить "логику" детализации и "дизайн" обычного отчета?
UPD (15.03):
В общем, нужен вот такой вот вид (скриншот 1) только сейчас в остатках пишет сколько остаток "всего" на всех складах, а нужно как в детализации: сколько на каждом и в конце сумму
« Последнее редактирование: Марта 15, 2019, 11:33:12 от Sheodar »

Sheodar

  • Младший Пользователь
  • **
  • Сообщений: 11
  • Репутация: 0
Подниму тему, т.к. вопрос все еще актуальный... а поиск по форуму "cross tab" мало что дал. Это цельный элемент, и вставить "в процессе" группу не выходит. Есть группировка вертикальная (добавить столбец группы и объединить ячейки (и то, это не совсем работает, от слова совсем: скрин 1), но тогда, оно, ко всем еще, объединяет, например, цены на товар, что не нужно). А вот как сделать группировку горизонтальную в кросс табе я не нашел, сколько не пытался
« Последнее редактирование: Июня 12, 2019, 10:02:20 от Sheodar »