Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Сложения дробных чисел с добавлением в item. / 12 сообщений из 12, страница 1 из 1
28.06.2016, 21:54:20
    #39264263
Hagbo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложения дробных чисел с добавлением в item.
APEX4.0

Имеется
item1 (цена например 1000.50)
item2 (комиссия - 100.20 )
item3 (сумма - 1100.70)

При заполнение айтема 1 и 2 выводить сумму в айтем 3


В итоге я с Dynamic Action при нажатии на item1 добавляю значения item1+item2 в item3 с помощью pl/sql.

Когда ввожу в айтем 1 и 2 целые числа, то в айтеме три появляется сумма, а когда дробные, то выходит ошибка


при таком выходит ошибка ORA-01722 , НО ЦЕЛЫЕ ЧИСЛА РАБОТАЮТ
Код: plsql
1.
2.
3.
4.
5.
6.
declare
qwerty number;
begin
select (to_number((:P8_TARIF+:P8_SBOR1+:P8_SBOR2+:P8_SBOR3+:P8_SBOR4), '9999.99')) into qwerty from dual;
return qwerty;
end;




при таком выходит ORA-06502 , НО ЦЕЛЫЕ ЧИСЛА РАБОТАЮТ (AJAX call returned server error ORA-06502: PL/SQL: mumeric or value error: charecter to number conversion error for set value.)
Код: plsql
1.
2.
3.
4.
5.
6.
declare
qwerty number;
begin
qwerty := to_number(:P8_TARIF + :P8_SBOR1 + :P8_SBOR2 + :P8_SBOR3 + :P8_SBOR4, '9999.99');
return qwerty;
end;



А если просто указать, то значения можно выводить только в тип айтема ДИСПЛЕЙ
Код: plsql
1.
2.
3.
4.
5.
6.
declare
qwerty number;
begin
qwerty := to_number('4444.45', '9999.99');
return qwerty;
end;



Я пробовал и просто складывать и с to_char и с round не помогло.

Целые числа складываются и выводятся, а с запятой нет.

Подскажите как быть?
...
Рейтинг: 0 / 0
28.06.2016, 23:35:07
    #39264306
Hagbo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложения дробных чисел с добавлением в item.
Hagbo,

Складывает дробные числа без ошибок, но выводит только в итем типа Text Field и Display Only.
Если значения ввожу с точкой 99.99, то ответ получается с запятой 99,99.

Копаю дальше, буду рад любым советам))

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
declare
QTARIF number;
QSBOR1 number;
QSBOR2 number;
QSBOR3 number;
QSBOR4 number;
begin
QTARIF := to_number(:P8_TARIF,'999999.00');
QSBOR1 := to_number(:P8_SBOR1,'999999.00');
QSBOR2 := to_number(:P8_SBOR2,'999999.00');
QSBOR3 := to_number(:P8_SBOR3,'999999.00');
QSBOR4 := to_number(:P8_SBOR4,'999999.00');
QTARIF := round(QTARIF+QSBOR1+QSBOR2+QSBOR3+QSBOR4,2);
return QTARIF;
end;
...
Рейтинг: 0 / 0
28.06.2016, 23:44:08
    #39264307
andreymx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложения дробных чисел с добавлением в item.
а почему вы вместо чисел подставляете строки?
...
Рейтинг: 0 / 0
28.06.2016, 23:52:14
    #39264317
Hagbo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложения дробных чисел с добавлением в item.
andreymx,
я подставляю числа типо 100.11 или 100,11 , так вот в консоле всё работает и без этого, но вот в апексе пришлось делать так.




А по поводу запятой, как раз таки нужна запятая вместо точки, что бы числовое значение ввести через текстовой итем.

Было бы лучше, что бы был числовой айтем, но и так всё работает.
...
Рейтинг: 0 / 0
29.06.2016, 00:01:07
    #39264321
