[ОТВЕТИТЬ]
13.01.2015 19:01
Aligator
 
Цитата:
Mtirt Выложи ценник, как он есть сейчас. Я завтра повожусь с ним, если будет время...
вот
Вложения
Тип файла: rar price_card_s_progress_111.rar (2.3 Кб, 218 просмотров)
16.01.2015 12:36
Mtirt
 
Вот так работает.
Я не стала ставить условие на дату, так как думаю, что есть вероятность печати ценника и по уже действующей акции.
Есть только один момент. Ценники будут печататься только если нет пересекающихся акций.
Вложения
Тип файла: 7z price_card_s_progress_111.7z (2.3 Кб, 199 просмотров)
16.01.2015 14:09
vdm
 
Что-то вы мудрите.
Добрался до СМ с fastreport.
Взял стандартный ценник отсюда https://olegon.ru/showpost.php?p=197347&postcount=31, вписал туда мой исходный запрос.
Работает, цены выдает.
Миниатюры
Нажмите на изображение для увеличения
Название: ценник_акция.png
Просмотров: 375
Размер:	15.4 Кб
ID:	4285  
16.01.2015 14:13
Mtirt
 
Может быть у тебя в МА только один вид цены и одно место хранения?
16.01.2015 14:33
vdm
 
Проверил, добавил в эту-же акцию второй магазин, со своим видом цены.
Печатает правильно, по обоим магазинам.
СМ 1.030.3.
16.01.2015 15:28
Aligator
 
Цитата:
vdm Проверил, добавил в эту-же акцию второй магазин, со своим видом цены.
Печатает правильно, по обоим магазинам.
СМ 1.030.3.
приложите пожалуйста ваш полученный ценник
16.01.2015 15:43
vdm
 
См.
Вложения
Тип файла: 7z price_card_s_111.frx.7z (2.3 Кб, 83 просмотров)
16.01.2015 16:23
Aligator
 
Цитата:
vdm См.
Не пойму, у меня все так же пустой ценник..
16.01.2015 16:40
vdm
 
Накидай скриншотов..
- карточка с текущей ценой
- акция со спецификацией, основными параметрами и местами проведения
- диалог параметров печати ценника
16.01.2015 16:48
Aligator
 
Цитата:
vdm Накидай скриншотов..
- карточка с текущей ценой
- акция со спецификацией, основными параметрами и местами проведения
- диалог параметров печати ценника
OlegON:
не надо пользоваться тегом ATTACH
Миниатюры
Нажмите на изображение для увеличения
Название: Image 1405.png
Просмотров: 331
Размер:	19.4 Кб
ID:	4287   Нажмите на изображение для увеличения
Название: Image 1406.png
Просмотров: 307
Размер:	10.9 Кб
ID:	4288   Нажмите на изображение для увеличения
Название: Image 1408.png
Просмотров: 340
Размер:	11.8 Кб
ID:	4289   Нажмите на изображение для увеличения
Название: Image 1409.png
Просмотров: 343
Размер:	11.6 Кб
ID:	4290  
16.01.2015 18:02
vdm
 
Нашел.
У вас более новая версия, где спецификация акций вынесена из SMSpec в SMSpecMA (начиная с 1.030.4).
Т.е. меняй в скрипте имя таблицы.
18.01.2015 19:04
Aligator
 
Цитата:
vdm Нашел.
У вас более новая версия, где спецификация акций вынесена из SMSpec в SMSpecMA (начиная с 1.030.4).
Т.е. меняй в скрипте имя таблицы.
Таки да, заработало, пошел тестировать.
Благодарю.
05.02.2015 13:08
Aligator
 
Нарисовал ценник, но есть два вопроса:
на некоторых ценниках отображается единица измерения не как Грн/1шт, а как Грн/10 (обвел пример на второй картинке)
также не пойму почему при выводе на печать - то старая цена отображается верно, то старая цена становится нулевой. Такое стабильно происходит при печати от 2-х и более ценников (последние картинки как раз это показывают).
Оба товара находятся в одной МА.
Ценник во вложении.







