二开案例.表达式.表达式不支持中文字符?

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

二开案例.表达式.表达式不支持中文字符?

【应用场景】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

二开案例.表达式.表达式不支持中文字符?

【应用场景】BOSIDE,编写表达式,对含有中文的字段进行运算。【案例演示】BOSIDE,编写表达式,当字段是全英文时,运行时工作正常,当字段...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息