[ОТВЕТИТЬ]
Опции темы
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;
 
"Спасибо" Mtirt от:
11.02.2012 06:36  
john_the_ripper
Цитата:
Сообщение от Mtirt
У меня в ценнике было это:
Код:
function CF_mesnameFormula return Char is
begin
  return :qtyprint || ' ' || lower(:unitname);
end;
Спасибо, но все-таки выдрал запросом из бд :)

Подскажите пожалуйста, где хранятся доп. характеристики товара
 
 
Опции темы



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

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