以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  提示框对应提示数据问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=124782)

--  作者:aza520
--  发布时间:2018/9/13 17:13:00
--  提示框对应提示数据问题
在表的DataColChanging事件设以下代码,新增一行,户主姓名列输入姓名“潘进海”,与上一列姓名相同时会弹出提示框(如图),想实现已存在户主所对应的协议书编号也进行提示,如图中,想将提示框中的提示改为“此户主已经存在!其协议书编号为:FD-1-HS-CQ-078,是否确认添加?
If e.DataCol.Name = "户主姓名" Then
    Dim dr As DataRow
    dr = e.DataTable.sqlFind("户主姓名 = \'" & e.NewValue & "\'")
    If dr IsNot Nothing Then
        Dim Result As DialogResult
        Result = MessageBox.Show("此户主已经存在!是否确认添加?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
        If Result = DialogResult.Yes Then
            e.Cancel = False
        Else
            e.Cancel = True
        End If
    End If
End If


图片点击可在新窗口打开查看此主题相关图片如下:1111.png
图片点击可在新窗口打开查看


--  作者:有点甜
--  发布时间:2018/9/13 17:28:00
--  

改成

 

Result = MessageBox.Show("此户主已经存在!其协议书编号为:" & dr("编号") & ",是否确认添加?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)


--  作者:aza520
--  发布时间:2018/9/13 17:37:00
--  
老师,假如有多个同名的,该如何把所有对应的协议书编号都列出来。图中只列了78号,79号没列

图片点击可在新窗口打开查看此主题相关图片如下:1111.png
图片点击可在新窗口打开查看


--  作者:有点甜
--  发布时间:2018/9/13 17:56:00
--  
If e.DataCol.Name = "户主姓名" Then
    Dim str = e.DataTable.SQLGetComboListString("编号", "户主姓名 = \'" & e.NewValue & "\'")
    If str > "" Then
        Dim Result As DialogResult
        Result = MessageBox.Show("此户主已经存在!其协议书编号为:" & str.replace("|", ",") & ",是否确认添加?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
        If Result = DialogResult.Yes Then
            e.Cancel = False
        Else
            e.Cancel = True
        End If
    End If
End If

--  作者:aza520
--  发布时间:2018/9/14 16:27:00
--  
老师,4楼的代码是将所有的后台数据进行筛选显示,我只想在当前用户所能加载的数据中进行筛选,如当前登录用户是\'乡镇\'组的,

在表BeforeLoad设以下代码,实现分条件加载

If User.Group = "乡镇" 
    Dim fl As String = "[乡镇] = \'" & User.Name & "\'"
    If e.DataTable.LoadFilter = "" Then
        e.DataTable.LoadFilter = fl
    ElseIf e.DataTable.LoadFilter.IndexOf(fl) < 0 Then 
        e.DataTable.LoadFilter = e.DataTable.Loadfilter & " And " & fl
    End If
End If

--  作者:有点甜
--  发布时间:2018/9/14 16:36:00
--  
Dim str = e.DataTable.SQLGetComboListString("编号", "户主姓名 = \'" & e.NewValue & "\' and [乡镇] = \'" & User.Name & "\'")