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

Как (можно ли) создать такой отчет?

Автор bkost, Березень 25, 2013, 22:11:11

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

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

bkost

Нужен такой отчет. Можно ли сделать его "малой кровью"? Работали в SLS-склад. Присматриваемся к этой программе.

TheOK

Такое сделать, думаю, возможно.
Если кто-то возьмется помогать здесь на форуме, смогу подсказывать. К сожалению, выделить время на полное создание отчета не могу.
Кстати, сразу опишите, чтобы было понятно:
1) возможны ли у вас случаи, когда товар в одной накладной с различных складов?. Если да, то название склада логичнее ставить напротив каждой позиции товара.
2) Откуда брать текст "наличный рассчет" , в каких случаях он должен проставляться?
3) данные должны выводиться по текущей активной фирме, если я все правильно понял
4) что значат ***  в заголовке, где выводятся данные по расходной накладной?
Работа в УкрСклад(особенности и советы): [url="//www.softbalance.com.ua/forum/index.php/topic,2362.0.html"]www.softbalance.com.ua/forum/index.php/topic,2362.0.html[/url]
Некоторые мои отчеты можно найти здесь: [url="http://www.softbalance.com.ua/forum/index.php/topic,2307.0.html"]http://www.softbalance.com.ua/forum/index.php/topic,2307.0.html[/url]

bkost

1) да возможны
2) я поствил его в накладной в графу "Условие продаж"
3) да, у нас одна активная
4) это "красявости" SLS склада - никакой информативности
В принципе, не нужны даже клиенты. Только товар, кол-во, цена, сумма, но офильтрованный  по полю "Условие продаж" (или по другому, куда можно внести слово "нал".

TheOK

#3
В таком случае, все немного проще, если я все правильно понял.

Вот вам запрос для отчета.
Создавайте новый.
Параметры: период дат.
Выводятся данные только по одной активной фирме.
Данные сортируются по условию продажи, затем по дате, после по отдельным документам, ну и в конце по названию товара.
Цены и суммы указываются сразу с учетом скидки.
Запрос слегка избыточен, но это для универсальности.
Шаблон пробуйте создать сами. На форуме есть пользователи, готовые подсказать, как это делается...  я так думаю


Select
    tm.curr_to_cena + tm.curr_cena_pdv as cena_with_znizhka,
    tm.curr_to_suma + tm.curr_suma_pdv as suma_with_znizhka,
    tm.from_kolvo,
    tm.mdate,
    c.short_name,
    c.name as curr_name,
    sn.name as sklad_name,
    v.nu,
    v.prod_umov ,
    v.client,
    tn.*
From
    Tovar_move tm
        left join tovar_name tn on (tm.tovar_id=tn.num)
        left join currency c on (tm.curr_type=c.num)
        left join sklad_names sn on (tm.from_sklad_id=sn.num)
        left join vnakl v on (tm.doc_id=v.num)


where
    tm.doc_type_id =1
    and tm.from_firma_id=#активная_фирма_№#
    and tm.mdate>='#дата_с#'
    and tm.mdate<='#дата_по#'
order by
   v.prod_umov,
   tm.mdate,
   v.num,
   tn.name
Работа в УкрСклад(особенности и советы): [url="//www.softbalance.com.ua/forum/index.php/topic,2362.0.html"]www.softbalance.com.ua/forum/index.php/topic,2362.0.html[/url]
Некоторые мои отчеты можно найти здесь: [url="http://www.softbalance.com.ua/forum/index.php/topic,2307.0.html"]http://www.softbalance.com.ua/forum/index.php/topic,2307.0.html[/url]

bkost

Спасибо. Как танкисту: Открываю "Создать новый отчет", ставлю птицу "Период дат", копирую-вставляю ваш SQL-код в нижнее поле, нажимаю кнопку "Редактировать шаблон", редактирую (сильны сомнения  :) ), сохраняю новый файл, новый отчет. Все должно работать! Я нигде не ошибся?

TheOK

#5
Так точно!
Вы совершенно правы!

Для уточнения. После выставления параметров и добавления отчета, просто редактировать шаблон, а после (на самом деле можно и не  редактировать, а сразу сохранить) сохранить (при нажатии кнопки Редактировать создается новый шаблон автоматически).
Что же, тогда продолжим.

