以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 代码有错,如何改正? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=193007) |
|
-- 作者:lin98 -- 发布时间:2024/8/9 8:59:00 -- 代码有错,如何改正? 需求:如果"日期"为空,列一,列二,列三不可编辑,否则,不为空,为编辑?如果列多比10多列,如何更简洁写? \'\'Dim dr As DataRow = e.DataRow \'\'Select Case e.DataCol.Name \'\' Case "日期" \'\' If dr.IsNull("日期") Then \'\' dr("列一").Cancel = True \'\' dr(列二").Cancel = True \'\' dr("列三").Cancel = True \'\' Else \'\' dr("列一").Cancel = False \'\' dr("列二").Cancel = False \'\' dr("列三").Cancel = False \'\' End If \'\'End Select
|
|
-- 作者:有点蓝 -- 发布时间:2024/8/9 9:15:00 -- 编辑权限控制到PrepareEdit事件处理:http://www.foxtable.com/webhelp/topics/0605.htm 列名如果有规律,比如都是【列】字开头,判断控制【列】字开头的列即可。 列名如果没有规律,只能是把所有列名都一一列出来判断
|
|
-- 作者:lin98 -- 发布时间:2024/8/9 10:06:00 -- If e.Col.Name = "日期" AndAlso e.Row.IsNull("日期") = False Then e.Row("列一").Cancel = True e.Row("列二").Cancel = True e.Row("列三").Cancel = True End If 执行后,无法实现需求
|
|
-- 作者:有点蓝 -- 发布时间:2024/8/9 10:22:00 -- IsNull的帮助认真看看:http://www.foxtable.com/webhelp/topics/0595.htm PrepareEdit再认真看看,帮助里是怎么设置不可编辑的:http://www.foxtable.com/webhelp/topics/0605.htm
|
|
-- 作者:lin98 -- 发布时间:2024/8/9 11:02:00 -- If Tables("窗口_Table2").Current.IsNull("日期") Then e.Cancel = True,执行后,是整行,需求:如果"日期"为空,列一,列二,列三不可编辑,否则,不为空,为编辑?看帮助还不太理解,请帮处理,谢谢 \' e.Row("期初_数量").Cancel = True \' e.Row("入库_数量").Cancel = True \' e.Row("出库_数量").Cancel = True End If
|
|
-- 作者:有点蓝 -- 发布时间:2024/8/9 11:12:00 -- 让您看IsNull的用法,不是让你照抄IsNull的全部代码。看帮助要学会理解帮助讲解的知识点的处理问题的逻辑
|
|
-- 作者:chaomoshou -- 发布时间:2024/8/9 11:31:00 -- PrepareEdit事件: Select Case e.Col.Name Case "第一列", "第二列", "第三列" \'要设置的列名 If e.Row("日期") Is Nothing Then e.Cancel = True End If End Select |
|
-- 作者:有点蓝 -- 发布时间:2024/8/9 11:54:00 -- 回7楼,日期型要使用【= Nothing】判断,不使用【Is Nothing】,具体请帮助搜索“空值”。建议还是使用isnull |