以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]当前表最后1行的数据更新统计到表B (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=193002) |
||||
-- 作者:185723664 -- 发布时间:2024/8/8 17:44:00 -- [求助]当前表最后1行的数据更新统计到表B 求助,下面代码,增加当前表最后1行修改后,当前表最后1行的数据更新统计到表B 当前表非最后1行修改不跨表更新到表B,也就是只有当前表最后1行修改才执行下面代码 If e.DataCol.Name = "第一列" Then \'如果内容发生变动的是第一列列 If e.NewValue Is Nothing Then \'如果新值是空白,也就是第一列列的内容为空 e.DataRow("第二列") = Nothing \'那么清空此行第二列列的内容 Else Dim dr As DataRow \'否则在表B表查找同名的表B行,将找到的行赋值给变量dr dr = DataTables("表B").Find("[第一列] = \'" & e.NewValue & "\'") If dr IsNot Nothing Then \'如果找到了同名的表B行,也就是dr不是Nothing e.DataRow("第二列") = dr("第二列") End If End If End If [此贴子已经被作者于2024/8/8 18:14:52编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2024/8/8 20:08:00 -- If e.DataCol.Name = "第一列" Then \'如果内容发生变动的是第一列列 If e.NewValue Is Nothing Then \'如果新值是空白,也就是第一列列的内容为空 e.DataRow("第二列") = Nothing \'那么清空此行第二列列的内容 Else dim p as integer = tables(e.datatable.name).findrow(e.DataRow) if p = tables(e.datatable.name).rows.count - 1 then Dim dr As DataRow \'否则在表B表查找同名的表B行,将找到的行赋值给变量dr dr = DataTables("表B").Find("[第一列] = \'" & e.NewValue & "\'") ……
|
||||
-- 作者:185723664 -- 发布时间:2024/8/8 20:45:00 -- 回复:(有点蓝)If e.DataCol.Name = "第一列" Then ... 蓝大师,图片补充表达一下,要实现的是当前表A最后1行的值,自动更新同步到表B的成绩列, 之前我的描述有问题,上楼代码跟图片想要的效果不符,辛苦帮忙 此主题相关图片如下:未标题-1.jpg [此贴子已经被作者于2024/8/8 20:52:12编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2024/8/8 21:01:00 -- dim p as integer = tables(e.datatable.name).findrow(e.DataRow) if p = tables(e.datatable.name).rows.count - 1 then Dim dr As DataRow = DataTables("表B").Find("[科目] = \'" & e.DataCol.Name & "\'") If dr IsNot Nothing Then \'如果找到了同名的表B行,也就是dr不是Nothing dr("成绩") = e.DataRow(e.DataCol.Name) End If End If
[此贴子已经被作者于2024/8/8 21:01:05编辑过]
|
||||
-- 作者:185723664 -- 发布时间:2024/8/9 10:28:00 -- 回复:(有点蓝)dim p as integer = tables(e.datata... 蓝大师,下面代码放在 表切换时报错,求助 If MainTable.Name = "表A" Then \'如果选择的主表是订单表 Dim p As Integer = Tables(e.DataTable.name).findrow(e.DataRow) If p = Tables(e.DataTable.name).rows.count - 1 Then Dim dr As DataRow = DataTables("表B").Find("[科目] = \'" & e.DataCol.Name & "\'") If dr IsNot Nothing Then \'如果找到了同名的表B行,也就是dr不是Nothing dr("成绩") = e.DataRow(e.DataCol.Name) End If End If End If |
||||
-- 作者:有点蓝 -- 发布时间:2024/8/9 10:36:00 -- 放到datacolchanged事件,去掉第一行 |
||||
-- 作者:185723664 -- 发布时间:2024/8/9 10:52:00 -- 回复:(有点蓝)放到datacolchanged事件,去掉第一行... 蓝大师,我这边想的是 表A最后5行都执行统计到表B 如果按上楼的代码,表A最后5行中的最后1行才在表事件编辑里执行代码,最后5行中的4行不执行代码 所以求助 放在 MainTable 事假里,下面代码怎么修改 If MainTable.Name = "表A" Then \'如果选择的主表是订单表 Dim p As Integer = Tables(e.DataTable.name).findrow(e.DataRow) If p = Tables(e.DataTable.name).rows.count - 1 Then Dim dr As DataRow = DataTables("表B").Find("[科目] = \'" & e.DataCol.Name & "\'") If dr IsNot Nothing Then \'如果找到了同名的表B行,也就是dr不是Nothing dr("成绩") = e.DataRow(e.DataCol.Name) End If End If If p = Tables(e.DataTable.name).rows.count - 2 Then Dim dr As DataRow = DataTables("表B").Find("[科目] = \'" & e.DataCol.Name & "\'") If dr IsNot Nothing Then \'如果找到了同名的表B行,也就是dr不是Nothing dr("成绩") = e.DataRow(e.DataCol.Name) End If End If If p = Tables(e.DataTable.name).rows.count - 3 Then Dim dr As DataRow = DataTables("表B").Find("[科目] = \'" & e.DataCol.Name & "\'") If dr IsNot Nothing Then \'如果找到了同名的表B行,也就是dr不是Nothing dr("成绩") = e.DataRow(e.DataCol.Name) End If End If If p = Tables(e.DataTable.name).rows.count - 4 Then Dim dr As DataRow = DataTables("表B").Find("[科目] = \'" & e.DataCol.Name & "\'") If dr IsNot Nothing Then \'如果找到了同名的表B行,也就是dr不是Nothing dr("成绩") = e.DataRow(e.DataCol.Name) End If End If If p = Tables(e.DataTable.name).rows.count - 5 Then Dim dr As DataRow = DataTables("表B").Find("[科目] = \'" & e.DataCol.Name & "\'") If dr IsNot Nothing Then \'如果找到了同名的表B行,也就是dr不是Nothing dr("成绩") = e.DataRow(e.DataCol.Name) End If End If End If |
||||
-- 作者:有点蓝 -- 发布时间:2024/8/9 10:59:00 -- datacolchanged事件 Dim p As Integer = Tables(e.DataTable.name).findrow(e.DataRow) If p >= Tables(e.DataTable.name).rows.count - 5 Then Dim dr As DataRow = DataTables("表B").Find("[科目] = \'" & e.DataCol.Name & "\'") If dr IsNot Nothing Then \'如果找到了同名的表B行,也就是dr不是Nothing dr("成绩") = e.DataRow(e.DataCol.Name) End If End If |
||||
-- 作者:185723664 -- 发布时间:2024/8/9 11:21:00 -- 回复:(有点蓝)datacolchanged事件 Di...
蓝大师,求助实现的功能详见图片: 表A最后5水平行转表B垂直列 |
||||
-- 作者:有点蓝 -- 发布时间:2024/8/9 11:48:00 -- Dim p As Integer = Tables(e.DataTable.name).findrow(e.DataRow) If p >= Tables(e.DataTable.name).rows.count - 5 Then Dim dr As DataRow = DataTables("表B").Find("[科目] = \'" & e.DataCol.Name & "\'") If dr IsNot Nothing Then \'如果找到了同名的表B行,也就是dr不是Nothing dr("最后行_" & (Tables(e.DataTable.name).rows.count - p)) = e.DataRow(e.DataCol.Name) End If End If
|