以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  优化段代码  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=131567)

--  作者:nxhylczh
--  发布时间:2019/3/1 13:08:00
--  优化段代码

原代码  科目编码=10100101 依据科目编码规则    kmbm_lenC(1)=101  kmbm_lenC(2)=101001  kmbm_lenC(3)=10100101 
编码  名称
101  银行存款
101001 同城存款
10100101 中国银行

如果输入的编码是 10100101 返回的名称是 银行存款_同城存款_中国银行
Dim KM As String
For i = 1 To js
    KM = KM & "\'" & kmbm_lenC(i) & "\',"
Next
km=km.TrimEnd(",")
sql = "s elect DISTINCT 科目编码,科目名称 from {K01} where 科目编码 In (" & KM & ")  order by 科目编码"
Dim s As String
For Each dr As DataRow In ReturnDataRead(sql).DataRows
    s=s & dr("科目名称") &"_"
Next
这段代码写到 DrawCell  运行速度很慢  请版主优化

要达到的效果就是

图片点击可在新窗口打开查看此主题相关图片如下:qyz`tupdoppe74pf~lopwg2.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:@@)j7((9~n5m837`@uhs3ql.png
图片点击可在新窗口打开查看


[此贴子已经被作者于2019/3/1 13:15:04编辑过]

--  作者:有点甜
--  发布时间:2019/3/1 14:34:00
--  

1、耗时的代码不能写在drawcell事件。你这段代码的效率太低,肯定不能在那里处理。

 

2、加入一个辅佐列,你在datacolchanged事件,把值提取过来存放。然后再在drawcell直接显示辅佐列的值。


--  作者:nxhylczh
--  发布时间:2019/3/1 15:35:00
--  
这样我保存的时候  是不是先要把这列删除?或者临时增加的列 不会保存在数据库里?


--  作者:有点甜
--  发布时间:2019/3/1 15:49:00
--  

如果你用临时列或者表达式列,不需要删除数据或者删除列。但你每次打开项目或者加载数据的时候,你要每一行重新获取值。

 

如果你用数据列,不需要删除值吧,直接保存起来,下次不需要重新获取。