匹配与显示中文说明
近两天,急需要解决公司的ERP系统Infor SyteLine的问题。
由于ERP系统是英文版本,虽说是多语言版本,可以快速切换语言,但是系统一些核心显示的还是英文。面对政府核师的要求,需要把这些数据显示为具体中文字。Insus.NET接到一个财务部门一个参考表:
在ERP原系统中,并无上图表的记录,Insus.NET只好在数据库创建这个表:
按照SyteLine ERP的设计风格,还需要设计一个触发器,实现记录更新时,记录更新用户:
然后插入数据:
原本想象中,是件很容易解决的事情,只是做个表关联即可,但是在General Ledger打印出来的参考说明,全是一些参考码与随机性结合的数据,如下图:
一些数据只是前面匹配,一些可以做到完全匹配。因此想使用多表关联是无法解决的。怎样解决?参考表的字符与数据前面完全匹配的,就显示相应用中文。
这个可让Insus.NET难住了......
不过Insus.NET对于此问题已经在今早解决了,稍后把实现过程分享于此。
下面内容于2013-10-30 16:25分添加:
解决的办法,是写一个自定义函数:
看过上面的函数之后,就会觉得它的原理很简单,即是先排序我们自定义设计的表的[Ref]字段,实现倒排序,也就是说我们先匹配最长字符的[Ref]字段值。然后是以数据库Ledger表的[ref]数据去循环匹配我们自定义的表[Ref]每一行值。截取出来的值与参考值一样,就说明匹配正确,如果没有,就是用回原来的值。