以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]删除多行数据提示  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=63480)

--  作者:wumingrong1
--  发布时间:2015/1/21 20:14:00
--  [求助]删除多行数据提示
我在表BeforeDeleteDataRow中写有以下命令;实现了对删除数据的控制。

但现在有一个问题就是:如果我是非该条纪录的所有者或者一级管理员、在选择了多行进行删除时(比如选择了5行),那么它会弹出5个提示、我该怎么修改以下命令才能实现只弹出一次提示。

If vars("删除")=False Then
    If _UserGroup <> "软件开发员" AndAlso _UserGroup <> "系统管理员"   AndAlso _UserGroup <> "一级管理员"  Then
        If e.DataTable.DataCols.Contains("操作记录_增加人员") Then
            If e.DataRow("操作记录_增加人员") <> _UserName Then
                e.Cancel = True \'禁止直接编辑该表
                MessageBox.Show("你非【一级管理员 或 该纪录所有者】,无权进行删除!!!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Question)
                
                
            End If
        End If
    End If
End If

--  作者:有点甜
--  发布时间:2015/1/21 20:22:00
--  
 做一个删除按钮,先判断一次,判断正确以后再执行删除。
--  作者:wumingrong1
--  发布时间:2015/1/21 20:29:00
--  
如果我所选择的行中既有当前用户所有的行、也有非当前用户所有的行呢?只判断一次的话,那么不就会出现遗漏吗?


能不能有办法把当前所选择的行先全部判断一次、如果其中包含有非当前用户所有的行,那么就最后才弹出提出一次提示?
[此贴子已经被作者于2015-1-21 20:39:48编辑过]

--  作者:有点甜
--  发布时间:2015/1/21 20:47:00
--  

 循环选中的行,判断。

 

 参考 http://www.foxtable.com/help/topics/1597.htm

 


--  作者:wumingrong1
--  发布时间:2015/1/22 10:08:00
--  
我有一个命令,想实现先删除某一列内容,在按要求填入数据;但是效果却是删除了内容、但没能把数据填写进去;我的命令该怎么修改?

For Each r As Row In Tables("光功率登记表").rows
    
    If e.Form.Controls("对比类型").Text = "输出光功率对比" And ( r.IsNull(e.Form.Controls("后期").Text)=False   OrElse  r.IsNull(e.Form.Controls("前期").Text)=False ) Then
        
        DataTables("光功率登记表").ReplaceFor("对比光功率_输出光功率", Nothing)

        r("对比光功率_输出光功率") = val(r(e.Form.Controls("后期").Text)) - val(r(e.Form.Controls("前期").Text))
    Else
        If e.Form.Controls("对比类型").Text = "输入光功率对比" And ( r.IsNull(e.Form.Controls("后期").Text)=False  OrElse  r.IsNull(e.Form.Controls("前期").Text)=False ) Then

            DataTables("光功率登记表").ReplaceFor("对比光功率_输入光功率", Nothing)

            r("对比光功率_输入光功率") = val(r(e.Form.Controls("后期").Text)) - val(r(e.Form.Controls("前期").Text))
            
        End If
    End If
    
Next
[此贴子已经被作者于2015-1-22 10:08:21编辑过]

--  作者:有点甜
--  发布时间:2015/1/22 10:18:00
--  
DataTables("光功率登记表").ReplaceFor("对比光功率_输出光功率",  val(r(e.Form.Controls("后期").Text)) - val(r(e.Form.Controls("前期").Text)))
--  作者:有点甜
--  发布时间:2015/1/22 10:19:00
--  

 或者,直接写,因为你已经循环每一列了。

 

r("对比光功率_输出光功率") = val(r(e.Form.Controls("后期").Text)) - val(r(e.Form.Controls("前期").Text))


--  作者:wumingrong1
--  发布时间:2015/1/22 10:35:00
--  
我有一个命令来作为显示当前表的所有列名作为列表项目的选项;如果我希望在这个命令中加入过滤条件、用于过滤掉某几列的名称;我的命令该怎么改?

If CurrentTable IsNot Nothing Then
    Dim cs As String = ""
    For Each c As Col In CurrentTable.Cols
        cs &= c.Name & "|"
    Next
    e.Sender.ComboList = cs.TrimEnd("|")
End If

--  作者:有点甜
--  发布时间:2015/1/22 10:55:00
--  
If CurrentTable IsNot Nothing Then
    Dim cs As String = ""
    For Each c As Col In CurrentTable.Cols
        If c.Name <> "第一列" AndAlso c.Name <> "第二列" Then
            cs &= c.Name & "|"
        End If
    Next
    e.Sender.ComboList = cs.TrimEnd("|")
End If

--  作者:wumingrong1
--  发布时间:2015/1/22 11:33:00
--  
排序按钮公式如下,我的命令该如何修改才能确保当其中某些【排序*】控件为空时不会弹出错误? 
 CurrentTable.Sort = " "& e.Form.Controls("排序1").Text &" ,"& e.Form.Controls("排序2").Text &" ,"& e.Form.Controls("排序3").Text &" ,"& e.Form.Controls("排序4").Text &" ,"& e.Form.Controls("排序5").Text &" ,"& e.Form.Controls("排序6").Text &" " 

图片点击可在新窗口打开查看此主题相关图片如下:360截图20150122113400906.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2015-1-22 11:34:05编辑过]