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


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

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

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


加好友 发短信
等级:小狐 帖子:321 积分:2468 威望:0 精华:2 注册:2013/1/16 19:33:00
  发帖心情 Post By:2013/4/7 20:46:00 [只看该作者]


DataColChanged事件

If e.DataCol.Name = "产品编号" Then
    Dim Filter As String = "[产品编号] = '" & e.OldValue & "'"
    Dim ss() As String ={"品名","型号","规格","单价"}
    For Each s As String In ss
        DataTables("订单").ReplaceFor(s, Nothing, Filter)
    Next
End If
[此贴子已经被作者于2013-4-7 20:46:45编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
sadfox
  12楼 | 信息 | 搜索 | 邮箱 | 主页 | 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编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2013/4/7 23:27:00 [只看该作者]

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

可以看看:

http://www.foxtable.com/help/topics/1284.htm

 

 

Dim ss() As String ={"品名","型号","规格","单价"}
For Each s As String In ss

可以看看:

http://www.foxtable.com/help/topics/0216.htm

http://www.foxtable.com/help/topics/0226.htm

 


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


加好友 发短信
等级:小狐 帖子:321 积分:2468 威望:0 精华:2 注册:2013/1/16 19:33:00
  发帖心情 Post By:2013/4/7 23:31:00 [只看该作者]

DataColChanged

某一列的内容被更改后执行,此时列的内容已经是更改后的值。

e参数属性:

DataTable:返回发生数据更改的数据表。
DataRow: 返回发生数据更改的数据行。
DataCol: 返回发生数据更改的数据列。
NewValue: Object类型,表示新的值。
OldValue: Object类型,表示旧的值

Dim Filter As String = "[产品编号] = '" & e.OldValue & "'"
'取得修改前原有的值
Dim ss() As String ={"品名","型号","规格","单价"}
'定义一个集合,用于存放所有要修改的列名称
For Each s As String In ss
'遍历集合



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


加好友 发短信
等级:小狐 帖子:321 积分:2468 威望:0 精华:2 注册:2013/1/16 19:33:00
  发帖心情 Post By: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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
sadfox
  16楼 | 信息 | 搜索 | 邮箱 | 主页 | 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编辑过]

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


加好友 发短信
等级:小狐 帖子:321 积分:2468 威望:0 精华:2 注册:2013/1/16 19:33:00
  发帖心情 Post By:2013/4/8 0:15:00 [只看该作者]

replacefor不需要遍历行 建议先select case 再for each
[此贴子已经被作者于2013-4-8 0:15:47编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
sadfox
  18楼 | 信息 | 搜索 | 邮箱 | 主页 | 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),未将对象应用到实例,不知道是什么原因造成的!


 回到顶部
总数 18 上一页 1 2