[ОТВЕТИТЬ]
13.04.2015 11:30
VitorJ
 
Добрый день!
Подскажите, друзья, может у кого стояла задача в ценнике печатать цену за 1 шт. и рядом цену за упаковку? Если да поделитесь ценником, если же не сталкивались подскажите каким образом прикрутить? С fast report на ВЫ, сел разбираться.
13.04.2015 11:56
Mtirt
 
Начать с того, что просто попробовать распечатать ценник за упаковку...
13.04.2015 12:07
VitorJ
 
Ценник за упаковку печатается без проблем, но в этом и смысл, чтобы напечатать цену за одну шт. товара, а рядом за упаковку
13.04.2015 12:32
Mtirt
 
Еще раз. У товара может быть несколько упаковок. Поэтому при печати ценника в упаковках приходится для каждого товара выбирать "размер упаковки".
Т.е. тебе придется печатать ценники по одной штуке.
А вывести на ценник на упаковку цену за одну штуку несложно: надо просто разделить одно на другое...
13.04.2015 13:57
VitorJ
 
Так не получится, как выяснилось руководство хочет давать некую скидку на упаковку и отражать это в ценнике.

В общем то, что я смог понять из хотелок руководителя
Должен быть некий ценник на котором, цена за 1 шт., рядом шрифтом чуть меньше цена за упаковку. Планируется это на группу товаров где вложимость постоянная. И на упаковку должна предоставляться некая скидка, только вот откуда брать % я не понял...., видимо в ручну прописать фиксированный в ценнике как то так.
13.04.2015 14:06
OlegON
 
Мне кажется, что из-за "я не понял" решаемость задачи сводится куда-то в астрологию... Лучше спросить у заказчика, что конкретно он хочет...
13.04.2015 14:12
Mtirt
 
А скидка выражается в процентах? Или другая цена на упаковку?
От этого зависит постановка задачи...
13.04.2015 14:30
VitorJ
 
Добрый день!
Да действительно сводится к астрологии, так как у заказчика у самого понятие размытое.
По этому они взяли у конкурентов идею. А скидка должна предоставляться в процентах.
Миниатюры
Нажмите на изображение для увеличения
Название: ценник.jpg
Просмотров: 363
Размер:	262.5 Кб
ID:	4496  
13.04.2015 14:32
akonev
 
если именно скидка в процентах при достижении определенного количества - тогда можно её задать в карточке товара на закладке "Скидки". оттуда, соответственно, и на ценник потом выбирать. тогда надо будет еще уточнить, что печатать на ценнике, если таких порогов на карточку задали несколько (от 5 шт скидка 1%, от 10шт скидка 3%).

у вас же укм4, если не путаю? тогда в нем ещё надо настроить скидку "* Количество товара (УКМ 2.xx)"
13.04.2015 14:41
Mtirt
 
Цитата:
VitorJ Добрый день!
Да действительно сводится к астрологии, так как у заказчика у самого понятие размытое.
По этому они взяли у конкурентов идею. А скидка должна предоставляться в процентах.
Если скидка в процентах, и не привязана к упаковке (её штрих-коду), то можно задать её как сказал Андрей. В ценнике, дополнительно получить % скидки и количество из SMDiscQuantity и по ним рассчитать цену за упаковку...
13.04.2015 14:42
VitorJ
 
Цитата:
akonev если именно скидка в процентах при достижении определенного количества - тогда можно её задать в карточке товара на закладке "Скидки". оттуда, соответственно, и на ценник потом выбирать. тогда надо будет еще уточнить, что печатать на ценнике, если таких порогов на карточку задали несколько (от 5 шт скидка 1%, от 10шт скидка 3%).

у вас же укм4, если не путаю? тогда в нем ещё надо настроить скидку "* Количество товара (УКМ 2.xx)"
Да, не путаете УКМ4))) Идея хорошая, очень даже, подскажите каким образом её на ценнике отражать, я бы даже сказал в таком же виде... при покупке 3 скидка 1%
при покупке 10 скидка 3%
13.04.2015 14:44
VitorJ
 