Миниатюры
Нажмите на изображение для увеличения
Название: Image 1462.png
Просмотров: 605
Размер:	26.1 Кб
ID:	4340   Нажмите на изображение для увеличения
Название: Image 1463.png
Просмотров: 672
Размер:	6.9 Кб
ID:	4341   Нажмите на изображение для увеличения
Название: Image 1464.png
Просмотров: 595
Размер:	20.2 Кб
ID:	4342   Нажмите на изображение для увеличения
Название: Image 1465.png
Просмотров: 612
Размер:	7.2 Кб
ID:	4343   Нажмите на изображение для увеличения
Название: Image 1466.png
Просмотров: 720
Размер:	7.9 Кб
ID:	4344  

Нажмите на изображение для увеличения
Название: Image 1467.png
Просмотров: 592
Размер:	13.6 Кб
ID:	4345   Нажмите на изображение для увеличения
Название: Image 1468.png
Просмотров: 628
Размер:	10.4 Кб
ID:	4346  
Вложения
Тип файла: zip ves.zip (34.5 Кб, 95 просмотров)
06.02.2015 09:28
vdm
 
Подпилил для работы как с будущими акциями, так и с работающими. Ошибки с нулевой ценой быть не должно.
По количеству 1/10 - см. штрихкоды, наверно там количество >1.
Код:
SELECT  t.article,
        t.price,
        supermag.russianspell.PriceCardString(0, t.price) as grn,
        supermag.russianspell.PriceCardString(2, t.price) as kop,
        supermag.russianspell.PriceCardString(0, t.oldprice) as oldprice_grn,
        supermag.russianspell.PriceCardString(2, t.oldprice) as oldprice_kop,
        t.RubName,
        t.KopName,
        (select p.PropVal
           from supermag.SMCardProperties p
          where p.Article=t.Article
            and p.PropID='Sys.Composition') Composition,
        (select p.PropVal
           from supermag.SMCardProperties p
          where p.Article=t.Article
            and p.PropID='Sys.BrandName') BrandName,
        (select p.PropVal
           from supermag.SMCardProperties p
          where p.Article=t.Article
            and p.PropID='Vesy_number') Vesy_number,
        t.name,
        t.cardcomment,
        t.country,
        t.qtyprint,
        t.unitname,
        t.isscale,
        t.plu,
        t.price_ma,
        supermag.russianspell.PriceCardString(0, t.price_ma) as price_ma1,
        supermag.russianspell.PriceCardString(2, t.price_ma) as price_ma2,
        t.ma_id,
        t.ma_datebegin,
        t.ma_dateend
FROM (
     SELECT t_pr.article,
            (case when d.docstate=2 then
                ROUND(sp.itemprice*t_pr.qty, t_pr.priceprec)
             else
                t_pr.price
             end
            ) price,
            (case when d.docstate=2 then
                t_pr.price
             else
                (select ROUND(ph.price*t_pr.qty, t_pr.priceprec)
                   from supermag.SMPriceHistory ph 
                  where (eventtime, recid) = 
                        (select max(eventtime), max(recid) 
                           from supermag.SMPriceHistory 
                          where article = ph.article 
                            and storeloc  = ph.storeloc
                            and pricetype = ph.pricetype
                            and ROUND(price*t_pr.qty, t_pr.priceprec) !=  t_pr.price)
                    and ph.storeloc  = :P_LOC 
                    and ph.article   = t_pr.article
                    and ph.pricetype = :P_PRICE_TYPE
                    and ROUND(ph.price*t_pr.qty, t_pr.priceprec) != t_pr.price)
             end
            ) oldprice,
            t_pr.RubName,
            t_pr.KopName,
            t_pr.name,
            t_pr.cardcomment,
            t_pr.country,
            t_pr.qtyprint,
            t_pr.unitname,
            t_pr.isscale,
            t_pr.plu,
            sp.itemprice price_ma,
            d.id ma_id,
            TRUNC (au.datebegin) ma_datebegin,
            TRUNC (au.dateend) ma_dateend
       FROM supermag.svpricecard t_pr,
            supermag.smdocuments d,
            supermag.SMSpecMA sp,
            supermag.smauctions au
      WHERE t_pr.article = sp.article
        AND d.doctype = 'MA'
        AND d.id = sp.docid
        AND d.doctype = sp.doctype
        AND t_pr.article = sp.article
        AND d.id = au.id
        AND d.doctype = au.doctype
        AND d.docstate >= 2
        AND au.dateend > SYSDATE
        AND (:P_LOC,:P_PRICE_TYPE) IN (SELECT am.locid, am.pricetype
                                         FROM supermag.smauctionatoms am
                                        WHERE am.aucid = d.id AND am.doctype = d.doctype)
) t
ORDER BY ma_id, article
06.02.2015 10:45
Aligator
 
