以文本方式查看主题 - 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 运行速度很慢 请版主优化 要达到的效果就是 [此贴子已经被作者于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 -- 如果你用临时列或者表达式列,不需要删除数据或者删除列。但你每次打开项目或者加载数据的时候,你要每一行重新获取值。
如果你用数据列,不需要删除值吧,直接保存起来,下次不需要重新获取。 |