Форум по программам и оборудованию > > >

Как сделать ценник с двумя ценами, округленным процентом скидки и типа флага, который желательно брать из файла

19.07.2018 18:31


[ТЕМА ЗАКРЫТА]
14.08.2010 13:56
didinap
 
Есть ценник с двумя ценами, цена до скидки и цена после скидки.
На ценнике должно отображаться так же и округленный процент скидки (5%, 10%, 20% и т.д)типа флага, которых желательно брать из файла. Вот в принципе и вопрос:
как организовать процесс получения и округления скидки и соответственно отображения флага на ценнике.
16.08.2010 06:54
Mtirt
 
О каких скидках речь?
18.08.2010 12:45
didinap
 
Не совсем правильно выразился. Т.е есть на ценнике две цены, "Старая цена" (перечеркнутая) и новая цена. Обе цены берутся из истории изменения цен.
18.08.2010 15:36
Mtirt
 
В принципе просто:
если старая цена<>0
Скидка = (Новая цена- Старая цена)*100/старая цена
иначе
Скидка = null
конецесли

Ну или давай шаблон ценника, попробую это написать в синтаксисе oracleReports, а не 1С :)
20.08.2010 18:31
didinap
 
Цитата:
Mtirt В принципе просто:
если старая цена<>0
Скидка = (Новая цена- Старая цена)*100/старая цена
иначе
Скидка = null
конецесли

Ну или давай шаблон ценника, попробую это написать в синтаксисе oracleReports, а не 1С :)
Буду крайне признателен, поскольку сам в PL SQL торможу.
Вложения
Тип файла: rar price_card_star_2cen3.rar (24.2 Кб, 368 просмотров)
22.08.2010 16:49
didinap
 
Огрооооооооооооооооооооомное спасибо...
То что надо.
21.10.2010 14:46
didinap
 
Осталась последняя проблема!

Надо в ценник добавить/изменить вывод даты. Вместо вывода текущей даты, чтоб выводилось дата начала и окончания акции (если артикуль участвует в акции) а если не участвует в акции то текущая дата,
27.10.2010 16:21
didinap
 
Знаю что надоел уже со своими ценниками, но сам никак не разберусь.
Помогите пожалуйста, нужна помощь.
28.10.2010 15:39
didinap
 
Пароль на архив "spasibo"


P.S Спасибо VDM за информацию
28.10.2010 18:43
vdm
 
Проверяй.

Функция даты из акций.
Код:
function CF_DATEFormula return Char is
  dt varchar(20);
begin
 dt := TO_CHAR(SYSDATE, 'DD.MM.YY');
 for c in ( select a.datebegin d1, a.dateend d2
	     from supermag.smdocuments d, supermag.smspec s,
	          supermag.smauctions a, supermag.smauctionatoms am
	    where s.DOCID=d.id and s.doctype=d.doctype and d.docstate=3
	      and s.docid=a.id and s.doctype=a.doctype and s.article=:Article
	      and a.id=am.aucid and a.doctype=am.doctype and am.locid=:P_LOC and am.pricetype=:P_PRICE_TYPE )
 loop
 	dt := TO_CHAR(c.d1, 'DD.MM.YY') || ' - ' || TO_CHAR(c.d2, 'DD.MM.YY');
 end loop;
 return dt;
			
end;
Вложения
Тип файла: rar price_card_star_2cen3.rar (28.3 Кб, 146 просмотров)
30.10.2010 18:55
didinap
 
Супер.
Все работает как и надо.
Спасибо, я твой должник!
15.11.2010 16:27
didinap
 
Не понимаю. Ценник нормально работает под Supermag - ом, а вот под остальными пользователями (даже если админ БД) выдает ошибку

REP-1401: 'cf_dateformula': Произошла фатальная ошибка PL/SQL.
ORA-00942:таблица или представление пользователя не существует
15.11.2010 18:05
OlegON
 
Права не додали...
15.11.2010 18:55
vdm
 
Код:
 grant select on supermag.smdocuments to SUPERMAG_FN_CARD_PRINTPRICER;
 grant select on supermag.smspec to SUPERMAG_FN_CARD_PRINTPRICER;
 grant select on supermag.smauctions to SUPERMAG_FN_CARD_PRINTPRICER;
 grant select on supermag.smauctionatoms to SUPERMAG_FN_CARD_PRINTPRICER;
