以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 请帮看看datacolchanged里的代码有何问题?【ok了】 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=2994) |
||||
-- 作者:mr725 -- 发布时间:2009/6/2 18:47:00 -- 请帮看看datacolchanged里的代码有何问题?【ok了】 说明: 只是为了简化 结果弄简为繁了。。。 见笑了~ 全部列都是字符型。 问题: 1 不能从第二列开始录入,否则会退出系统; 2 必须从第三列到第八列按顺序录入字符后,再录入第二列,这时,第十列会按要求自动赋值; 3 按2录入完后,就不能修改第二列 到 第九列的内容了,否则会退出系统。 不知道我的代码有何毛病,这里特别说明: 代码放在命令窗口时可以顺利执行!!!
附件错了,重新上传 [此贴子已经被作者于2009-6-2 22:50:24编辑过]
|
||||
-- 作者:mr725 -- 发布时间:2009/6/2 18:58:00 -- ```` [此贴子已经被作者于2009-6-2 19:01:29编辑过]
|
||||
-- 作者:yangming -- 发布时间:2009/6/2 19:00:00 -- 是这段代码? If e.DataCol.Name = "导到每片" Then \'如果是已结帐列的内容变动 If e.NewValue = True Then \'而且变动后的值是True(已勾选) for i as integer = 0 to tables("炉次.片号").count-1 if i < 9 tables("炉次.片号")(i,"炉次片号") = tables("炉次.片号")(i,"炉次编号") & "0" & i+1 else tables("炉次.片号")(i,"炉次片号") = tables("炉次.片号")(i,"炉次编号") & i+1 end if next e.DataRow.Locked = True \'那么锁定此行 End If End If |
||||
-- 作者:mr725 -- 发布时间:2009/6/2 19:02:00 -- 重新上传附加了~ 奇怪,有时又可以修改? 知道了,可以修改,但不能删除那几列对应的单元格内容 [此贴子已经被作者于2009-6-2 20:16:47编辑过]
|
||||
-- 作者:八婺 -- 发布时间:2009/6/2 20:54:00 -- 老兄想复杂了。 Dim s As String dim drw as DataRow = e.DataRow Dim ColNames As String = "第二列,第三列,第四列,第五列,第六列,第七列,第八列,第九列" Dim cs() As string = ColNames.split(",") for i as integer = 0 to cs.length-1 s = drw("第二列") & "§" & drw("第三列") & "§" & drw("第四列") & "§" & drw("第五列") & "§" & drw("第六列") & "§" & drw("第七列") & "§" & drw("第八列") & "§" & drw("第九列") If s.Contains("§§") Then drw("第十列") = Nothing Else drw("第十列")= drw("第二列") & drw("第三列") & drw("第四列") & drw("第五列") & drw("第六列") & drw("第七列") & drw("第八列") & drw("第九列") end if next 另外用ables("表A").current是极其错误的,因为一旦重置,都是以焦点所在行为基准而更改所有数据的。 |
||||
-- 作者:mr725 -- 发布时间:2009/6/2 22:09:00 -- 谢谢啊~ 就是想简化:【Tables("表A").current 是为了在命令窗口中测试用的】 Dim s As String dim drw as DataRow = e.DataRow Dim ColNames As String = "第二列,第三列,第四列,第五列,第六列,第七列,第八列,第九列" Dim cs() As string = ColNames.split(",") for i as integer = 0 to cs.length-1 s = s & "§" & drw("" & cs(i) & "") & "§" \'这是简化后的 next If s.Contains("§§§") Then drw("第十列") = Nothing Else drw("第十列")= drw("第二列") & drw("第三列") & drw("第四列") & drw("第五列") & drw("第六列") & drw("第七列") & drw("第八列") & drw("第九列") \'这段还没简化~ end if |
||||
-- 作者:八婺 -- 发布时间:2009/6/2 22:30:00 -- 哦,我还没注意到你要简化,只是解决了出错问题。 Dim s,s1 As String dim drw as DataRow = e.DataRow Dim ColNames As String = "第二列,第三列,第四列,第五列,第六列,第七列,第八列,第九列" Dim cs() As string = ColNames.split(",") for i as integer = 0 to cs.length-1 s = s & "§" & drw(cs(i)) & "§" \'这是简化后的 s1 = s1 & drw(cs(i)) next If s.Contains("§§§") Then drw("第十列") = Nothing Else drw("第十列")= s1 end if |
||||
-- 作者:八婺 -- 发布时间:2009/6/2 22:38:00 -- drw("" & cs(i) & "") 这段无需这样的,直接 drw(cs(i)) 就可以。 |
||||
-- 作者:mr725 -- 发布时间:2009/6/2 22:50:00 -- 太感谢了~ 确实是老师级的!!! |