oracle apex 表格形式的动态计算:sys.htp.p
Dynamic calculation in oracle apex tabular form : sys.htp.p
我有表格形式,其中 col1 和 col2 是数字,col3 应该包含 col1 和 col2 之间的差异。
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
不要使用昂贵的 AJAX 数据库调用,而是使用 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;}
var diff = 0;
diff = (curr - prev);
var n = diff.toFixed(2);
alert (n);
$('#f23_'+row_id).val(n);
// Please remove the AJAX call to database.
/*apex.server.process
( "CALC_DIFF", { x01: prev, x02: curr },
{ success: function( pData ) {
$('#f23_'+row_id).val(pData);}}
);
} */
我有表格形式,其中 col1 和 col2 是数字,col3 应该包含 col1 和 col2 之间的差异。
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
不要使用昂贵的 AJAX 数据库调用,而是使用 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;}
var diff = 0;
diff = (curr - prev);
var n = diff.toFixed(2);
alert (n);
$('#f23_'+row_id).val(n);
// Please remove the AJAX call to database.
/*apex.server.process
( "CALC_DIFF", { x01: prev, x02: curr },
{ success: function( pData ) {
$('#f23_'+row_id).val(pData);}}
);
} */