Цитата:
Mtirt Если скидка в процентах, и не привязана к упаковке (её штрих-коду), то можно задать её как сказал Андрей. В ценнике, дополнительно получить % скидки и количество из SMDiscQuantity и по ним рассчитать цену за упаковку...
При предложенном Андреем варианте, цена за упаковку становится не актуальной, так как заказчик сам решает на какое количество давать скидку
Хотя с конкретной суммой, ценник будет информативнее
13.04.2015 14:53
Mtirt
 
Да, там скорее надо писать, при покупке от N-штук цена XX рублей.
13.04.2015 15:01
akonev
 
Цитата:
VitorJ Да, не путаете УКМ4))) Идея хорошая, очень даже, подскажите каким образом её на ценнике отражать, я бы даже сказал в таком же виде... при покупке 3 скидка 1%
при покупке 10 скидка 3%
Табличку Таня уже подсказала. Дальше надо в фасте разбираться и править в нем запрос.

Обычно требуется поправить:

1) "шаблон" запроса в "источнике данных". там могут быть настоящие запросы, но чаще что-то вида
Код:
select 1 price, '' name from dual;
то есть что-то такое, из чего фаст поймет, сколько полей в запросе, какого типа данные, как поля называются.

2) текст запроса на закладке кода. тут уже собирается в текстовой переменной настоящий запрос, который фаст отправит в базу. по количеству, типу и наименованию запрос должен совпадать с "шаблоном" из первого пункта.

3) добавить права на чтение из таблицы скидок той функциональной роли, из под которой ценник печатается.

4) поправить "картинку" ценника на закладке печатной формы. добавить поле, воткнуть в него новые данные из запроса

на каком этапе сложности возникают?
13.04.2015 17:08
VitorJ
 
Цитата:
akonev Табличку Таня уже подсказала. Дальше надо в фасте разбираться и править в нем запрос.

Обычно требуется поправить:

1) "шаблон" запроса в "источнике данных". там могут быть настоящие запросы, но чаще что-то вида
Код:
select 1 price, '' name from dual;
то есть что-то такое, из чего фаст поймет, сколько полей в запросе, какого типа данные, как поля называются.

2) текст запроса на закладке кода. тут уже собирается в текстовой переменной настоящий запрос, который фаст отправит в базу. по количеству, типу и наименованию запрос должен совпадать с "шаблоном" из первого пункта.

3) добавить права на чтение из таблицы скидок той функциональной роли, из под которой ценник печатается.

4) поправить "картинку" ценника на закладке печатной формы. добавить поле, воткнуть в него новые данные из запроса

на каком этапе сложности возникают?
Спасибо! Утром завтра попробую....)
14.04.2015 14:26
VitorJ
 
С первым пунктом собственно проблема то и возникла, чтот пока не могу понять логику, что и откуда
на данный момент запрос в ценнике выгляди так
Код:
select 
 t.Article Article
, t.Name
, t.RubSum
, t.KopSum
, 'Цена за '||t.UnitName UnitComment
, t.BarCode
, t.Country
, (select count(*) 
 from supermag.SVCardName crd
 where crd.Article=t.Article and bitand(crd.Flags,32)<>0
) IsFixedPrice
, (select supermag.russianspell.PriceCardString(0,p.SavedPrice)||'руб '
||supermag.russianspell.PriceCardString(2,p.SavedPrice)||'коп'
 from supermag.SMPrices p
 where p.Article=t.Article 
 and p.StoreLoc=:pLoc
 and p.PriceType=:pPriceType
 and p.SavedPrice is not null
) OldPrice
from supermag.SVPriceCard t
order by 1
14.04.2015 14:38
Mtirt
 
Что именно в нем непонятно?
При печати ценника заполняется темповая табличка TTPriceCard.
SVPriceCard берет данные из неё.
14.04.2015 15:01
VitorJ
 
Цитата:
Mtirt Что именно в нем непонятно?
При печати ценника заполняется темповая табличка TTPriceCard.
SVPriceCard берет данные из неё.
Структура запроса не понятна, сама по себе. Я же говорю с Фастом на Вы...
Скачал литературу читаю...
14.04.2015 15:05
Mtirt
 
