BOS配置公式获取辅助属性、仓位的值,允许快粘贴

说明:

  1. 系统中辅助属性、仓位为弹性域字段,单据使用需要录入启用的各个维度值,保存后会生成一个组合内码供存储。很多客户需要获取某维度下具体的值供实现其业务逻辑,下面针对辅助属性、仓位提供公式案例供参考。

  2. 新版本可以直接使用函数获取:GETFLEXDETAILVALUE函数


辅助属性:

(辅助属性来源分为三种,每种下属性名不同,需要按此维度类型定义不同公式获取)   

  • 文本时(获取某维度下文本值):

    FAuxPropId.ActiveObject['F100001']

  • 辅助资料时(获取某维度下编码、名称):

    str(FAuxPropId.ActiveObject['F100001']['FNumber'])       

    str(FAuxPropId.ActiveObject['F100001']['FDataValue'])

  • 基础资料时(获取某维度下编码、名称):

    str(FAuxPropId.ActiveObject['F100001']['Number'])

    str(FAuxPropId.ActiveObject['F100001']['Name'])

仓位:

  • 获取某维度下内码、编码、名称:

    FSTOCKLOCID.ActiveObject['F100001_Id']

    str(FSTOCKLOCID.ActiveObject['F100001']['Name'])

    str(FSTOCKLOCID.ActiveObject['F100001']['Number'])


注意:

  1. 要获取某个维度下具体的值就需要知道这个维度对应的属性名,属性名可以通过bos设计器中单据对应分维度展示的key、或者值集列表对应物料表查询获取、或者通过HttpWatcher跟踪、或者通过bos设计器-应用框架-弹性域-扩展的xml中查询获取(如下图所示)。

BOS配置公式获取辅助属性、仓位的值,允许快粘贴_第1张图片

        2.使用时,需要判断其对象不为空、对象下某维度也不为空才行,避免因为空导致异常,获取的值需要根据自身的需要转换类型赋值,避免类型不一致异常。

很多客户可能不止一个辅助属性,若直接设置公式:

(辅助属性.ActiveObject['F100001']['FDataValue']) + str(辅助属性.ActiveObject['F100002']['FNAME'])

PS: F100002辅助属性是关联基础资料,故用FNAME

BOS配置公式获取辅助属性、仓位的值,允许快粘贴_第2张图片

原因是在录入F100001辅助属性时,F100002还没有值,返回空。需在服务中加上前提条件:

FAuxPropId.ActiveObject['F100001'] is not None and FAuxPropId.ActiveObject['F100002'] is not None

辅助属性之类的不支持块粘贴,要修改配置文件

可以通过修改配置文件的方法实现。修改方法如下: 应用服务器安装目录下:\Kingdee\K3Cloud\WebSite\App_Data\common.config文件中 ,false改成true后,就会支持块粘贴和批量填充;

你可能感兴趣的:(金蝶云星空,业界资讯)