以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助] 删除前判断  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=58587)

--  作者:wumingrong1
--  发布时间:2014/10/20 13:48:00
--  [求助] 删除前判断
在删除 “机房板盘端子台帐表” 的某行前进行判断;如果该表中“机房名称”和“机柜编号”和“板盘名称”与该行相同的其他行中“业务名称”不为空、弹出不能删除提示。以下命令怎么修改?


Dim dr As DataRow = e.DataRow
If e.DataRow.Isnull("业务名称") Then
        Dim fdr As DataRow = DataTables("机房板盘端子台帐表").Find("机房名称 = \'" & dr("机房名称") & "\' and 机柜编号 = \'" & dr("机柜编号") & "\' And 板盘名称 = \'" & dr("板盘名称") & "\' ")
    
    If fdr IsNot Nothing Then
        
MessageBox.Show("该设备配有板件,不能删除!!!")

        e.Cancel = True
  End If
 End If


如果表中有以下两行、删除其中一行时正常删除

业务名称    机房名称     机柜编号   板盘名称
                 A              AA01      ODF1
                 A              AA01      ODF1



如果表中有以下两行、删除其中一行时弹出不允许删除提示

业务名称    机房名称     机柜编号   板盘名称
   AB          A              AA01      ODF1
                 A              AA01      ODF1


--  作者:Bin
--  发布时间:2014/10/20 14:18:00
--  
If e.DataRow.Isnull("业务名称") Then
        Dim fs As integer = DataTables("机房板盘端子台帐表").Compute("Count(_Identify)","机房名称 = \'" & dr("机房名称") & "\' and 机柜编号 = \'" & dr("机柜编号") & "\' And 板盘名称 = \'" & dr("板盘名称") & "\' ")
    
    If fdr >1 Then
        
MessageBox.Show("该设备配有板件,不能删除!!!")

        e.Cancel = True
  End If
 End If

--  作者:wumingrong1
--  发布时间:2014/10/20 14:23:00
--  
不行哦


--  作者:有点甜
--  发布时间:2014/10/20 14:24:00
--  

不理解你什么意思

 

Dim dr As DataRow = e.DataRow
If e.DataRow.Isnull("业务名称") Then
    Dim fdr As DataRow = DataTables("机房板盘端子台帐表").Find("业务名称 is not null and 机房名称 = \'" & dr("机房名称") & "\' and 机柜编号 = \'" & dr("机柜编号") & "\' And 板盘名称 = \'" & dr("板盘名称") & "\' and _Identify <> " & dr("_Identify"))
    If fdr IsNot Nothing Then       
        MessageBox.Show("该设备配有板件,不能删除!!!")
        e.Cancel = True
    End If
End If


--  作者:wumingrong1
--  发布时间:2014/10/20 14:45:00
--  
在  “机房板盘端子台帐表”  中有以下数据,


比如我要删除第3行、由于业务名称都为空,所以允许删除;“机房名称”“机柜编号”“板盘名称” 内容都相同。

业务名称    机房名称     机柜编号   板盘名称    端子编号
                 A              AA01      ODF1         1
                 A              AA01      ODF1         2
                 A              AA01      ODF1         3
                 A              AA01      ODF1         4



如下:由于其中第2行的业务名称不为空,所以不允许删除并弹出提示“该板盘已经配有业务、不允许删除”

业务名称    机房名称     机柜编号   板盘名称    端子编号
                 A              AA01      ODF1         1
   AB          A              AA01      ODF1         2
                 A              AA01      ODF1         3
                 A              AA01      ODF1         4

[此贴子已经被作者于2014-10-20 14:51:03编辑过]

--  作者:有点甜
--  发布时间:2014/10/20 14:55:00
--  

Dim dr As DataRow = e.DataRow
If e.DataRow.Isnull("业务名称") Then
    Dim fdr As DataRow = DataTables("机房板盘端子台帐表").Find("业务名称 is not null and 机房名称 = \'" & dr("机房名称") & "\' and 机柜编号 = \'" & dr("机柜编号") & "\' And 板盘名称 = \'" & dr("板盘名称") & "\'")
    If fdr IsNot Nothing Then       
        MessageBox.Show("该设备配有板件,不能删除!!!")
        e.Cancel = True
    End If
End If


--  作者:wumingrong1
--  发布时间:2014/10/20 15:05:00
--  
还是没有起作用
--  作者:有点甜
--  发布时间:2014/10/20 15:07:00
--  
Dim dr As DataRow = e.DataRow
Dim fdr As DataRow = DataTables("机房板盘端子台帐表").Find("业务名称 is not null and 机房名称 = \'" & dr("机房名称") & "\' and 机柜编号 = \'" & dr("机柜编号") & "\' And 板盘名称 = \'" & dr("板盘名称") & "\'")
If fdr IsNot Nothing Then
    MessageBox.Show("该设备配有板件,不能删除!!!")
    e.Cancel = True
End If