PortaleOrdiniGruppo/PortalStudio/zpdfviewer/zAform.js
2025-03-24 15:28:26 +01:00

80 lines
1.3 KiB
JavaScript

/*
Implementazione metodi calcolo semplice di Acrobat
Riferimento Aform.js
*/
/* exported AFSimple_Calculate
*/
/*
global zZoneNames milSep decSep
*/
function AFSimple_Calculate(funcName, objArray) {
function _AFPRD(v1, v2){
return v1*v2;
}
function _AFSUM(v1, v2){
return v1 + v2;
}
function _AFMIN(v1, v2){
return Math.min(v1, v2);
}
function _AFMAX(v1, v2){
return Math.max(v1, v2);
}
var ret = AFMakeNumber(getField(objArray[0]).value);
for(var i=1; i<objArray.length; i++){
var v = AFMakeNumber(getField(objArray[i]).value);
if( funcName == "PRD"){
ret = _AFPRD(ret, v);
}
if( funcName == "SUM" || funcName == "AVG"){
ret = _AFSUM(ret, v);
}
if( funcName == "MIN"){
ret = _AFMIN(ret, v);
}
if( funcName == "MAX"){
ret = _AFMAX(ret, v);
}
}
if( objArray.length > 1 && funcName == "AVG" )
ret = ret / objArray.length;
return ret;
}
function AFMakeNumber(obj) {
try{
if(!obj)
return 0;
if(Empty(obj))
return 0;
var sNum = obj.replace(milSep, "");
sNum = sNum.replace(decSep, ".");
return parseFloat(sNum);
}
catch(e){
}
return 0;
}
function getField(fieldName) {
var ret = {};
ret.value = "";
try{
if(zZoneNames!=null && zZoneNames[fieldName] != null ){
var obj = zZoneNames[fieldName];
ret.value = obj.defaultvalue;
}
}
catch(e){
ret.value = "";
}
return ret;
}