Я для всех бэндов: ReportTitle, Header, MasterData, Footer, GroupFooter, GroupHeader выставляю свойство stretched=true. Это значит, что эти поля будут растягиваться под содержимое, которое находится внутри них (т.е. данные не будут накладываться друг на друга).
А для всех текстовых полей, кроме тех, которые не хочу, чтобы растягивались (например, если в заголовках колонок одно текстовое поле располагается над другим, то не стоит делать описанное далее), выставляю свойство StretchMode=smMaxHeight, что значит, что текстовое поле будет автоматически увеличиваться (в общем случае по вертикали вниз) до длины самого "высокого" поля на бенде (чтобы получилась красивая табличка, а не одна ячейка больше, другая меньше).

Итак выставили strethed = true (я ставлю для всех бэндов), и StretchMode=smMaxHeight (для текстовых полей, которые должны выводиться в виде таблички). Это, конечно, делается, обычно в конце или в процессе добавления.

Добавьте заголовок группы (GroupHeader), где в поле Условие: Поле БД, выберите PROD_UMOV.
Перетянуть заголовок группы над MasterData. Здесь вы можете вывести текстовое поле с переменной [PROD_UMOV], а ниже просуммировать по группе значений поля Условия продажи.

Добавьте подвал группы (GroupFooter), здесь после добавьте текстовое поле с суммированием по группе. Для этого разместить на этом Бэнде текстовое поле и вписать в него значение [SUM(<DataRep."SUMA_WITH_ZNIZHKA">,MasterData1,1)].

На MasterFooter (подвал данных) скопируйте текстовое поле из GroupFooter (то, где все суммируется), это будет ваша конечная сумма по всему товару в накладных.

Остальные поля (Название товара, сумма, склад (т.к. в накладных может быть товар  с  различных складов) и т.д.) киньте на MasterData.

Если с этим все получится, вы можете сгруппировать еще данные и по накладным. Т.е. добавить GroupHeader и GroupFooter в которых выставить Условие: Поле БД=NU. Данные группы должны находиться внутри Группы по Условию продажи

Таким образом у вас должна получиться следующая структура (для данного отчета она вполне подходит):


ReportTitle
   Header (здесь можно разместить заголовки колонок)
      GroupHeader (Группировка по Условию продажи)
         GrouHeader (Группировка по № документа, можно пропустить)
            MasterData (вывод данных по товару)
         GroupFooter (Если пропущена группировка по документу, не добавлять.
                           Вывод итогов/сумм по документу)

      GroupFooter (Подвал группы по условию продажи)
  MasterFooter (Вывод итогов по отчету)

Расписал это, т.к. судя по предыдущему посту вы поймете или полностью или в каком направлении двигаться. Я рад, что все больше пользователей УкрСклада осваивают механизмы работы с отчетами)

Сори за "радугу",  но данное форматирование несет в себе некий смысл.
Работа в УкрСклад(особенности и советы): [url="//www.softbalance.com.ua/forum/index.php/topic,2362.0.html"]www.softbalance.com.ua/forum/index.php/topic,2362.0.html[/url]
Некоторые мои отчеты можно найти здесь: [url="http://www.softbalance.com.ua/forum/index.php/topic,2307.0.html"]http://www.softbalance.com.ua/forum/index.php/topic,2307.0.html[/url]

bkost

Да уж, пару вечеров уже не будут томными  :D. Попробую разобраться, об успехах (неудачах) доложу. Еще раз премного благодарен за участие!

bkost

TheOK
Да осилит дорогу  идущий :) Чую, где-то что-то не так. При Просмотре вылазит такое
А шаблон методом "научного тыка" такой получился. Слишком быстро слепил, поэтому не верю в правильность.

TheOK

#8
1) Очень странно, что выскакивает такая ошибка...
Просмотрите внимательно запрос, который вы вставили в поле SQL запрос отчета. Не появились ли там вместо слов #активная_фирма_№# , #дата_с# и #дата_по# крокозябр, наподобии #??????_??# или вроде того.
Если такое есть, то с сайта скопируйте текст сначала в WordPad а затем из него в поле SQL запрос.
Если с этим все нормально, то попробуйте удалите все из поля SQL запрос и добавьте по новой.


2) Скиньте сюда свой шаблон на всякий случай ( в режиме редактирования Файл->Сохранить как)
Работа в УкрСклад(особенности и советы): [url="//www.softbalance.com.ua/forum/index.php/topic,2362.0.html"]www.softbalance.com.ua/forum/index.php/topic,2362.0.html[/url]
Некоторые мои отчеты можно найти здесь: [url="http://www.softbalance.com.ua/forum/index.php/topic,2307.0.html"]http://www.softbalance.com.ua/forum/index.php/topic,2307.0.html[/url]

bkost

