Foxtable(狐表)用户栏目专家坐堂 → [求助]关于跨表应用更新代码的问题,求大神指教!


  共有6625人关注过本帖树形打印复制链接

主题:[求助]关于跨表应用更新代码的问题,求大神指教!

帅哥哟,离线,有人找我吗?
sadfox
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:292 积分:1864 威望:0 精华:0 注册:2013/3/16 21:31:00
[求助]关于跨表应用更新代码的问题,求大神指教!  发帖心情 Post By:2013/4/6 17:00:00 [显示全部帖子]

Select Case e.DataCol.Name
Case
"品名","型号","规格",
"单价"
Dim Filter As String = "[产品编号] = '" & e.DataRow("产品编号") & "'"
DataTables("订单").ReplaceFor(e.DataCol.Name, e.NewValue, Filter)
End
Select

这里有个问题,就是产品表如果是直接删除表格的行,则订单表先加载的内容不会变,或者如果是先清除的是产品表上的产品编号,订单表上的内容也不会变!

求大神帮忙,如何才能让产品表发生上述2种情况,订单表上的"品名","型号","规格","单价"内容也会随变化和清除,要保留订单表的产品编号。


 回到顶部
帅哥哟,离线,有人找我吗?
sadfox
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:292 积分:1864 威望:0 精华:0 注册:2013/3/16 21:31:00
  发帖心情 Post By:2013/4/6 17:46:00 [显示全部帖子]

有大神能帮忙吗?

 回到顶部
帅哥哟,离线,有人找我吗?
sadfox
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:292 积分:1864 威望:0 精华:0 注册:2013/3/16 21:31:00
  发帖心情 Post By:2013/4/6 18:13:00 [显示全部帖子]

这个问题没办法解决吗?

 回到顶部
帅哥哟,离线,有人找我吗?
sadfox
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:292 积分:1864 威望:0 精华:0 注册:2013/3/16 21:31:00
  发帖心情 Post By:2013/4/6 20:26:00 [显示全部帖子]

以下是引用fjlclxj在2013-4-6 18:20:00的发言:
产品表BeforeDeleteDataRow事件

Dim Filter As String = "[产品编号] = '" & e.DataRow("产品编号") & "'"
Dim ss() As String ={"品名","型号","规格","单价"}
For Each s As String In ss
DataTables("订单").ReplaceFor(s, Nothing, Filter)
Next

为什么要清除产品表上的产品编号,想不明白。测试没作用,不行啊!
产品下架,没有了呢!打个比方。
[此贴子已经被作者于2013-4-6 18:21:45编辑过]

[此贴子已经被作者于2013-4-6 20:35:59编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
sadfox
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:292 积分:1864 威望:0 精华:0 注册:2013/3/16 21:31:00
  发帖心情 Post By:2013/4/6 23:15:00 [显示全部帖子]

以下是引用fjlclxj在2013-4-6 22:44:00的发言:
测试有用的,最后要有个DataTables("订单").Save
不会发附件
[此贴子已经被作者于2013-4-6 22:47:15编辑过]

我测试还是什么动静都没!


 回到顶部
帅哥哟,离线,有人找我吗?
sadfox
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:292 积分:1864 威望:0 精华:0 注册:2013/3/16 21:31:00
  发帖心情 Post By:2013/4/7 20:23:00 [显示全部帖子]

FJL,你这个解决了删除行的问题,但是还有在不删除行的情况下,清除产品表内容时,由于是先清除的产品编号,订单表的品名","型号","规格","单价"这四项内容仍然不会发生变化

 回到顶部
帅哥哟,离线,有人找我吗?
sadfox
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:292 积分:1864 威望:0 精华:0 注册:2013/3/16 21:31:00
  发帖心情 Post By:2013/4/7 23:04:00 [显示全部帖子]

 

For Each tab As Table In Tables  '遍历Tables

    If tab.Name.Contains("文档")  '判断文档两字的表名

        For i As Integer = 0 To Tables(tab.Name).Rows.Count -1  '从第一行开始到结束行

        Select Case e.DataCol.Name

        Case "品名","型号","规格","单价"

        Dim Filter As String = "[产品编号] = '" & e.DataRow("产品编号") & "'"

        DataTables(tab.Name).ReplaceFor(e.DataCol.Name, e.NewValue, Filter)

        End Select

      Next

    End If

Next

 

对了,我更新的时候是用遍历同时对多个文档更新内容的,单是你现在这个只能单独解决一个文档的问题,不能像更新一样同时解决所有文档的问题,能不能改一下!谢谢!

还有:Dim Filter As String = "[产品编号] = '" & e.OldValue & "'"

Dim ss() As String ={"品名","型号","规格","单价"}
For Each s As String In ss
这2句是什么意思能解释下吗?
[此贴子已经被作者于2013-4-7 23:16:55编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
sadfox
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:292 积分:1864 威望:0 精华:0 注册:2013/3/16 21:31:00
  发帖心情 Post By:2013/4/7 23:54:00 [显示全部帖子]

不是!上传的列子我是用订单代替的文档,这样说吧,我订单表有订单001,订单002,订单003……这样下去有多个订单表,

For Each tab As Table In Tables '

If tab.Name.Contains("订单") '

For i As Integer = 0 To Tables(tab.Name).Rows.Count -1 '

Select Case e.DataCol.Name

Case "品名","型号","规格","单价"

Dim Filter As String = "[产品编号] = '" & e.DataRow("产品编号") & "'"

DataTables(tab.Name).ReplaceFor(e.DataCol.Name, e.NewValue, Filter)

End Select

Next

End If

Next

是这样更新的!

感谢你这么晚帮忙,休息了吧,下次再来!

[此贴子已经被作者于2013-4-7 23:55:12编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
sadfox
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:292 积分:1864 威望:0 精华:0 注册:2013/3/16 21:31:00
  发帖心情 Post By:2013/4/8 22:12:00 [显示全部帖子]

以下是引用fjlclxj在2013-4-7 23:38:00的发言:
'产品表BeforeDeleteDataRow事件
Dim Filter As String = "[产品编号] = '" & e.DataRow("产品编号") & "'" 
Dim ss() As String ={"品名","型号","规格","单价"} 
For Each tab As Table In Tables '遍历Tables 
     If tab.Name.Contains("文档") '判断文档两字的表名 
          For Each s As String In ss 
                DataTables(tab.Name).ReplaceFor(s, Nothing, Filter)
          Next
     End If
Next

 'DataColChanged事件
If e.DataCol.Name = "产品编号" Then 
    Dim Filter As String = "[产品编号] = '" & e.OldValue & "'" 
    Dim ss() As String ={"品名","型号","规格","单价"} 
    For Each tab As Table In Tables '遍历Tables
         If tab.Name.Contains("文档") '判断文档两字的表名
              For Each s As String In ss 
 DataTables(tab.Name).ReplaceFor(s, Nothing, Filter)
             Next
End If
     Next
End If
不晓得是不是这个意思
[此贴子已经被作者于2013-4-7 23:41:24编辑过]
这样会提示找不到DataTables(tab.Name),未将对象应用到实例,不知道是什么原因造成的!


 回到顶部