表单插件_如何在账表上添加自定义字段原创
金蝶云社区-Zenos
Zenos
5人赞赏了该文章 430次浏览 未经作者许可,禁止转载编辑于2023年03月24日 17:05:42

业务场景:

    物料收发明细表,物料收发汇总表,存货收发明细表等等,添加自定义字段,计算辅助属性的体积。


实现场景:

    1:在分页账表上添加字段。

    image.png

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

     




赞 5