Ну это пока к фасту вообще не относится. Это просто SQL-запрос. Он выбирает данные о:
Article - артикул товара
Name - наименование
RubSum - Рубли из цены (т.е. если цена 45,50, то здесь будет 45)
KopSum - Копейки из цены ( в пошлом примере - 50)
UnitComment - это "Цена за 1 шт"
BarCode - штрих-код
Country - страна происхождения
IsFixedPrice - есть галочка "фиксированная цена"
OldPrice - старая цена (явно сделано только для товаров участвующих в маркетинговой акции)
14.04.2015 15:16
VitorJ
 
Татьяна, спасибо теперь сообразил, смущали доп. условия.
По факту теперь нужно дополнить запрос, выборкой параметров из SMDiscQuantity и обработать в ценике
15.01.2018 17:03
Aligator
 
Цитата:
VitorJ По факту теперь нужно дополнить запрос, выборкой параметров из SMDiscQuantity и обработать в ценике
Можно поинтересоваться, есть ли у кого такая выборка?
Необходимо в ценник вывести как минимум два порога по кол-ву и проценту скидки для товара, вроде как сделал, работает при одном ценнике, а если печатать от 2-х и более то облом. На картинках более понятно.
Вот таким запросом я вывожу пороги и проценты:
Код:
(select QUANTITY
from (select rownum recnum, QUANTITY
    from
        ( select article, QUANTITY, PERCENT
            from supermag.SMDISCQUANTITY) article
             where rownum < 3 and article   = :P_ARTICLE) 
    where  recnum = 1) QUANTITY1,
(select QUANTITY
from (select rownum recnum, QUANTITY
    from
        ( select article, QUANTITY, PERCENT
            from supermag.SMDISCQUANTITY) article
             where rownum < 3 and article   = :P_ARTICLE) 
    where  recnum = 2) QUANTITY2,
(select PERCENT
from (select rownum recnum, PERCENT
    from
        ( select article, QUANTITY, PERCENT
            from supermag.SMDISCQUANTITY) article
             where rownum < 3 and article   = :P_ARTICLE) 
    where  recnum = 1) PERCENT1,
(select PERCENT
from (select rownum recnum, PERCENT
    from
        ( select article, QUANTITY, PERCENT
            from supermag.SMDISCQUANTITY) article
             where rownum < 3 and article   = :P_ARTICLE) 
    where  recnum = 2) PERCENT2,
Миниатюры
Нажмите на изображение для увеличения
Название: Image 2530.png
Просмотров: 15
Размер:	11.7 Кб
ID:	9152   Нажмите на изображение для увеличения
Название: Image 2531.png
Просмотров: 17
Размер:	6.3 Кб
ID:	9153   Нажмите на изображение для увеличения
Название: Image 2532.png
Просмотров: 15
Размер:	10.9 Кб
ID:	9154  
15.01.2018 17:55
vdm
 
:P_ARTICLE это не отдельный одиночный артикул, а строка-список всех артикулов.
Вместо него нужно брать article из результатов основного запроса.
15.01.2018 18:42
Aligator
 
При изменении на t.Article - такой у меня изначально заявлен, выбивает в ошибку ""ORA-00904: "T"."ARTICLE": недопустимый идентификатор""
Может его нужно как-то внутри ещё раз заявить?

Код:
(select QUANTITY
from (select rownum recnum, QUANTITY
    from
        ( select article, QUANTITY, PERCENT
            from supermag.SMDISCQUANTITY) article
             where rownum < 3 and article   =t.Article) 
    where  recnum = 1) QUANTITY1,
(select QUANTITY
from (select rownum recnum, QUANTITY
    from
        ( select article, QUANTITY, PERCENT
            from supermag.SMDISCQUANTITY) article
             where rownum < 3 and article   = t.Article) 
    where  recnum = 2) QUANTITY2,
(select PERCENT
from (select rownum recnum, PERCENT
    from
        ( select article, QUANTITY, PERCENT
            from supermag.SMDISCQUANTITY) article
             where rownum < 3 and article   = t.Article) 
    where  recnum = 1) PERCENT1,
(select PERCENT
from (select rownum recnum, PERCENT
    from
        ( select article, QUANTITY, PERCENT
            from supermag.SMDISCQUANTITY) article
             where rownum < 3 and article   = t.Article) 
    where  recnum = 2) PERCENT2,
