套打.二开案例.通过表单插件过滤数据(python创建数组对象)

<0>简介
本文提供一个通过平台python插件处理套打数据,创建数据对象返回平台的方法。
Array.CreateInstance(type, len(tempList));
<1>分析过程
直接创建,无法使用new语法
List<T>.ToArray()? 理解面向接口编程
C# 语言默认提供的IList<T>列表接口实现默认就7种,像python这种第三方库本质上也是应该面向接口编程,如果了解星空是使用IronPython实现python语法的话(本质上也是一个C#的库,将python的语法用C#实现而已),查下github源码就知道了(源码面前了无秘密),最终的源码是IronPython.Runtime.List没有ToArray的公有接口


IronPython.Runtime.List分析源码,本质上也是通过数组实现列表
本质上也是object[]实现列表,但是奈何没有实现这个列表的动态访问,无法访问内部属性


再仔细分析,内部实现的拷贝都借助了一个静态类ArrayOps,分析静态类中提供的语法,最终找到一个Array.CreateInstance的方法,Array在python中属于一个动态类型,因此支持访问器内部方法



可能有些小伙伴不了解动态类型和静态类型,动态类型的意思是继承System.Dynamic.DynamicObject,通过实现TryGetMember和TrySetMember进行获取和设置内部成员(还包括其他接口),比如平台提供的实体服务规则和套打动态字段等。

<2>实现案例
过滤套打单据体的数据


from System import * from Kingdee.BOS import * from Kingdee.BOS
套打.二开案例.通过表单插件过滤数据(python创建数组对象)
<0>简介本文提供一个通过平台python插件处理套打数据,创建数据对象返回平台的方法。Array.CreateInstance(type, len(tempList));<1>分析...
点击下载文档文档为doc格式
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
上一篇
已经是第一篇



