以文本方式查看主题

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

--  作者:cyrollin
--  发布时间:2023/8/7 10:50:00
--  自动添加信息
老师好,我想在第一列:姓名,输入信息,
第一列
张三
李四
王五
。。。

在第二列自动会添加下面信息
第二列
张三|职
张三|休
李四|职
李四|休
王五|职
王五|休
。。。

有参考代码吗?谢谢 

--  作者:有点蓝
--  发布时间:2023/8/7 11:10:00
--  
datacolchanged事件

If e.DataCol.Name = "第一列" Then 
    If e.DataRow.IsNull("
第一列"Then
        e.
DataRow("
第二列") = Nothing
    
Else
        e.
DataRow("
第二列") = e.DataRow("第一列") & "|职"
dim dr as datarow = e.datatable.find("第一列=\'" & e.DataRow("第一列") & "\' and 第二列 =\'" & e.DataRow("第一列") & "|休\'")
if dr isnot nothing then
SystemReady = False
dr = e.datatable.addnew
dr("第一列") = e.DataRow("第一列")
dr("第二列") = e.DataRow("第一列") & "|"
SystemReady = true
en dif
    End If
End
 
If

--  作者:cyrollin
--  发布时间:2023/8/7 11:36:00
--  
第二列只实现了自动添加了“姓名+|职”, 没有添加“姓名+|休”


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

--  作者:有点蓝
--  发布时间:2023/8/7 12:00:00
--  
if dr isnot nothing then
改为
if dr is nothing then

--  作者:cyrollin
--  发布时间:2023/8/8 10:09:00
--  
谢谢老师,比如我想删掉第一列的 张三, 第二列: 张三|职,张三|休, 都需自动删掉,
这个代码需怎么修改下呢?

If e.DataCol.Name = "第一列" Then 
    If e.DataRow.IsNull("第一列") Then
        e.DataRow("第二列") = Nothing
    Else
        e.DataRow("第二列") = e.DataRow("第一列") & "|职"

Dim dr As DataRow = e.DataTable.find("第一列=\'" & e.DataRow("第一列") & "\' and 第二列 =\'" & e.DataRow("第一列") & "|休\'")
If dr Is Nothing Then
SystemReady = False
dr = e.DataTable.addnew
dr("第二列") = e.DataRow("第一列") & "|休"
SystemReady = True
End If
    End If
End If

--  作者:有点蓝
--  发布时间:2023/8/8 10:20:00
--  
If e.DataCol.Name = "第一列" Then 
    If e.DataRow.IsNull("第一列") Then
        e.DataRow("第二列") = Nothing
e.DataTable.deletefor("第一列=\'" & e.oldvalue & "\' and 第二列 =\'" & e.oldvalue & "|休\'")
    Else
        e.DataRow("第二列") = e.DataRow("第一列") & "|职"


--  作者:cyrollin
--  发布时间:2023/8/8 10:26:00
--  
‘没删掉带 |休 的这个名字

If e.DataCol.Name = "第一列" Then 
    If e.DataRow.IsNull("第一列") Then
        e.DataRow("第二列") = Nothing
        e.DataTable.deletefor("第一列=\'" & e.oldvalue & "\' and 第二列 =\'" & e.oldvalue & "|休\'")  ‘没删掉带 |休 的这个名字
    Else
        e.DataRow("第二列") = e.DataRow("第一列") & "|职"

--  作者:有点蓝
--  发布时间:2023/8/8 10:30:00
--  
必须给第一列赋值

dr = e.datatable.addnew
dr("第一列") = e.DataRow("第一列")
dr("第二列") = e.DataRow("第一列") & "|"

--  作者:cyrollin
--  发布时间:2023/8/8 10:56:00
--  
dr = e.datatable.addnew
dr("第一列") = e.DataRow("第一列")  \'这样第一列就有重复的名字了哦,还有另外的解决方法吗?
dr("第二列") = e.DataRow("第一列") & "|休"

--  作者:有点蓝
--  发布时间:2023/8/8 10:57:00
--  
如果是这样说明您的数据库设计的很不合理。

e.DataTable.deletefor("第一列=\'" & e.oldvalue & "\' and 第二列 =\'" & e.oldvalue & "|休\'")
改为
e.DataTable.deletefor("第二列 =\'" & e.oldvalue & "|休\'")