业务场景:
物料收发明细表,物料收发汇总表,存货收发明细表等等,添加自定义字段,计算辅助属性的体积。
实现场景:
1:在分页账表上添加字段。
2:编写表单插件用,单元格格式化事件FormatCellValue。以下示例,根据辅助属性的值新增二开字段,最好后面的数字是跟辅助属性一样的,这里演示的是ff100007,ff100008,ff100009,根据该公司的辅助属性ID自行修改。如不知道怎么查可以看我上一个示例介绍 输入物料显示默认值辅助属性 。好了闲话不说直接上代码。
import clr
clr.AddReference('Kingdee.BOS')
clr.AddReference('Kingdee.BOS.Core')
from Kingdee.BOS import *
from Kingdee.BOS.Core import *
from Kingdee.BOS.Core.Report.PlugIn import *
from Kingdee.BOS.Core.Report.PlugIn.Args import *
#将小数点后的0去掉
def remove_exponent(i):
t=str(i);
return t.rstrip('0').strip('.') if '.' in t else t;
def FormatCellValue(args):
if args.DataRow is not None:
for fint in range(7,9):
if args.Header.Key.ToUpperInvariant()==("FSTOCKQCQTY0{0}").format(fint):#自定义字段循环赋值
billid1 =args.DataRow[("fauxpropidr__ff1000{0}").format(fint)]#辅助属性循环赋值 fauxpropidr__ff100007....
day = args.DataRow["FSTOCKQCQTY"]#期初库存数量
float1 = 0 if billid1 == None or billid1.ToString()=='' else float(billid1)
day1 = 0 if day == None or day.ToString()=='' else float(day)
faloat = round(day1*float1/100,2)#辅助属性长*期初库存数量
args.FormateValue = ("{0}").format(remove_exponent(faloat) if faloat>0 else '')#给自定义字段赋值,并且去掉小数点后面的0
推荐阅读