#使用技巧# 开发个Python在线测试功能原创
金蝶云社区-请输入昵称___
请输入昵称___
27人赞赏了该文章 1,185次浏览 未经作者许可,禁止转载编辑于2022年12月07日 19:01:17

image.png

一.在需要测试的单据上,添加对应字段

  ① 文本字段(Fpystr),用来写python语句

   ②按钮FEXECPY  用来点击执行

二.注册表单插件

import clr

clr.AddReference('System')

clr.AddReference('System.Data')

clr.AddReference('Kingdee.BOS')

clr.AddReference('Kingdee.BOS.DataEntity')

clr.AddReference('Kingdee.BOS.Core')

clr.AddReference('Kingdee.BOS.App')

clr.AddReference('Kingdee.BOS.App.Core')

clr.AddReference('Kingdee.BOS.ServiceHelper')

clr.AddReference("Kingdee.BOS.ServiceFacade.Common")

#import sys

from Kingdee.BOS import *

from Kingdee.BOS.Core import *

from Kingdee.BOS.Core.DependencyRules import *

from Kingdee.BOS.Core.Bill import *

from Kingdee.BOS.Core.DynamicForm.PlugIn import *

from Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel import *

from System import *

from System.Data import *

from System.Net import *

from System.Text import *

from System.IO import *

from Kingdee.BOS.App.Data import *

from System.Collections.Generic import List

from Kingdee.BOS.ServiceHelper import *

from Kingdee.BOS.Core.DynamicForm import *

from Kingdee.BOS.Core.Metadata.EntityElement import *

from Kingdee.BOS.Core.Metadata.FieldElement import *

from Kingdee.BOS.Orm.DataEntity import *

from Kingdee.BOS.ServiceFacade import *

def ButtonClick(e):

kbutton=e.Key.ToUpperInvariant();

if(kbutton=="FEXECPY"):

try:

pystr=this.Model.GetValue("Fpystr").ToString()

exec(pystr.replace('\r',''))

except Exception as e:

this.View.ShowMessage("代码错误,"+str(e))

三.编写常用Python测试验证
this.View.ShowMessage("测试提示框")

this.Model.setValue("FBillNo","测试控件赋值")

获取单据信息JSON

this.View.ShowMessage(DynamicObjectToJson(this.Model.DataObject))

获取明细信息JSON

this.View.ShowMessage(DynamicObjectToJson(this.Model.DataObject["POOrderEntry"]))

image.png

获取第一行金额

this.View.ShowMessage(DynamicObjectToJson(this.Model.DataObject["POOrderEntry"][0]["Amount"]))

image.png

获取明细金额汇总

amt=0

for r in this.Model.DataObject["POOrderEntry"]:

    amt=amt+r["Amount"]

this.View.ShowMessage(str(amt))


类似于表达式测试功能,仅用于测试。

this.View.ShowMessage(DynamicObjectToJson(this.Model.DataObject["POOrderEntry"]))

图标赞 27
27人点赞
还没有人点赞,快来当第一个点赞的人吧!
图标打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!

您的鼓励与嘉奖将成为创作者们前进的动力,如果觉得本文还不错,可以给予作者创作打赏哦!

请选择打赏金币数 *

10金币20金币30金币40金币50金币60金币
可用金币: 0