Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共8 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:代码有错,如何改正?

1楼
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
2楼
有点蓝 发表于:2024/8/9 9:15:00
编辑权限控制到PrepareEdit事件处理:http://www.foxtable.com/webhelp/topics/0605.htm

列名如果有规律,比如都是【列】字开头,判断控制【列】字开头的列即可。
列名如果没有规律,只能是把所有列名都一一列出来判断
3楼
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

执行后,无法实现需求
需求:如果"日期"为空,列一,列二,列三不可编辑,否则,不为空,为编辑?
4楼
有点蓝 发表于:2024/8/9 10:22:00
IsNull的帮助认真看看:http://www.foxtable.com/webhelp/topics/0595.htm

PrepareEdit再认真看看,帮助里是怎么设置不可编辑的:http://www.foxtable.com/webhelp/topics/0605.htm
5楼
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
6楼
有点蓝 发表于:2024/8/9 11:12:00
让您看IsNull的用法,不是让你照抄IsNull的全部代码。看帮助要学会理解帮助讲解的知识点的处理问题的逻辑

If e.Col.Name = "列一" orelse e.Col.Name = "列2" orelse e.Col.Name = "列3
if e.Row.IsNull("日期") Then
    e.Cancel = True
End If
End If
7楼
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
8楼
有点蓝 发表于:2024/8/9 11:54:00
回7楼,日期型要使用【= Nothing】判断,不使用【Is Nothing】,具体请帮助搜索“空值”。建议还是使用isnull
共8 条记录, 每页显示 10 条, 页签: [1]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .03125 s, 2 queries.