• Ласкаво просимо на Спільнота для обміну досвідом між користувачами програм УкрБланк, УкрСклад, УкрЗарплата.
 

Колонка "Остатки" в отчете "Реализация товара"

Автор Mobzona, Березень 04, 2015, 23:45:29

Попередня тема - Наступна тема

0 Користувачі і 2 Гостей дивляться цю тему.

Mobzona

Может кто подскажет как правильно добавить в SQL запрос строки, которые бы выводили в отчете "Реализация товара" дополнительную колонку "Остатки"? Это нужно для того, чтобы было удобнее составлять заказ поставщику на основе данных о реализации товара за выбранный период.

victorpolo

Используйте переменную [Товар.КолвоНаСкладе] в дизайнере

Mobzona

Цитата: victorpolo від Березень 05, 2015, 10:57:39
Используйте переменную [Товар.КолвоНаСкладе] в дизайнере
Добавил переменную в дизайнере. Но, видимо, кроме этого, надо еще в запросе указать как-то эту переменную. Потому что в отчете не отображается "остаток на складе" после добавления переменной только в дизайнере.

admin

Цитата: victorpolo від Березень 05, 2015, 10:57:39
Используйте переменную [Товар.КолвоНаСкладе] в дизайнере

Эта переменная только для документов.

Как делать отчет на основе другого?
1. Заходим в меню "Отчеты" и открываем нужный нам отчет.
2. Потом нажимаем на кнопку "В режим редактирования", и раскрываем
окно на максимум (так будет удобней)
3. В открывшемся окне в полях "Название по-украински" и "Название
по-русски", меняем или дописываем название для будущего отчета.
4. Далее меняем или правим в окне SQL запрос текст SQL запроса к базе
данных.
5. Если надо включаем в "Выбор нужных параметров для отчета" галочки
что надо выбирать перед формированием отчета, а что нет.
6. Нажимаем кнопку "Сохранить как новый", и закрываем окно.
7. Далее заходим обратно в меню Отчеты : Отчеты пользователей и ищем
имя отчета которое вы задали в п.3 Открываем его и запускаем, если
надо правим печатную форму.

в п.4 меняем SQL текст на:

SELECT
  sw.group_name,   
  tm.tovar_id, 
  tn.kod,   
  tn.name,   
  tn.ed_izm,   
  tn.cena,   
  tn.cena_r,   
  tn.cena_o,   
  tz.kolvo,
  SUM(tm.suma_znig_diff) AS tov_znig, 
  SUM(tm.from_kolvo) AS tov_kolvo, 
  AVG(tm.from_cena) AS tov_cena, 
  AVG(tm.cena_pdv) AS tov_cena_pdv, 
  SUM(tm.from_suma) AS tov_suma, 
  SUM(tm.suma_pdv) AS tov_pdv, 
  SUM(tm.from_suma+tm.suma_pdv) AS tov_suma_pdv 
FROM   
  tovar_move tm,
  tovar_zal tz,
  vnakl vn,
  print_view_sklad(#товар_группа_№#,#склад_№#) sw,
  tovar_name tn   
WHERE   
  tz.sklad_id = #склад_№# AND
  tz.tovar_id = tn.num AND
  tm.doc_type_id = 1 AND 
  tm.doc_id = vn.num AND
#if #пользователь_№# = -1 #then
#else
  vn.doc_user_id = #пользователь_№# AND
#endif   
  tm.mdate >= '#дата_с#' AND
  tm.mdate <= '#дата_по#' AND
  sw.num = tn.tip AND   
  tm.tovar_id = tn.num AND 
  tm.from_sklad_id = #склад_№# 
GROUP BY   
  1,2,3,4,5,6,7,8,9
HAVING
  SUM(tm.from_kolvo) > 0
ORDER BY   
  sw.group_name


в дизайнере используем переменную [DataRep."KOLVO"].

Отчет показывает текущий остаток (тот что в справочнике товаров), не на дату.

Mobzona

Цитата: admin від Березень 05, 2015, 12:25:56
Цитата: victorpolo від Березень 05, 2015, 10:57:39
Используйте переменную [Товар.КолвоНаСкладе] в дизайнере

Эта переменная только для документов.

Как делать отчет на основе другого?
1. Заходим в меню "Отчеты" и открываем нужный нам отчет.
2. Потом нажимаем на кнопку "В режим редактирования", и раскрываем
окно на максимум (так будет удобней)
3. В открывшемся окне в полях "Название по-украински" и "Название
по-русски", меняем или дописываем название для будущего отчета.
4. Далее меняем или правим в окне SQL запрос текст SQL запроса к базе
данных.
5. Если надо включаем в "Выбор нужных параметров для отчета" галочки
что надо выбирать перед формированием отчета, а что нет.
6. Нажимаем кнопку "Сохранить как новый", и закрываем окно.
7. Далее заходим обратно в меню Отчеты : Отчеты пользователей и ищем
имя отчета которое вы задали в п.3 Открываем его и запускаем, если
надо правим печатную форму.

в п.4 меняем SQL текст на:

SELECT
  sw.group_name,   
  tm.tovar_id, 
  tn.kod,   
  tn.name,   
  tn.ed_izm,   
  tn.cena,   
  tn.cena_r,   
  tn.cena_o,   
  tz.kolvo,
  SUM(tm.suma_znig_diff) AS tov_znig, 
  SUM(tm.from_kolvo) AS tov_kolvo, 
  AVG(tm.from_cena) AS tov_cena, 
  AVG(tm.cena_pdv) AS tov_cena_pdv, 
  SUM(tm.from_suma) AS tov_suma, 
  SUM(tm.suma_pdv) AS tov_pdv, 
  SUM(tm.from_suma+tm.suma_pdv) AS tov_suma_pdv 
FROM   
  tovar_move tm,
  tovar_zal tz,
  vnakl vn,
  print_view_sklad(#товар_группа_№#,#склад_№#) sw,
  tovar_name tn   
WHERE   
  tz.sklad_id = #склад_№# AND
  tz.tovar_id = tn.num AND
  tm.doc_type_id = 1 AND 
  tm.doc_id = vn.num AND
#if #пользователь_№# = -1 #then
#else
  vn.doc_user_id = #пользователь_№# AND
#endif   
  tm.mdate >= '#дата_с#' AND
  tm.mdate <= '#дата_по#' AND
  sw.num = tn.tip AND   
  tm.tovar_id = tn.num AND 
  tm.from_sklad_id = #склад_№# 
GROUP BY   
  1,2,3,4,5,6,7,8,9
HAVING
  SUM(tm.from_kolvo) > 0
ORDER BY   
  sw.group_name


в дизайнере используем переменную [DataRep."KOLVO"].

Отчет показывает текущий остаток (тот что в справочнике товаров), не на дату.

Все сделал. Все работает как я и хотел. Спасибо большое. Теперь заказ будет составлять значительно проще. А чуть позже я наваяю ТЗ для полноценного отчета "Заказ постащику". Еще раз благодарю!

Vad

Подскажите как правильно в этот запрос еще добавить строки, чтобы можно было видеть производителя. Много похожих товаров с разными производителями.