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

Наши программы => УкрСклад => Тема розпочата: YuzhnyCD від Березень 29, 2012, 12:36:15

Назва: Отчёт о Новых поступлениях
Відправлено: YuzhnyCD від Березень 29, 2012, 12:36:15
Всем привет!
Часто возникает потребность вылаживать Новые поступления в новостях на сайт.
Но т.к. они приходят от болле чем 5-ти поставщиков, очень неудобна экспортировать каждую накладную и вылаживать.

Можно ли создать отчёт о последних поступлениях товара(в течение например прошедших двух дней), желательно с группировкой по группам?
Назва: Re:Отчёт о Новых поступлениях
Відправлено: vasos від Березень 30, 2012, 11:51:27
Если Вы имеете в виду товары из ПН за два последних дня в разрезе товарных групп, то конечно можно)
Таблица с товарами по ПН pnakl_, с ПН pnakl, товары и привязка к группе товаров в tovar_name, группы товаров по моему в tip.
Назва: Re:Отчёт о Новых поступлениях
Відправлено: YuzhnyCD від Березень 30, 2012, 13:14:59
Цитата: vasos від Березень 30, 2012, 11:51:27
Если Вы имеете в виду товары из ПН за два последних дня в разрезе товарных групп, то конечно можно)
Таблица с товарами по ПН pnakl_, с ПН pnakl, товары и привязка к группе товаров в tovar_name, группы товаров по моему в tip.

понял что вы говорите что можно, но КАК не понял, подробнее можно ?
Назва: Re:Отчёт о Новых поступлениях
Відправлено: TheOK від Березень 30, 2012, 14:41:34
Вот запрос
select
 distinct  p_.*,gr.num,gr.Group_name
from
   pnakl p left join pnakl_ p_ on (p.num=p_.pid)
   left join tovar_name tn on (p_.tovar_id=tn.num)
   left join print_view_sklad_all('#активная_фирма_№#') gr on (tn.tip=gr.num)
where
   p.date_dok>='#дата#' and
   p_.tovar_id not in
       (select distinct Lp_.tovar_id  from pnakl Lp left join pnakl_ Lp_ on (Lp.num=Lp_.pid) where p.date_dok<'#дата#')
order by gr.group_name,tn.name

Если не нужна иерархия групп, измените print_view_sklad_all('#активная_фирма_№#') на tip (как и говорил vasos)
Запрос изменен (добавлена строка '#активная_фирма_№#' вместо 464)
Назва: Re:Отчёт о Новых поступлениях
Відправлено: YuzhnyCD від Березень 30, 2012, 15:03:52
Цитата: TheOK від Березень 30, 2012, 14:41:34
Вот запрос
select
  distinct  p_.*,gr.num,gr.Group_name
from
    pnakl p left join pnakl_ p_ on (p.num=p_.pid)
    left join tovar_name tn on (p_.tovar_id=tn.num)
    left join print_view_sklad_all(464) gr on (tn.tip=gr.num)
where
    p.date_dok>='#дата#' and
    p_.tovar_id not in
        (select distinct Lp_.tovar_id  from pnakl Lp left join pnakl_ Lp_ on (Lp.num=Lp_.pid) where p.date_dok<'#дата#')
order by gr.group_name,tn.name

SQL выдаёт ошибку, прикрепил скрин
Назва: Re:Отчёт о Новых поступлениях
Відправлено: TheOK від Березень 30, 2012, 15:06:49
Запрос изменил в предыдущем посте (выводил для id своей фирмы)
Запрос вставляйте в отчет. В sql менеджере не пойдет, т.к. используются переменные, которые обрабатывает УкрСклад (в Sql менеджер он этого не делает)
Назва: Re:Отчёт о Новых поступлениях
Відправлено: YuzhnyCD від Березень 30, 2012, 15:11:22
код вводить в отчёте пользователя, так ?
а где взять ID своей фирмы ?
Назва: Re:Отчёт о Новых поступлениях
Відправлено: TheOK від Березень 30, 2012, 15:15:17
Цитата: YuzhnyCD від Березень 30, 2012, 15:11:22
всё равно не хочет, таже ошибка
Запрос вставляете в отчет, а не в sql менеджер?
У меня все работает
Не забудьте выставить дату (не период дат, а именно дату)
Для запроса с использованием только названия групп, а не иерархии, можно будет выводить для всех фирм, а не только активной.
Только следует обратить внимание, что работает корректно только там, где одна фирма, или общие склады иначе будет выводить "лишние" данные. Если будет необходимость подкорректирую... если нет, пусть так валяется)
Назва: Re:Отчёт о Новых поступлениях
Відправлено: YuzhnyCD від Березень 30, 2012, 15:16:55
Цитата: TheOK від Березень 30, 2012, 15:15:17
Цитата: YuzhnyCD від Березень 30, 2012, 15:11:22
всё равно не хочет, таже ошибка
Запрос вставляете в отчет, а не в sql менеджер?
У меня все работает
Не забудьте выставить дату (не период дат, а именно дату)

