二开案例.表达式.表达式不支持中文字符?
【应用场景】BOSIDE,编写表达式,对含有中文的字段进行运算。
【案例演示】BOSIDE,编写表达式,当字段是全英文时,运行时工作正常,当字段含有中文时,运行时系统报错,如何避免?
【问题重现】
<1>BOSIDE扩展采购订单,新增文本字段和整数字段,文本字段启用【即时触发更新事件】,值更新事件如下图,保存元数据。
计算公式:F_Jac_Integer = str(F_Jac_Text).count('#')
<2>登录业务站点,打开采购订单,文本字段录入中文,公式运行报错下如图:
【原因分析】
内建函数str只支持ascii字符,如果字段包含了中文,那该字段的值一定不会是ascii字符,因此报错。
且在当前python版本下,无论怎么转码解码都无效(例如:str.decode(FText,'utf-8'))。
此问题的终极解决办法就是不要用这个str函数。
如果确实绕不开,一定要用到str的某些功能,那就请使用自定义函数吧,python能干的,C#也能干,只是波折了些。
参考案例:【二开案例.表达式函数.编写自定义的表达式函数(字符串包含函数)】https://vip.kingdee.com/article/81106082826904320
【解决方案】
<1>BOSIDE扩展采购订单,新增文本字段和整数字段,文本字段启用【即时触发更新事件】,值更新事件如下图,保存元数据。
计算公式:F_Jac_Integer = F_Jac_Text.count('#')
<2>登录业务站点,打开采购订单,文本字段录入中文,公式运行正常。
---------------------------------------------------------------------------------------------------------
【金蝶云星空BOS二次开发案例演示】https://vip.kingdee.com/article/94751030918525696
二开案例.表达式.表达式不支持中文字符?
本文2024-09-23 04:20:06发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-164639.html