以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  删除行提示  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=12460)

--  作者:明丰
--  发布时间:2011/9/4 12:52:00
--  删除行提示
 

删除行提示

当删除一行或多行时,如果要删除行中的“一级类别”、“二级类别”、“三级类别”、“四级类别”、“五级类别”、“六级类别”列的值与其它行不重复(类似不重复行),则提示“该行包含类别 是否删除?”

 

请问如何设置?

[此贴子已经被作者于2011-9-4 12:52:17编辑过]

--  作者:狐狸爸爸
--  发布时间:2011/9/4 13:09:00
--  

http://www.foxtable.com/help/topics/0632.htm

 


--  作者:明丰
--  发布时间:2011/9/4 13:41:00
--  
“一级类别”……“六级类别”列的值都非空时,能正常提示,如果某一列为空值时,不会提示,请问如何设置?
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目3.table


--  作者:明丰
--  发布时间:2011/9/4 14:05:00
--  

\'删除行BeforeDeleteDataRow
Dim dr As DataRow = e.DataRow
Dim dr1 As List(of DataRow) = e.DataTable.Select("一级类别 Like \'" & dr("一级类别") & "\'And 二级类别 Like \'" & dr("二级类别") & "\'And 三级类别 Like \'" & dr("三级类别") & "\' And 四级类别 Like \'" & dr("四级类别") & "\' And 五级类别 Like \'" & dr("五级类别") & "\' And 六级类别 Like \'" & dr("六级类别") & "\'")
Dim d8 As String = dr("货品编号")
Dim d7 As String = " 货品编号:" & d8 & " 该行包含类别, 是否删除?"
If dr("货品编号") IsNot Nothing And dr1.count = 1 Then
If MessageBox.Show(d7,"提示",MessageBoxButtons.YesNo,MessageBoxIcon.Question) = DialogResult.No Then
        e.Cancel= True
Else
End If
End If

 

 

“一级类别”……“六级类别”列的值都非空时,能正常提示,如果某一列为空值时,不会提示,请问如何设置?


--  作者:狐狸爸爸
--  发布时间:2011/9/4 15:20:00
--  

=和like对于null无效。

 

你应该逐列合成表达式:

 

Dim nms() As String = {"一级类别","二级类别","三级类别","四级类别","五级类别","六级类别"}
Dim flt As String
Dim dr As DataRow  = e.DataRow
For Each nm As String In nms
    If flt > "" Then
        flt = flt & " And "
    End If
   If dr.IsNull(nm) Then
        flt = flt & nm & " Is Null"
    Else
       flt = flt & nm & "= \'" & dr(nm) & "\'"
   End If
Next
If e.DataTable.Select(flt).Count = 1 Then


End If

 

 


--  作者:明丰
--  发布时间:2011/9/4 15:53:00
--  
谢谢!