MWF.xDesktop.requireApp("process.Xform", "Textfield", null, false); /** @class Number 数字输入组件。 * @example * //可以在脚本中获取该组件 * //方法1: * var field = this.form.get("name"); //获取组件 * //方法2 * var field = this.target; //在组件事件脚本中获取 * @extends MWF.xApplication.process.Xform.Textfield * @o2category FormComponents * @o2range {Process|CMS} * @hideconstructor */ MWF.xApplication.process.Xform.Number = MWF.APPNumber = new Class({ Implements: [Events], Extends: MWF.APPTextfield, iconStyle: "numberIcon", isEmpty : function(){ return !this.getData(); }, getInputData: function(){ if (this.node.getFirst()){ var v = this.node.getElement("input").get("value"); var n = v.toFloat(); return (isNaN(n)) ? 0 : n; }else{ return this._getBusinessData(); } return v; }, // getInputData: function(){ // var n = this.node.getElement("input").get("value").toFloat(); // if ((isNaN(n))) {this.setData('0')}; // return (isNaN(n)) ? 0 : n; // }, formatNumber: function(str){ var v = str.toFloat(); if (v){ if (this.json.decimals && (this.json.decimals!="*")){ var decimals = this.json.decimals.toInt(); var p = Math.pow(10,decimals); var f_x = Math.round(v*p)/p; str = f_x.toString(); if (decimals>0){ var pos_decimal = str.indexOf('.'); if (pos_decimal < 0){ pos_decimal = str.length; str += '.'; } decimalStr = (str).substr(pos_decimal+1, (str).length); while (decimalStr.length < decimals){ str += '0'; decimalStr += 0; } } } } return str; }, validationFormat: function(){ debugger; if( !this.node.getElement("input") )return true; var n = this.node.getElement("input").get("value"); if (isNaN(n)) { this.notValidationMode(MWF.xApplication.process.Xform.LP.notValidation_number); return false; } this.node.getFirst().set("value", this.formatNumber(n)); // var v = n.toFloat(); // if (v){ // if (this.json.decimals && (this.json.decimals!="*")){ // // var decimals = this.json.decimals.toInt(); // // var p = Math.pow(10,decimals); // var f_x = Math.round(v*p)/p; // var s_x = f_x.toString(); // // if (decimals>0){ // var pos_decimal = s_x.indexOf('.'); // if (pos_decimal < 0){ // pos_decimal = s_x.length; // s_x += '.'; // } // decimalStr = (s_x).substr(pos_decimal+1, (s_x).length); // while (decimalStr.length < decimals){ // s_x += '0'; // decimalStr += 0; // } // } // // this.node.getFirst().set("value", s_x); // } // } return true; }, validationConfigItem: function(routeName, data){ var flag = (data.status=="all") ? true: (routeName == data.decision); if (flag){ var n = this.getInputData(); var v = (data.valueType=="value") ? n : n.length; switch (data.operateor){ case "isnull": if (!v && v.toString()!=='0'){ this.notValidationMode(data.prompt); return false; } break; case "notnull": if (v){ this.notValidationMode(data.prompt); return false; } break; case "gt": if (v>data.value){ this.notValidationMode(data.prompt); return false; } break; case "lt": if (v