Цитата:
vdm Подпилил для работы как с будущими акциями, так и с работающими. Ошибки с нулевой ценой быть не должно.
По количеству 1/10 - см. штрихкоды, наверно там количество >1.
Код:
SELECT  t.article,
        t.price,
        supermag.russianspell.PriceCardString(0, t.price) as grn,
        supermag.russianspell.PriceCardString(2, t.price) as kop,
        supermag.russianspell.PriceCardString(0, t.oldprice) as oldprice_grn,
        supermag.russianspell.PriceCardString(2, t.oldprice) as oldprice_kop,
     ...
В тоде отрабатывает запрос, а в Faste выбивает в ошибку:


текст сообщения:
скрытое
Миниатюры
Нажмите на изображение для увеличения
Название: Image 1473.png
Просмотров: 563
Размер:	13.3 Кб
ID:	4351  
06.02.2015 10:48
Mtirt
 
У тебя в запросе осталось два параметра: P_Loc и P_Price_type.
Лишние параметры удали...
06.02.2015 14:51
Aligator
 
Цитата:
Mtirt У тебя в запросе осталось два параметра: P_Loc и P_Price_type.
Лишние параметры удали...
Пробовал, это не от туда ошибка:
Миниатюры
Нажмите на изображение для увеличения
Название: Image 1474.png
Просмотров: 593
Размер:	13.5 Кб
ID:	4354  
06.02.2015 17:51
vdm
 
Это баг fastreport, а точнее какого-то компонента visual studio.
Не умеет select из подзапроса. Гуглится. М.б. в последних версиях поправлено, но видимо не в вашей.

В качестве лечения предлагается "не делайте так, формируйте запрос в другом месте". И у С+ практически везде в отчетах запросы формируются динамически, в скрипте.

Можно конечно переписать без подзапроса, но рано или поздно придется усложнять и переписывать. Дальше напишу кратко что меняется.
06.02.2015 18:08
vdm
 
1. В pricecards => sql пишется заглушка, где селектится голый список полей
Код:
SELECT ''article,
        0 price,
        '' grn,
        '' kop,
        '' oldprice_grn,
        '' oldprice_kop,
        '' RubName,
        '' KopName,
        '' Composition,
        '' BrandName,
        '' Vesy_number,
        '' name,
        '' cardcomment,
        '' country,
        '' qtyprint,
        '' unitname,
        '' isscale,
        '' plu,
        0 price_ma,
        '' price_ma1,
        '' price_ma2,
        '' ma_id,
        to_date('010101','DDMMYY') ma_datebegin,
        to_date('010101','DDMMYY') ma_dateend
FROM dual
2. В конце _StartReport пишется формирование и вызов реального запроса
Код:
...
        или за количество товара в упаковке (если в диалоге старта печати
        выбрана опция "Ценник на упаковку");
        0 - всегда печатать цену за единицу товара */
        1
        ); 

      string sSQL = SqlFormat("SELECT "+
      "t.article, "+
      "t.price,   "+
...
      "(select max(eventtime), max(recid) "+
      "from supermag.SMPriceHistory "+
      "where article = ph.article "+
      "and storeloc  = ph.storeloc "+
      "and pricetype = ph.pricetype "+
      "and ROUND(price*t_pr.qty, t_pr.priceprec) !=  t_pr.price) "+
      "and ph.storeloc  = {0:N} "+
      "and ph.article   = t_pr.article "+
      "and ph.pricetype = {1:N} "+
      "and ROUND(ph.price*t_pr.qty, t_pr.priceprec) != t_pr.price) "+
...
      "AND au.dateend > SYSDATE "+
      "AND ({0:N},{1:N}) IN (SELECT am.locid, am.pricetype "+
      "  FROM supermag.smauctionatoms am "+
      "WHERE am.aucid = d.id AND am.doctype = d.doctype) "+
      ") t "+
      "ORDER BY ma_id, article",
        Report.GetParameterValue("P_LOC"),
        Report.GetParameterValue("P_PRICE_TYPE")
        );  

      host.TableDataSourcePreInit("PriceCards", sSQL);