Сложения дробных чисел с добавлением в item.
andreymxа почему вы вместо чисел подставляете строки?замечал за пхпшниками. Очень старательно избегают хоть поверхностных представлений об sql. Категорически недоверчиво относятся к книгам. Методом тыка определяют, что ЭЮЯ sql не понимает как строку-значение, а 01.02.3456 как дату, зато '123' прокатывает как число. Вывод? Все значения надо передавать в кавычках. Не воспринимают слова литерал и переменная, ведь в итоге клеится строка(!) для отправки запроса на сервер, как и в случае с веб-запросами.
...
Рейтинг: 0 / 0
29.06.2016, 00:07:32
    #39264327
Hagbo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложения дробных чисел с добавлением в item.
клиент минус сервер тире кодер,
Буду очень вам признателен если укажите пальцем в код который работает методом тыка, как было бы правильно с вашей точки зрения.
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
declare
QTARIF number;
QSBOR1 number;
QSBOR2 number;
QSBOR3 number;
QSBOR4 number;
begin
QTARIF := to_number(:P8_TARIF,'999999.00');
QSBOR1 := to_number(:P8_SBOR1,'999999.00');
QSBOR2 := to_number(:P8_SBOR2,'999999.00');
QSBOR3 := to_number(:P8_SBOR3,'999999.00');
QSBOR4 := to_number(:P8_SBOR4,'999999.00');
QTARIF := round(QTARIF+QSBOR1+QSBOR2+QSBOR3+QSBOR4,2);
return QTARIF;
end;
...
Рейтинг: 0 / 0
29.06.2016, 00:27:02
    #39264334
Сложения дробных чисел с добавлением в item.
Hagboработает методом тыкакалькулятор идеально подходит для складывания чисел тыком и ROI на такой задаче даже сравнивать с ораклом рядом не валялся.
...
Рейтинг: 0 / 0
29.06.2016, 09:07:26
    #39264406
blkangel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложения дробных чисел с добавлением в item.
Hagbo,
1. Установите формат на числовом поле в Апексе 999G999G990D00
2. В pl/sql точно такое же преобразование.

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
declare
QTARIF number;
QSBOR1 number;
QSBOR2 number;
QSBOR3 number;
QSBOR4 number;
begin
QTARIF := to_number(:P8_TARIF,'999G999G990D00');
QSBOR1 := to_number(:P8_SBOR1,'999G999G990D00');
QSBOR2 := to_number(:P8_SBOR2,'999G999G990D00');
QSBOR3 := to_number(:P8_SBOR3,'999G999G990D00');
QSBOR4 := to_number(:P8_SBOR4,'999G999G990D00');
QTARIF := round(QTARIF+QSBOR1+QSBOR2+QSBOR3+QSBOR4,2);
return QTARIF;
end;



P.S. Все элементы которые находятся на HTML страничке, это всегда текст. Апекс иногда может неявно преобразовать, но лучше то сделать явно.
P.S.S. Я еще в целях исключения пользовательских ошибок, добавляю яваскриптовый кусочек,Ваши поля в апексе должны быть NumberField
Код: javascript
1.
$(".number_field").change(function () {$(this).val($(this).val().replace('.', ','))});
...
Рейтинг: 0 / 0
29.06.2016, 09:31:37
    #39264414
blkangel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложения дробных чисел с добавлением в item.
Перенести надо бы в ветку по Апекс этот топик...
...
Рейтинг: 0 / 0
29.06.2016, 09:33:32
    #39264418
blkangel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложения дробных чисел с добавлением в item.
Hagbo,

Но по большому счету, концепцию Вам надо пересмотреть, если вы ничего не записываете в БД, гонять два числа на сервер для того чтобы сложить, совсем не правильно. Можно это сделать с помощью JS на странице.
...
Рейтинг: 0 / 0
09.07.2016, 09:45:08
    #39271032
Hagbo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложения дробных чисел с добавлением в item.
Забыл отписаться, что после обновления апекса до 5.0.3 всё отлично работает с числами.
...
Рейтинг: 0 / 0
09.07.2016, 11:33:20
    #39271051
andreymx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложения дробных чисел с добавлением в item.
HagboЗабыл отписаться, что после обновления апекса до 5.0.3 всё отлично работает с числами.вот именно

приходит народ и жалуется - так и так, процедура работает заипись, а в джобе слетает
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Сложения дробных чисел с добавлением в item. / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]