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

Наши программы => УкрСклад => Тема розпочата: Kalibr2000 від Вересень 19, 2013, 15:28:49

Назва: Как вывести отчет с указанием времени?
Відправлено: Kalibr2000 від Вересень 19, 2013, 15:28:49
     Доброго дня, добрые люди!

     Подскажите, как можно вывести отчет реализации товара, с указанием даты и времени,

например:   с 1230  19,09,2013  по  20,09,2013     

(может в ручном режиме, с указанием конкретного времени в SQL запросе?)

Назва: Re: Как вывести отчет с указанием времени?
Відправлено: semp від Вересень 19, 2013, 16:11:54
Цитата: Kalibr2000 від Вересень 19, 2013, 15:28:49
   
(может в ручном режиме, с указанием конкретного времени в SQL запросе?)



Если Вас устраивает вводить время в ручном режиме, то открываете нужный отчет, нажимаете кнопку "В режим редактирования", в "Выбор нужных параметров для отчета" ставите "галочку" "Произвольный текст", затем кнопку "Редактирование шаблона" и в нужном месте добавляете [текст_1] ; сохраняете отчет как новый, изменив его название если нужно и по идее должно работать.
Назва: Re: Как вывести отчет с указанием времени?
Відправлено: Kalibr2000 від Вересень 19, 2013, 17:04:30
     А как сделать выборку для отчета     с  1230  19,09,2013  по  20,09,2013

Назва: Re: Как вывести отчет с указанием времени?
Відправлено: TheOK від Вересень 20, 2013, 00:12:16
1) Создать новый отчет на основании реализация товара (сохранить как новый).
2) Перейти в него (созданный отчет находится в отчетах пользователей)
3) Нажать кнопку В режим редактирования
4) Поставить "отметку" напротив поля Произвольный текст

5) В поле SQL запрос вставить текст, приведенный ниже

6) Выставить все параметры (включая дату)
7) В появившееся поле (Произвольный текст) вставить выражение:
'19.09.2013 12:30' and '21.09.2013'
8) Запускаете


Отчет без введенного периода (см.П.7) работать не должен (не проверял).
Указанное ограничение времени работает как дополнительный фильтр по дате создания документа. Т.е. вы выбрали все документы ограниченные параметрами отчета (включая дату указанную в поле документа).






SELECT
  sw.group_name,   
  tm.tovar_id, 
  tn.kod,   
  tn.name,   
  tn.ed_izm,   
  tn.cena,   
  tn.cena_r,   
  tn.cena_o,   
  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, 
  vnakl vn,
  print_view_sklad(#товар_группа_№#,#склад_№#) sw,
  tovar_name tn   
WHERE   
  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 = #склад_№# 
  and vn.DOC_CREATE_TIME between #текст_1#
GROUP BY   
  1,2,3,4,5,6,7,8   
HAVING
  SUM(tm.from_kolvo) > 0
ORDER BY   
  sw.group_name
Назва: Re: Как вывести отчет с указанием времени?
Відправлено: Kalibr2000 від Вересень 20, 2013, 10:41:47
     TheOK - СУПЕР ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !

     Может добавить в подписи номер счета - для благодарностей от форумчан?

     Очень помогли, СПАСИБО!

     Я так понял, что   vn.DOC_CREATE_TIME  - название столбца "время создания документа"?

     А какое название столбца "время последнего редактирования" ?
Назва: Re: Как вывести отчет с указанием времени?
Відправлено: TheOK від Вересень 20, 2013, 12:14:48
Да, вы правы, это столбец со временем создания документа.
Столбец со временем последнего редактирования документа   vn.DOC_MODIFY_TIME

P.S. Рад, что смог помочь, для меня часто это приятнее поступления денег на счет.
Назва: Re: Как вывести отчет с указанием времени?
Відправлено: Kalibr2000 від Вересень 24, 2013, 16:26:18
       Уважаемый TheOK!

  Подскажите, можно ли в Вашем отчете вывести остатки на складе реализованного товара (минимальный остаток я вывел с помощью поля tn.kolvo_min) ?

Назва: Re: Как вывести отчет с указанием времени?
Відправлено: TheOK від Вересень 25, 2013, 07:58:11
Цитата: Kalibr2000 від Вересень 24, 2013, 16:26:18
       Уважаемый TheOK!

  Подскажите, можно ли в Вашем отчете вывести остатки на складе реализованного товара (минимальный остаток я вывел с помощью поля tn.kolvo_min) ?
Мин остаток вы вывели правильно.

Запрос, расположенный ниже не проверял, сейчас нет возможности.
Будут ошибки, пишите
Не забывайте, что это тот отчет, в котором нужно вводить дату (или дату и время) в поле произвольный текст



SELECT
sw.group_name,
tm.tovar_id,
tn.kod,
tn.name,
tn.ed_izm,
tn.cena,
tn.cena_r,
tn.cena_o,
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  ,
tz.kolvo as sklad_zal
FROM
     tovar_move tm,
vnakl vn,
print_view_sklad(#товар_группа_№#,#склад_№#) sw,
tovar_name tn   
inner join tovar_zal tz on tn.num = tz.tovar_id and tz.sklad_id=#склад_№#
WHERE     
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 = #склад_№#
and vn.DOC_CREATE_TIME between #текст_1#
GROUP BY     
1,2,3,4,5,6,7,8 ,16 
HAVING   
SUM(tm.from_kolvo) > 0
ORDER BY
sw.group_name
Назва: Re: Как вывести отчет с указанием времени?
Відправлено: Kalibr2000 від Вересень 25, 2013, 15:15:14
      Всё работает!

      Уважение и Признательность TheOK!

Назва: Re: Как вывести отчет с указанием времени?
Відправлено: TheOK від Вересень 25, 2013, 22:52:41
* забыл указать один важный момент.
Остатки на складе в запросе выше указываются текущие (т.е. на момент формирования отчета).
Дома глянул в программе как делаются остатки на складе, вот запрос, аналогичный предыдущему только остатки выводятся на дату = дата_по

Рад, что смог чем-то быть полезным.



SELECT
  sw.group_name,   
  tm.tovar_id, 
  tn.kod,   
  tn.name,   
  tn.ed_izm,   
  tn.cena,   
  tn.cena_r,   
  tn.cena_o,   
  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 ,
  s.z_kolvo  as sklad_zal
FROM   
  tovar_move tm, 
  vnakl vn,
  print_view_sklad(#товар_группа_№#,#склад_№#) sw,
  tovar_name tn ,
  view_sklad_zal(#склад_№#,'#дата_по#') s 
WHERE   
  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 = #склад_№# 
  and vn.DOC_CREATE_TIME between #текст_1#
and   s.num = tn.num
GROUP BY   
  1,2,3,4,5,6,7,8,16
HAVING
  SUM(tm.from_kolvo) > 0
ORDER BY   
  sw.group_name
Назва: Re: Как вывести отчет с указанием времени?
Відправлено: Kalibr2000 від Жовтень 15, 2013, 19:31:55
Уважаемый TheOK а можно ли сделать сортировку по количеству продаж (в группах) в Ваших отчетах?

Назва: Re: Как вывести отчет с указанием времени?
Відправлено: TheOK від Жовтень 15, 2013, 22:45:25
Цитата: Kalibr2000 від Жовтень 15, 2013, 19:31:55
Уважаемый TheOK а можно ли сделать сортировку по количеству продаж (в группах) в Ваших отчетах?
Для запроса, который приведен выше, чтобы внутри группы товаров происходила сортировка по кол-ву продаж нужно заменить последние 2 строки запроса на следующие:


ORDER BY   
  sw.group_name,10