"即时库存明细"是系统中的库存单据列表,可展示库存维度、基础资料属性等。增加显示如仓管员等现有基础资料属性较简单,通过修改字段属性并添加新属性即可。但增加其他类型字段较复杂,需利用BOS平台的事件处理更新临时表数据,并通过插件实现。自定义字段可用于扩展过滤条件,需重写相关方法并确保数据筛选的正确性。
系统中的“即时库存明细”是“即时库存”单据的列表,查询时可以显示即时库存的库存维度,部分基础资料的属性和数量等信息,如果要增加其他字段的显示,就需要做一些扩展。
如果要增加显示现有库存维度基础资料的属性,比如显示仓库的仓管员,或者显示批号的供应商,这些都比较容易,需要扩展“即时库存”单据,选中依赖的字段,比如物料,修改字段属性框里的引用属性,增加需要显示的属性。然后从左侧的工具箱里拖出来一个“基础资料属性”类型的字段,设置好“基础资料字段”和“关联基础资料字段名”和其他属性就可以了
如果要增加其他类型的字段,处理会麻烦一些。由于即时库存数据全都是由后台服务维护的,二开不好介入库存更新过程来更新新增二开字段的数据。要在即时库存列表显示这些字段的话就需要在查询列表时做一些处理。
“即时库存”单据列表采用的是临时表模式,BOS列表平台会把满足过滤条件的数据插入到一个临时表里,然后调用列表插件的事件进行业务处理。我们就需要借助此事件方法完成对二开字段数据的加工。
二开内容包括,编写单据列表插件, 重写BeforeGetDataForTempTableAccess方法,通过e.TableName得到存储数据的临时表名,然后根据业务需求更新临时表内对应字段的数据即可
因为标准的过滤条件在前边获取填充临时表数据的时候已经应用,这种后加工的字段数据不能用于标准过滤,如果确实需要,可以扩展即时库存列表的过滤界面“即时库存明细过滤”,在组织字段下边增加二开条件字段,如锁库量从、锁库量到等,在列表插件中重写PrepareFilterParameter方法,通过e.CustomerFilter获得过滤界面自定义字段的值,在BeforeGetDataForTempTableAccess方法中使用,根据自定义过滤字段对临时表中的数据进行二次筛选,排除不需要的数据,但要注意重整FIdentityId字段的值,既要保持顺序不变,又要保持连续性。
即时库存汇总增加自定义字段参见: 即时库存查询增加非基础资料属性类型字段
推荐阅读