以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]定义函数有误 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=71665) |
-- 作者:blsu33 -- 发布时间:2015/7/15 19:48:00 -- [求助]定义函数有误 老师 , |
-- 作者:blsu33 -- 发布时间:2015/7/15 19:49:00 -- 代码 Dim e As object=args(0) Dim tb As Table=args(1) Dim dt,dt1,dt2 As DataTable Dim cmd,cmd1,cmd2 As New SQLCommand cmd.C cmd1.C cmd2.C cmd1.CommandText = "SELECT * Fr om {组别转换}" cmd.CommandText = "SELECT * Fr om {ERPcode}" cmd2.CommandText = "SELECT * Fr om {Showcode转换}" dt = cmd2.ExecuteReader() dt1 = cmd1.ExecuteReader() dt2 = cmd.ExecuteReader() Select e.DataCol.Name Case "旧项目号" If tb.Current("旧项目号") IsNot Nothing Then Dim dr,dr1 As DataRow dr = dt.Find("旧项目号= \'" & tb.Current("旧项目号") & "\'") dr1 = dt1.Find("原组别=\'"& tb.Current("组别") &"\'") If dr IsNot Nothing Then tb.Current("项目号")=dr("项目号") tb.Current("旧项目号")=dr("旧项目号") tb.Current("ShowName")=dr("ProjectName") tb.Current("组别")=tb.Current("项目号").SubString(0,2) If dr1 IsNot Nothing Then tb.Current("组别")="" tb.Current("组别")=dr1("组别") End If Else tb.Current("项目号")=tb.Current("旧项目号") tb.Current("组别")=tb.Current("项目号").SubString(0,2) dr1 = dt1.Find("原组别=\'"& tb.Current("组别") &"\'") If dr1 IsNot Nothing Then tb.Current("组别")="" tb.Current("组别")=dr1("组别") End If End If End If Case "项目号" If tb.Current("项目号") IsNot Nothing Then Dim dr2 As DataRow dr2 = dt2.Find("Project= \'" & tb.Current("项目号") & "\'") If dr2 IsNot Nothing Then tb.Current("PIC")=dr2("PIC name") tb.Current("ShowName")=dr2("Name") tb.Current("预算开工时间")=dr2("Show/event open date") tb.Current("预算完工时间")=dr2("Show/event close date") End If End If End Select |
-- 作者:blsu33 -- 发布时间:2015/7/15 19:51:00 -- 窗口的 datacolchanged Select e.DataCol.Name Case "旧项目号" Functions.Execute("codeadd",e,Tables("ar_table5")) |
-- 作者:blsu33 -- 发布时间:2015/7/15 19:52:00 -- 本来是用e参数 发现 不是这个的问题 麻烦老师给看看 |
-- 作者:大红袍 -- 发布时间:2015/7/15 20:00:00 -- SubString(0,2) 的问题,说明你的内容没有两个字符。要处理字符为空或少于2的情况。 |
-- 作者:blsu33 -- 发布时间:2015/7/15 20:19:00 -- 哦 果然低级错误 老师 上述有这么多 SQL 导致 这个字段录入 速度非常慢 怎么改进呢
|
-- 作者:大红袍 -- 发布时间:2015/7/15 20:26:00 -- cmd1.CommandText = "SELECT * Fr om {组别转换}"
cmd.CommandText = "SELECT * Fr om {ERPcode}"
cmd2.CommandText = "SELECT * Fr om {Showcode转换}"
写成
cmd1.CommandText = "SELECT * Fr om {组别转换} where 1=2"
cmd.CommandText = "SELECT * Fr om {ERPcode} where 1=2"
cmd2.CommandText = "SELECT * Fr om {Showcode转换} where 1=2"
--------------
find函数写成sqlFind函数
|
-- 作者:大红袍 -- 发布时间:2015/7/15 20:28:00 -- 如果你的那三个表需要重复多次使用,建议你就把它们加载出来吧。 |