python脚本控制字段精度问题原创
金蝶云社区-手滑了一下
手滑了一下
3人赞赏了该文章 510次浏览 未经作者许可,禁止转载编辑于2021年06月22日 14:27:40

应用场景:物料收发汇总表,自定义字段小数点的精度过长的问题。

image.png



解决:

image.png

image.png

image.png

#基于他人的代码做修改
import clr
clr.AddReference("System")
clr.AddReference("System.Core")
clr.AddReference("Kingdee.BOS")
clr.AddReference("Kingdee.BOS.Core")
clr.AddReference("Kingdee.BOS.DataEntity")
from System import *
from Kingdee.BOS.Core import *
from Kingdee.BOS.Core.DynamicForm import * 
from Kingdee.BOS.Orm.DataEntity import * 
from Kingdee.BOS.Core.Report.PlugIn.Args import * 
from Kingdee.BOS.Core.Util import *

def FormatCellValue(e):
    #格式化净重
    if e.Header.Key == "F_jlkj_BaseProperty":    #判断字段
        newValue = Convert.ToDecimal(e.DataRow["F_jlkj_BaseProperty"]) #转换为Decimal类型
        e.FormateValue= FieldFormatterUtil.GetDecimalFormatString(this.Context, newValue, 3) #保留3位小数
    #格式化展开长
    if e.Header.Key == "F_jlkj_BaseProperty1":
        newValue = Convert.ToDecimal(e.DataRow["F_jlkj_BaseProperty1"]) 
        e.FormateValue= FieldFormatterUtil.GetDecimalFormatString(this.Context, newValue, 1);
    #格式化展开宽
    if e.Header.Key == "F_jlkj_BaseProperty2":
        newValue = Convert.ToDecimal(e.DataRow["F_jlkj_BaseProperty2"]) 
        e.FormateValue= FieldFormatterUtil.GetDecimalFormatString(this.Context, newValue, 1);
    #格式化料厚
    if e.Header.Key == "F_jlkj_BaseProperty3":
        newValue = Convert.ToDecimal(e.DataRow["F_jlkj_BaseProperty3"]) 
        e.FormateValue= FieldFormatterUtil.GetDecimalFormatString(this.Context, newValue, 1);


赞 3