如何实现根据下拉列表的value获取key原创
13人赞赏了该文章
4,621次浏览
编辑于2022年04月16日 09:58:24
摘要由AI智能服务提供
本文描述了一个处理单据中数量与尺寸单位(通过下拉列表选择)字段拼接的需求背景。需通过下拉列表的value值反向查询得到key值,再与数量值拼接。文中提供了实现思路、具体实现代码,包括获取数据实体、数量值、尺寸单位value、从数据模型中查找key,以及最终拼接的逻辑。还指出了动态赋值下拉项的注意事项,并提供了一种简化问题的方案,即将value与key设为相同。
关键字:下拉列表
一、需求背景
比如一张单据,有一个数量的字段,还有一个尺寸的字段,尺寸为下拉列表。其中下拉列表的key是单位的名称,value是0123这种值。在后台我们获取下拉列表,默认取到的是value。假设需要得到数量+下拉列表key拼起来的这个字段,我们就需要通过下拉列表的value获取到对应的key。
二、思路与方案
通过value获取下拉列表的key,然后手动拼接即可。
三、实现过程
实现代码:在对应的事件中通过如下代码实现
// 获取界面数据实体 DynamicObject dataEntity = this.getModel().getDataEntity(); // 获取数量值 Integer count = dataEntity.getInt("kdec_count"); // 获取尺寸单位字段值,这里获取到的是value,而不是key String unitValue = dataEntity.getString("kdec_unit"); // 获取单据实体类型 MainEntityType dataEntityType = (MainEntityType) dataEntity.getDataEntityType(); // 获取所有实体字段集合 DataEntityPropertyCollection properties = dataEntityType.getProperties(); // 获取尺寸单位字段的数据模型 ComboProp comboUnitProp = (ComboProp) properties.get("kdec_unit"); // 根据下拉列表(尺寸单位字段)的value获取到key String unitName = comboUnitProp.getItemByName(unitValue); //拼接数量和尺寸单位名称 String defaultSplice = count + unitName;
其中比较关键的代码:
// 获取所有实体字段集合 DataEntityPropertyCollection properties = dataEntityType.getProperties();
这里就可以拿到页面上所有实体字段的数据模型,可以获取很多该字段的属性值。
四、效果图
五、开发环境版本
不限
六、注意事项
下拉项如果是动态赋值的,那么是获取不到的,因为这里是取数据模型中的值,动态构造的数据没有在数据模型中。
七、参考资料
后记:
本案例只是为了说明问题,如果只是针对当前案例,那么可以把下拉项的value和key设置成相同的,就不存在转换的问题了。如下图即可
下拉列表value获取key.zip(8.57KB)
赞 13
13人点赞
还没有人点赞,快来当第一个点赞的人吧!
打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!
推荐阅读