点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
嗨,专家
当我使用Input组件处理数字字段时,这是一个问题。
在我的代码中,第一步是判断字段的类型
常量类型= typeof(值)
然后,不同类型的数据将返回不同的控件(例如,输入,切换)
代码是这样的
_generateDataControl:函数(键,值,modelName,sPath){ 令t = {} 开关(typeof(value)){ 案件编号' : { t = new Input(key,{ 宽度:" 150px", 值:{ type:'sap.ui.model.type.Integer',//无法处理浮点数 路径:`$ {modelName}> $ {sPath}/$ {key}` }, //值:`{$ {modelName}> $ {sPath}/$ {key}}`////结果是一个字符串 类型:InputType.Number }) 打破 } 大小写"字符串":{ t = new Input(key,{ 宽度:" 150px", 值:`{$ {modelName}> $ {sPath}/$ {key}}`, 类型:InputType.Text }) 打破 } 案例"布尔值":{ t =新的Switch(key,{ 状态:`{$ {modelName}> $ {sPath}/$ {key}}`, 类型:SwitchType.AcceptReject }) 打破 } } 返回t }
我标记的行是我的问题。 如果值为数字,则会创建具有数字类型的Input组件。
如果我未设置值的类型,则用户输入后的结果为字符串。 但是,如果将其设置为Integer,则无法处理浮点数。
在JavaScript中,所有数字包括整数,双精度数和浮点数,均属于Number类型。
那么我该如何做这个自动化数据控制生成器。 谢谢!
您好 Yi Zou ,
输入中的数字类型只能处理类型" 整数"而不是Float。 因此,您只能使用数据类型来处理它们,而只能使用" sap.ui.model.type.Float"
。但是我不认为上面的方法会在输入char或输入字符的情况下抛出错误 这是一个问题,它不能处理所有错误。 我通常使用" sap.ui.model.odata.type.Decimal",它像处理所有错误的超级按钮一样工作。 如果您想限制小数和东西,请尝试传递格式选项。 例如
BTW错误将在您使用邮件管理器时自动处理。
谢谢,
Mahesh
您好邹一,
很高兴听到并喜欢看到
此外,我建议您基于odata服务的元数据(如果正在使用)创建控件,因为这将是理想的方法 甚至sap Fiori元素都是基于此的。
谢谢
Mahesh
大家好
在我的案例中,我受 Mahesh Kumar Palavalli 。
就我而言,我必须保留用户在输入组件中进行编辑时永远不会更改的字段类型。 在此基础上,如果它能够同时处理整数和浮点数,那就太好了。
所以我向输入组件更改挂钩添加了一个函数。
在我的代码中,当'change'事件触发时,我从输入组件中获取值。 输入组件返回的数据是字符串。 因此,我将其转换为javascript中的数字,然后将其设置为手动建模。 (我认为这不是一个很好的方法)
因此,"类型:InputType.Number"仅通过RegExp设置验证。 并且当它与模型以双向绑定方式绑定时,它不会将结果格式化为数字。 (尽管ABAP的oData服务可能永远不会关心)。 我认为这可能是错误或需要由openui5社区修复或检查的问题。
一周热门 更多>