Да нет, все 1:1
Select
    tm.curr_to_cena + tm.curr_cena_pdv as cena_with_znizhka,
    tm.curr_to_suma + tm.curr_suma_pdv as suma_with_znizhka,
    tm.from_kolvo,
    tm.mdate,
    c.short_name,
    c.name as curr_name,
    sn.name as sklad_name,
    v.nu,
    v.prod_umov ,
    v.client,
    tn.*
From
    Tovar_move tm
        left join tovar_name tn on (tm.tovar_id=tn.num)
        left join currency c on (tm.curr_type=c.num)
        left join sklad_names sn on (tm.from_sklad_id=sn.num)
        left join vnakl v on (tm.doc_id=v.num)


where
    tm.doc_type_id =1
    and tm.from_firma_id=#активная_фирма_№#
    and tm.mdate>='#дата_с#'
    and tm.mdate<='#дата_по#'
order by
   v.prod_umov,
   tm.mdate,
   v.num,
   tn.name

TheOK



Внешний вид не корректировал.

Исправил:
Добавил одну группировку по ProdUmov.
Было выставлено ограничение на кол-во выводимых данных = 8 в свойствах MasterData.
Скорее всего были выставлены дополнительные источники данных в Отчет->данные или что-то подобное.
Текстовое поле с кол-вом не находилось на MasterData (хотя визуально казалось, что оно там)
Может быть еще что-то убрал автоматом.
У меня все работает..
Замените свой шаблон на данный (Имя вашего шаблона "светится" в верху шаблона. Если знаете где он "лежит" то скиньте туда (предварительно переименовав)
Работа в УкрСклад(особенности и советы): [url="//www.softbalance.com.ua/forum/index.php/topic,2362.0.html"]www.softbalance.com.ua/forum/index.php/topic,2362.0.html[/url]
Некоторые мои отчеты можно найти здесь: [url="http://www.softbalance.com.ua/forum/index.php/topic,2307.0.html"]http://www.softbalance.com.ua/forum/index.php/topic,2307.0.html[/url]

bkost

#11
Все так и сделал, в папке rus нашел свой шаблон, заменил вашим, все равно вылазит та ошибка. В блоке "Выбор нужных компонентов для отчета", у меня птица только "Период дат", может надо еще проставить в других позициях? То, что у меня пока не зарегистрированная версия, не может влиять на работу?

bkost

Вот так выглядит. Пару верхних строк не видно

TheOK

#13
Странная штука..... у меня все ОК. Почему-то программе кажется, что что-то не так.
Может ли это быть изза незарегистрированной версии программы... не знаю никогда не сталкивался с такими проблемами, скорее всего дело в другом...

У меня есть некоторые предположения, но они далековаты от здравого смысла...

Давайте попробуем вот этот запрос. Если он будет работать, то останется 2 места для ошибки (вариантов при этом будет больше). Если же не захочет работать... но об этом позже

Select
    tm.curr_to_cena + tm.curr_cena_pdv as cena_with_znizhka,
    tm.curr_to_suma + tm.curr_suma_pdv as suma_with_znizhka,
    tm.from_kolvo,
    tm.mdate,
    c.short_name,
    c.name as curr_name,
    sn.name as sklad_name,
    v.nu,
    v.prod_umov ,
    v.client,
    tn.*
From
    Tovar_move tm
        left join tovar_name tn on (tm.tovar_id=tn.num)
        left join currency c on (tm.curr_type=c.num)
        left join sklad_names sn on (tm.from_sklad_id=sn.num)
        left join vnakl v on (tm.doc_id=v.num)
where
    tm.doc_type_id =1
order by
   v.prod_umov,
   tm.mdate,
   v.num,
   tn.name



Но, согласно тексту ошибки, или непечатаемый символ где-то или какой-то символ стоит где-то за полями запроса (т.е. где-то за пределами "окошка".
Вариант:
Очистите все-все-превсе поле SQL запрос, добавьте туда текст из вложенного файла. Открывать в WordPad, в других программах (как word не желательно , впрочем как и в Notepad и тому подобных).
Работа в УкрСклад(особенности и советы): [url="//www.softbalance.com.ua/forum/index.php/topic,2362.0.html"]www.softbalance.com.ua/forum/index.php/topic,2362.0.html[/url]
Некоторые мои отчеты можно найти здесь: [url="http://www.softbalance.com.ua/forum/index.php/topic,2307.0.html"]http://www.softbalance.com.ua/forum/index.php/topic,2307.0.html[/url]

bkost

Почти победили  ;)
Вот результат. Только не считает сумму и не фильтрует "нал", но уже работает
Скажем у Хопланда было 58*40 эко 4,78тыс по 37 грн/1тыс. В итоговой таблице этой позиции нет