Хотя первые 2 уже должны быть.
22.11.2013 08:43
::sparco::
 
Всем доброго времени суток! Подскажите пожалуйста, воспользовался шаблоном ценника с перечеркнутой старой ценой, с первой страницы didinapа. За что огромное спасибо автору. Доработал ее маленько.Вот теперь вопрос в том что при формировании ценника в СМ выскакивает ошибка: "REP-1247: Отчет содержит некомпилированный PL/SQL." Иду в репорт билдер 6, компилирую, и выскакивает ошибка: "идентификатор Supermag,russianspell должен быть объявлен". Нажимаю кнопку "перейти к ошибке" и открывается код:
Код:
function AfterPForm return boolean is
begin
	supermag,russianspell.LoadPriceCard (:P_COPIES, :P_ARTICLE, :P_IDCLASS, :P_DOC_TYPE, 
	                                    :P_DOC_ID, :P_LOC, :P_PRICE_TYPE, :P_NAME,
	                                    :P_Qty, :P_Type, 0, 1);
  return (TRUE);
end;
Я от программирования далек, все делаю путем "А что будет если это подставить сюда? и т.д."
Спасибо )
22.11.2013 09:14
Mtirt
 
File - Connect - ввести имя пользователя supermag, его пароль и имя базы.
После этого скомпилировать ВСЁ.
22.11.2013 09:45
vdm
 
И запятая в supermag,russianspell подозрительна.
Точка должна быть.
22.11.2013 10:00
::sparco::
 
Цитата:
vdm И запятая в supermag,russianspell подозрительна.
Точка должна быть.
там точки стоят, просто форум не давал с точками код вставить, за ссылку принимал
22.11.2013 10:03
::sparco::
 
Цитата:
Mtirt File - Connect - ввести имя пользователя supermag, его пароль и имя базы.
После этого скомпилировать ВСЁ.
теперь ругается на идентификатор PRICE, тоже должен быть обьявлен.
Код:
function price_valFormula return Char is
begin
  return supermag,russianspell.pricecardstring(0, price);
end;
22.11.2013 10:04
Mtirt
 
Двоеточие перед ним поставь.
Для этой подпрограммы это параметр.
Хотя, в целом для ценника это результат запроса.
22.11.2013 13:23
::sparco::
 
Mtirt, спасибо огромное все получилось!!!
Осталась ошибка при первом нажатии на печать ценника, мол отчет содержит некомпилированный PL/SQL, но при повтороном нажатии на печать, печать выводится. впринципе не муторно, но все же)
22.11.2013 13:27
Mtirt
 
Что-то не то, надо разбираться, почему это происходит.
С другими отчетами ошибки про "некомпилированный PL/SQL" нет?
22.11.2013 13:37
::sparco::
 
Цитата:
Mtirt Что-то не то, надо разбираться, почему это происходит.
С другими отчетами ошибки про "некомпилированный PL/SQL" нет?
нет нету, а с этим с самого начала было, как только исходный шаблон запустил впервые
22.11.2013 14:17
::sparco::
 
И еще одна ошибка выявилась. в некоторых ценниках почему то копейки относительно документов не верно отображается. в документе 59руб. 90коп., а на ценнике 59руб. 10коп. как быть? как выявить виновника?
22.11.2013 14:21
Mtirt
 
Сравнить, от чего рассчитываются рубли, а от чего- копейки.
Возможно в рублях :price, а в копейках что-то другое...
25.11.2013 07:25
::sparco::
 
Цитата:
Mtirt Сравнить, от чего рассчитываются рубли, а от чего- копейки.
Возможно в рублях :price, а в копейках что-то другое...
А в копейках :price -123
25.11.2013 07:40
Mtirt
 
Простите, не поняла?
Полностью формулу расчета копеек увидеть можно?
25.11.2013 10:14
::sparco::
 
Код:
function CF_1Formula return Number is
p number(25);
begin
	return supermag,russianspell.PriceCardString(2, :price -123);
	end;
25.11.2013 10:18
Mtirt
 
Думаю, что должно быть просто:
Код:
 return supermag.russianspell.PriceCardString(2, :price);


Опции темы


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

 

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