16.01.2018 12:11
vdm
 
Дай полный запрос.
16.01.2018 12:32
Aligator
 
Вот:
Цитата:
select t.Article, t.Name, t.Country,
(case
when c.weight < 1 and w.abbrev ='кг' then to_char(c.weight*1000)||'гр'
when c.weight < 1 and w.abbrev ='л' then to_char(c.weight*1000)||'мл'
else to_char(c.weight)||w.abbrev end) as weight,
t.Price,
t.PriceFull,
t.PriceShort,
supermag.russianspell.PriceCardString(0, t.Price) as grn,
supermag.russianspell.PriceCardString(2, t.Price) as kop,
(select ph.price
from supermag.SMPriceHistory ph
where (eventtime, recid) =
(select max(eventtime), max(recid)
from supermag.SMPriceHistory
where article = :P_ARTICLE
and storeloc = :P_LOC
and pricetype = :P_PRICE_TYPE
and round(:P_QTY*price,2) != t.Price)
and ph.storeloc = :P_LOC
and ph.article = :P_ARTICLE
and ph.pricetype = :P_PRICE_TYPE
and round(:P_QTY*ph.price,2) != t.Price) as oldprice,
(select QUANTITY
from (select rownum recnum, QUANTITY
from
( select article, QUANTITY, PERCENT
from supermag.SMDISCQUANTITY) article
where rownum < 3)
where recnum = 1) QUANTITY1,
(select QUANTITY
from (select rownum recnum, QUANTITY
from
( select article, QUANTITY, PERCENT
from supermag.SMDISCQUANTITY) article
where rownum < 3)
where recnum = 2) QUANTITY2,
(select PERCENT
from (select rownum recnum, PERCENT
from
( select article, QUANTITY, PERCENT
from supermag.SMDISCQUANTITY) article
where rownum < 3)
where recnum = 1) PERCENT1,
(select PERCENT
from (select rownum recnum, PERCENT
from
( select article, QUANTITY, PERCENT
from supermag.SMDISCQUANTITY) article
where rownum < 3)
where recnum = 2) PERCENT2,
t.RubSum,
t.RubName,
t.KopSum,
t.KopName,
t.UnitName,
t.QtyPrint,
t.BarCode,
t.CardComment
from supermag.SVPriceCard t,
supermag.SMCard c,
supermag.SAMeasurement w
where c.article = t.Article
and w.id (+)= c.idmeasweight
order by 1
16.01.2018 19:39
vdm
 
В таком виде с запросом ничего не придумалось.

Варианты:
1. Свои функции в БД, возвращающие количество/процент по порядковому номеру. В отчете поменяется только запрос, но будут и доп. объекты в базе.
2. Дорабатывать отчет - добавить подчиненные databand/datasource для скидок артикула. Это сложнее, но "правильнее".
17.01.2018 10:19
Aligator
 
Благодарю, только есть проблема, для меня оба варианта непонятны, т.к. то что имею получил методом подбора селектов от других запросов и изменения.
На вашу помощь я так понимаю уже не получиться рассчитывать, это долго и сложно в реализации?
17.01.2018 11:09
vdm
 
Несложно, но времени нет.
Если время терпит, выложи ценник, за 2-3 дня отдам 1-й или 2-й вариант.
Или запроси у кого за деньги, тут где-то тема есть для такого.
17.01.2018 11:24
Aligator
 
Ценник во вложении, конечно мне лучше подождать (т.к. некому за это платить)...
Вложения
Тип файла: rar price_card_test1.rar (3.3 Кб, 4 просмотров)
21.01.2018 13:06
vdm
 
Проверяй.
Подотчет скидок на количество отбирает все существующие по артикулам, количество выводимых строк ограничивается в "SubreportDisc - DataDisc - Данные - MaxRows".
Разбиение на колонки сделано через "Page1 - Внешний вид - Columns" (если через DataSpec - Columns, то subreport некорректно работает).
Вложения
Тип файла: 7z price_card_test1.frx.7z (3.3 Кб, 2 просмотров)


Опции темы


Часовой пояс GMT +3, время: 09:27.

 

Форум сделан на основе vBulletin®
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd. Перевод: zCarot и OlegON
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.