以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  自动增加  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=61713)

--  作者:Lc
--  发布时间:2014/12/17 17:38:00
--  自动增加

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目5.zip


学生姓名有重复,自动在学生姓名后加“-1”,比如:学生姓名输入框输入了 “杨琴”,自动查出“杨琴”信息,但此杨琴和要输入的杨琴不是同人,电击按钮 “验”提示:杨琴 已有基本信息,是否同人,电击 否 时在学生姓名输入框输入自动增加“杨琴-1”。请指点代码?谢谢!


--  作者:有点甜
--  发布时间:2014/12/17 17:57:00
--  

Datacolchanging事件,代码

 

If e.DataCol.Name = "学生姓名" Then
    Dim fdr As DataRow = e.DataTable.Find("学生姓名 = \'" & e.NewValue & "\' or 学生姓名 = \'" & e.NewValue & "-1\'")
    If fdr IsNot Nothing Then
        Dim Result As DialogResult
        Result = MessageBox.Show("是否同人?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
        If result = DialogResult.No Then
            e.NewValue = e.NewValue & "-1"
        End If
    End If
End If


--  作者:Lc
--  发布时间:2014/12/18 8:49:00
--  
有点甜老师:学生姓名有可能多个,比如:杨琴、杨琴-1杨琴-2  等,"-"后边"1"可以向自动编号一样自动增加
--  作者:有点甜
--  发布时间:2014/12/18 9:45:00
--  
If e.DataCol.Name = "学生姓名" Then
    Dim max As String = e.DataTable.compute("max(学生姓名)", "学生姓名 = \'" & e.NewValue & "\' or 学生姓名 like \'" & e.NewValue & "-*\'")
    If max > "" Then
        Dim Result As DialogResult
        Result = MessageBox.Show("是否同人?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
        If result = DialogResult.No Then
            If e.NewValue = max Then
                e.NewValue = e.NewValue & "-01"
            Else
                e.NewValue = e.NewValue & "-" & Format(Cint(max.SubString(e.NewValue.length + 1))+1, "00")
            End If
        End If
    End If
End If

--  作者:Lc
--  发布时间:2014/12/18 13:20:00
--  

有点甜老师还想麻烦您

点击按钮每次增加1

 

按钮代码

If e.Form.Controls("学生姓名").Value IsNot Nothing Then
    Dim max As String = ?

    If max > "" Then
        Dim Result As DialogResult
        Result = MessageBox.Show(""& e.Form.Controls("学生姓名").text & " 已有基本信息,是否同人?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
        If result = DialogResult.No Then
            If e.Form.Controls("学生姓名").text = max Then
                e.Form.Controls("学生姓名").text = e.Form.Controls("学生姓名").text & "-01"
            Else
                e.Form.Controls("学生姓名").text = e.Form.Controls("学生姓名").text & "-" & Format(Cint(max.SubString(e.Form.Controls("学生姓名").text.length + 1))+1, "00")
            End If
        End If
    End If
End If

 

[此贴子已经被作者于2014-12-18 13:43:09编辑过]

--  作者:有点甜
--  发布时间:2014/12/18 14:07:00
--  

 

[此贴子已经被作者于2014-12-18 14:23:10编辑过]

--  作者:Lc
--  发布时间:2014/12/18 14:14:00
--  

有点甜老师输入框里,没点击验按钮一次增加1 


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


Dim max As String = “e.Form.Controls("学生姓名").text & "\' or e.Form.Controls("学生姓名").text  like \'" & e.Form.Controls("学生姓名").text & "-*\'"

 

[此贴子已经被作者于2014-12-18 14:23:53编辑过]

--  作者:有点甜
--  发布时间:2014/12/18 14:21:00
--  
 看6楼。
--  作者:有点甜
--  发布时间:2014/12/18 14:26:00
--  
If e.Form.Controls("学生姓名").Text IsNot Nothing Then
    Dim max As String = DataTables("学生基本信息").compute("max(学生姓名)", "学生姓名 = \'" & e.Form.Controls("学生姓名").text & "\' or 学生姓名 like \'" & e.Form.Controls("学生姓名").text & "-*\'")
    If max > "" Then
        Dim Result As DialogResult
        Result = MessageBox.Show(""& e.Form.Controls("学生姓名").text & " 已有基本信息,是否同人?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
        If result = DialogResult.No Then
            If e.Form.Controls("学生姓名").text = max Then
                e.Form.Controls("学生姓名").text = e.Form.Controls("学生姓名").text & "-01"
            Else
                e.Form.Controls("学生姓名").text = e.Form.Controls("学生姓名").text & "-" & Format(Cint(max.SubString(e.Form.Controls("学生姓名").text.length + 1))+1, "00")
            End If
        End If
    End If
End If

--  作者:Lc
--  发布时间:2014/12/18 14:39:00
--  
谢谢!