单据转换中的二开问题求解
693次浏览
编辑于2016年04月29日 12:21:21
销售订单到发货通知单的单据转换 客户的业务需求十分复杂,导致需要判断选单条件很多。
要关联发货通知、预留关系、销售出库等大约十多张物理表 并且有SUM 等等。
之前直接在OnParseFilter事件中把一堆条件写进去,然后发现果然选单就直接卡死半天不动,根本选不出来,然后上百行下推的时候也很卡。
后来改进了,在OnInitVariable就创建了一个临时表,把一部分数据放到临时表里,这样性能提升非常可观。
我通过以下代码获得了临时表的表名
IDBService service = Kingdee.BOS.App.ServiceHelper.GetService
this.tmpTbl1 = service.CreateTemporaryTableName(this.Context);
然后创建了临时表,然后OnAfterCreateLink事件里最后DROP了这个临时表。
问题来了:如果用户只点了选单,弹出了列表,但是后来又不往下做了,直接把列表关掉了,这时候临时表就DROP不了。
我想问:对于这种情况 应该在哪里DROP?还是说 平台会自动清理无需手动DROP
推荐阅读