В SqlFormat() параметры P_LOC, P_PRICE_TYPE подставляются в текст на место макросов {0:N}, {1:N}.
Количество и тип полей выборки должно соответствовать тому, что указано в pricecards => sql.
TableDataSourcePreInit() выполняет запрос.
10.02.2015 16:10
Aligator
 
Добавил, но как понимаю, паршиво - получаю в лоб ошибки: скрытое

Просьба довести в этом вопросе, ладно я с простыми запросами через "PriceCards" как-то начал сам тыкать, но через sSQL для меня пока что высший пилотаж. Мой поломанный ценник во вложении
Вложения
Тип файла: rar ves_7.rar (34.8 Кб, 159 просмотров)
10.02.2015 20:01
vdm
 
Ну не стоит так БУКВАЛЬНО копировать мой текст
Многоточия там на месте сокращений, чтобы простыню не раскатывать.
Я таки надеялся, что допишешь недостающее сам, всего дел кавычки построчно расставить.

По синтаксическим ошибкам в C# скрипте:
- идешь в File - Preview
- получаешь либо окно параметров, либо список ошибок
- щелкаешь по ошибке и попадаешь на ее место в скрипте
Вложения
Тип файла: 7z ves.frx.7z (38.4 Кб, 118 просмотров)
11.02.2015 07:07
Mtirt
 
Цитата:
Aligator Добавил, но как понимаю, паршиво - получаю в лоб ошибки: скрытое

Просьба довести в этом вопросе, ладно я с простыми запросами через "PriceCards" как-то начал сам тыкать, но через sSQL для меня пока что высший пилотаж. Мой поломанный ценник во вложении
Так всё же написано: (68,10): Error CS1026: ожидалась )
(68,10): Error CS1002: ожидалась ;
(68,10) - это номер строки и номер позиции.
А чтобы понять, как это должно выглядеть, можно открыть любой FastReport отчет из Супермага.
11.02.2015 10:50
Aligator
 
Цитата:
vdm Ну не стоит так БУКВАЛЬНО копировать мой текст
Прошу прощения, с фастом у меня сейчас общение на ВЫ, по вашим замечаниям начинаю понимать что и где стоит учитывать.
Печатная форма выводилась пустой, но тут я уже вспомнил и строку " supermag.SMSpec sp, "+ изменил на " supermag.SMSpecMA sp, "+ - и все заработало ))

Благодарю за помощь.
11.03.2016 10:45
DMaslov
 
Если кто знает, подскажите, как расширить этот ценник.
Высоту меняю, просто перетаскиванием нижнего края.
В ширину - не могу.
11.03.2016 11:05
DMaslov
 
Руками в коде поменял кол-во колонок и ширину колонки:

<DataBand Name="DataSpec" Width="245.7" Height="141.75" Border.Lines="All" DataSource="Table2" Columns.Count="2" Columns.Width="400">

Остается вопрос, где это в гуе делать.

price_card_s_111.frx
11.03.2016 12:34
DMaslov
 
То, что ввожу здесь



никак не влияет на результат.
11.03.2016 14:27
vdm
 
Колонки и их ширина могут быть заданы 2-мя способами, через параметры страницы или через databand.

В окне параметров справа выбрать:
Page1 ReportPage - Внешний вид - Columns (тоже самое что в Page Setup)
или
DataSpec DataBand - Внешний вид - Columns

Подробнее с картинками описано в документации (сайт fastreport) - Поддержка - Документация - FastReport.Net - Руководство пользователя
16.03.2016 21:45
Chebure
 
Коллеги, не будет кто так добр, что поделиться рабочим вариантом обсуждаемого ценника. Чтобы подцепил в СМ и все работало. Потому что в программировании я "ноль"
Спасибо
17.03.2016 20:00
DMaslov
 
Любой из приложенных ценников можете подсоединять в свой СМ и смотреть. Заработает - значит, он без индивидуальных доработок, и подходит к вашей конфигурации. Нет - значит, нет, надо от "ноля" повышаться.


Опции темы


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

 

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