以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]求修改,编译不过 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=49356) |
|
-- 作者:737182811 -- 发布时间:2014/4/16 17:19:00 -- [求助]求修改,编译不过 If e.OldRange.RowSel <> e.NewRange.RowSel \'如果选择的是不同的行 If e.OldRange.RowSel >= 0 AndAlso e.OldRange.Rowsel < e.Table.Rows.Count Then \'而且原来选择的是一个有效的数据行 Dim r As Row = e.Table.Rows(e.OldRange.Rowsel) \'获得原来选择的行 For Each c As Col In e.Table.Cols If [C.Name] not In (\'编辑者\',\'执行次数\') Then ‘此行有问题 MessageBox.Show(c.Name) End If Next End If End If |
|
-- 作者:Bin -- 发布时间:2014/4/16 17:20:00 -- 你想做什么.没有这样的语法 If [C.Name] not In (\'编辑者\',\'执行次数\') Then |
|
-- 作者:737182811 -- 发布时间:2014/4/16 17:22:00 -- 就是忽略比较这两个列的newvalue 和oringinalvalue比较。 |
|
-- 作者:Bin -- 发布时间:2014/4/16 17:26:00 -- if r.DataRow.OriginalValue(c.name) <> r(c.name) then \'值变动了 |
|
-- 作者:737182811 -- 发布时间:2014/4/16 17:30:00 -- 我想要选择不同行之前判断一下: 是否除了编辑者列和执行次数列的其他列的内容如果未实际修改过的话,就执行以下。r.reject 或者update一下 ,把编辑者列还原。 对应原来狐爸的例子,这样就可以解锁该列。
[此贴子已经被作者于2014-4-16 17:43:01编辑过]
|
|
-- 作者:737182811 -- 发布时间:2014/4/16 17:43:00 -- 谢谢了,我还是继续自己研究吧。 |
|
-- 作者:Bin -- 发布时间:2014/4/16 17:43:00 -- dim ischanged as Boolean \'放在 For Each c As Col In e.Table.Cols if r.DataRow.OriginalValue(c.name) <> r(c.name) andalso c.name<>"编辑者" andalso c.name<>"执行次数" then ischanged = true End If Next if ischanged then messagebox.show("YOU改变") end if |
|
-- 作者:737182811 -- 发布时间:2014/4/16 17:54:00 --
[此贴子已经被作者于2014-4-16 20:32:47编辑过]
|
|
-- 作者:有点甜 -- 发布时间:2014/4/16 18:35:00 -- 回复8楼,基础的写法就是不断的 andalso 下去。
可以优化成这样
Dim names() As String = {"编辑者", "执行次数"} [此贴子已经被作者于2014-4-16 20:38:34编辑过]
|
|
-- 作者:737182811 -- 发布时间:2014/4/16 20:36:00 -- 大概看懂. |