У меня есть табличная форма, где col1 и col2 - числа, а col3 должна содержать разницу между col1 и col2.Динамический расчет в вершине оракула табличная форма: sys.htp.p
col1 уже имеет данные, а col 1 можно редактировать, в зависимости от изменения col1 данные col3 будут динамически изменяться.
Для достижения этой цели я использовал ajax callback
процесс и JavaScript
, но проблема в том, когда разница 0.xx
-0.xx
, я получаю ошибку разбора. другие значения, которые я могу напечатать в col3.
Declare
p_curr number;
p_prev number;
p_diff number;
Begin
p_prev := to_number(apex_application.g_x01);
p_curr := to_number(apex_application.g_x02);
SELECT p_curr - p_prev into p_diff
from dual;
-- return calculated value
sys.htp.p(p_diff);
End;
--JavaScript
function f_CALC_DIFF(pThis) {
var row_id = pThis.id.substr(4);
var s = $('#f18_'+row_id).val().replace(/[^\d.-]/g, '');
var curr = $(pThis).val().replace(/[^\d.-]/g, '');
if(!s){
var s= 0;
var prev = s;}
else{
var prev = s;}
apex.server.process
("CALC_DIFF", { x01: prev, x02: curr },
{ success: function(pData) {
$('#f23_'+row_id).val(pData);}}
);
}
Просьба предложить решение для указанной задачи.
Я использую Oracle Apex version 4.2
Что такое ошибка синтаксического анализа и где? Зачем использовать to_number здесь, когда значение уже является числом: 'to_number (p_curr - p_prev)'? Вы должны иметь возможность рассчитать разницу между двумя номерами в Javascript, не требуя дорогого вызова AJAX для базы данных. –
Ошибка анализа: ошибка синтаксиса, неожиданный токен. Проблема в том, что я хочу динамически печатать значение в col3 на основе изменений, сделанных в col2, поскольку это редактируемый столбец. Значение col3 равно (col2-col1). Поэтому я использовал вызов Ajax в базе данных. – ApexDev