где взять ID фирмы ?
Назва: Re:Отчёт о Новых поступлениях
Відправлено: TheOK від Березень 30, 2012, 15:19:12
Цитата: YuzhnyCD від Березень 30, 2012, 15:16:55
где взять ID фирмы ?
В данном запросе он вам не нужен. Попробуйте. У вас одна фирма или несколько на одной базе данных?
Назва: Re:Отчёт о Новых поступлениях
Відправлено: YuzhnyCD від Березень 30, 2012, 15:35:34
Цитата: TheOK від Березень 30, 2012, 15:19:12
Цитата: YuzhnyCD від Березень 30, 2012, 15:16:55
где взять ID фирмы ?
В данном запросе он вам не нужен. Попробуйте. У вас одна фирма или несколько на одной базе данных?
ругается что не найден файл печатной формы
Назва: Re:Отчёт о Новых поступлениях
Відправлено: TheOK від Березень 30, 2012, 16:41:03
Это хорошо, что ругается. Значит сделали почти все правильно.
Теперь, сделайте следующим образом.
1) Возьмите любой работающий отчет (на который есть печатная форма)
2) Переименовываете на нужное, и жмете Сохранить как новый
3) Закрываете.
4) Открываете вновь созданный отчет.
5) вставляете туда запрос
6) Запускаете (он будет ругаться)
7) Редактируете шаблон
8 ) наслаждаетесь результатом
Назва: Re:Отчёт о Новых поступлениях
Відправлено: admin від Березень 30, 2012, 16:52:50
Можно воспользоваться мастером построения шаблона, если плохо разбираетесь. Если просто нажать Редактировать отчет, программа создаст файл шаблона, после заходите в меню Файл : Новый : Мастер стандартного отчета
Назва: Re:Отчёт о Новых поступлениях
Відправлено: YuzhnyCD від Березень 30, 2012, 17:44:43
TheOк, аdmin
Спасибо! Завтра буду пробовать.
В sql и в построении отчётов я пока полный ламер
Назва: Re:Отчёт о Новых поступлениях
Відправлено: TheOK від Березень 31, 2012, 06:27:37
Вот новый отчет.
Работать должен быстрее первого (чем данных за выбранный период, тем шустрее). Выводит данные о товаре не только из расходной накадной, а еще из справочника товаров по всем фирмам БД. Группы товаров выводятся не в виде иерархии, а просто название группы.
(можно еще ограничить для конкретной фирмы.. но это , если будет нужно).
select
 distinct tip.name as group_name, tn.*
from
   pnakl p left join pnakl_ p_ on (p.num=p_.pid)
   left join tovar_name tn on (p_.tovar_id=tn.num)
   left join tip on (tn.tip=tip.num)
where
   p.date_dok>='#дата#' and
   p_.tovar_id not in
       (select distinct Lp_.tovar_id  from pnakl Lp left join pnakl_ Lp_ on (Lp.num=Lp_.pid) where p.date_dok<'#дата#')
order by
   tip.name,tn.name


Так же прилагаю вам шаблон, который вы можете использовать как "заготовку". Сразу говорю, он очень-преочень сырой. Не ставил цель сделать его хорошим. Просто структурку набросал.
Переименуйте его (если, конечно ваш шаблон еще не готов) и разместите в базе под тем именем файла, на который ссылается ваша форма отчета (высвечивается на закладке Редактирование отчета->файл шаблона) в папку для отчетов.
Назва: Re:Отчёт о Новых поступлениях
Відправлено: YuzhnyCD від Березень 31, 2012, 09:36:28
Цитата: TheOK від Березень 31, 2012, 06:27:37
Вот новый отчет.
Работать должен быстрее первого (чем данных за выбранный период, тем шустрее). Выводит данные о товаре не только из расходной накадной, а еще из справочника товаров по всем фирмам БД. Группы товаров выводятся не в виде иерархии, а просто название группы.
(можно еще ограничить для конкретной фирмы.. но это , если будет нужно).
select
  distinct tip.name as group_name, tn.*
from
    pnakl p left join pnakl_ p_ on (p.num=p_.pid)
    left join tovar_name tn on (p_.tovar_id=tn.num)
    left join tip on (tn.tip=tip.num)
where
    p.date_dok>='#дата#' and
    p_.tovar_id not in
        (select distinct Lp_.tovar_id  from pnakl Lp left join pnakl_ Lp_ on (Lp.num=Lp_.pid) where p.date_dok<'#дата#')
order by
    tip.name,tn.name


Так же прилагаю вам шаблон, который вы можете использовать как "заготовку". Сразу говорю, он очень-преочень сырой. Не ставил цель сделать его хорошим. Просто структурку набросал.
Переименуйте его (если, конечно ваш шаблон еще не готов) и разместите в базе под тем именем файла, на который ссылается ваша форма отчета (высвечивается на закладке Редактирование отчета->файл шаблона) в папку для отчетов.
Бомба! работает, спасибо!