10.02.2012 09:49
john_the_ripper
 
Всем привет. Создаю кастомный ценник в Report Builder'e.

Собственно в примере идущем с супермагом 28й версии, в ценнике указывается только целая часть цены, а нужна цена вида 10 руб 10 коп. Всё ок, но нужно выделить дробную часть из значения. Подскажите как поступить? trunc'ом пытался выделить - занимает слишком много времени :) Стандартный ценник формируется значительно быстрее. Подскажите как быть. Велосипед изобретать не хочется :))

SQL код:
function CF_PriceFormula return Number is
res number
;
begin
  select price into res
  from supermag
.SMPrices
  where Article   
= :P_Article
      
and StoreLoc  = :P_Loc
      
and PriceType = :P_Price_Type;
        for 
i in 1..5000000 loop
        res 
:= trunc(res);
        
end loop;
    return 
res
end
10.02.2012 09:54
Mtirt
 
Там функция есть: supermag.russianspell.PriceCardString(2, :price)
Поиграйся первым параметром - он будет выдавать разные варианты для написания цены.
10.02.2012 10:15
OlegON
 
Код:
for i in 1..5000000 loop 
res := trunc(res); 
end loop;
я чего-то не понимаю, а зачем тут loop?
10.02.2012 12:20
john_the_ripper
 
Цитата:
OlegON
Код:
for i in 1..5000000 loop 
res := trunc(res); 
end loop;
я чего-то не понимаю, а зачем тут loop?
Это я сначала по запарке дернул лишнего с бенчмарка этой функции :)

Заинтересовала меня вот такая функция:
SQL код:
select supermag.RussianSpell.GetSumRub(temp,0,0into res from dual
Но она не работает, вылетает с ORA-06502. Делаю преобразование TO_CHAR, но не помогает =(

SQL код:
function CF_PriceFormula return Number is
res number
;
temp number;
temp2 number;
begin
  select price into temp2
  from supermag
.SMPrices
  where Article   
= :P_Article
      
and StoreLoc  = :P_Loc
      
and PriceType = :P_Price_Type;
      
temp := TO_CHAR(temp2);
      
select supermag.RussianSpell.GetSumRub(temp,0,0into res from dual;
      return 
res
end
10.02.2012 12:32
john_the_ripper
 
Если я правильно понимаю, ругается на типы данных. Выстроил всё правильно по идее, но один черт не работает =(

[php]
function CF_PriceFormula return Char is
res char;
temp char;
temp2 number;
begin
select price into temp2
from supermag.SMPrices
where Article = :P_Article
and StoreLoc = :P_Loc
and PriceType = :P_Price_Type;
temp := TO_CHAR(temp2);
select supermag.РussianSpell.GetSumRub(temp,0,0) into res from dual;
return res;
end;
[/php]
10.02.2012 12:48
Mtirt
 
Судя по описанию функции GetSumRub, первый параметр - float (Число с плавающей запятой).
Второе - id валюты.
Третье - формат выходных данных.
10.02.2012 13:11
john_the_ripper
 
Цитата:
Mtirt Судя по описанию функции GetSumRub, первый параметр - float (Число с плавающей запятой).
Второе - id валюты.
Третье - формат выходных данных.
А где собственно эти описания можно почитать?

Добавлено через 14 минут 53 секунды
Заработал такой код:

SQL код:
function CF_PriceFormula return char is
res varchar
(20);
second_req  varchar(20);
first_req number;
begin
  select price into first_req
  from supermag
.SMPrices
  where Article   
= :P_Article
      
and StoreLoc  = :P_Loc
      
and PriceType = :P_Price_Type;
      
second_req := TO_CHAR(first_req);
      
select supermag.РussianSpell.GetSumRub(second_req,0,0into res from dual;
      return 
res;
end
Встает следущий вопрос. Как получить параметр единицы измерения товара и его количества для вывода в ценнике? Тоесть 1 кг 51 руб 10 коп, 1 шт 51 руб 10 коп.
10.02.2012 13:12
Mtirt
 
Нигде :(
Это мои мысли после нажатия на кнопочку describe в pl/sql developere.
10.02.2012 14:14
Mtirt
 
У меня в ценнике было это:
Код:
function CF_mesnameFormula return Char is
begin
  return :qtyprint || ' ' || lower(:unitname);
end;
11.02.2012 06:36
john_the_ripper
 
Цитата:
Mtirt У меня в ценнике было это:
Код:
function CF_mesnameFormula return Char is
begin
  return :qtyprint || ' ' || lower(:unitname);
end;
Спасибо, но все-таки выдрал запросом из бд :)

Подскажите пожалуйста, где хранятся доп. характеристики товара
Часовой пояс GMT +3, время: 21:07.

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