Foxtable(狐表)用户栏目专家坐堂 → 备注是否可以关联到另外一个表


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

主题:备注是否可以关联到另外一个表

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/9/15 18:08:00 [只看该作者]

DataTables("出货明细").DeleteFor("公司 = '" & e.DataRow("公司") & "'")  ‘这就可以时时更新了

Dim s As String = Tables("表A").current("出货明细")
Dim cs As String
For i As Integer = 0 To s.split(chr(10)).length - 1
    Dim r As Row = Tables("出货明细").AddNew()
    r("公司") = Tables("表A").current("公司")
    r("出货时间") =  s.split(chr(10))(i).split(" ")(0)      ’这里去掉的产品列的内容

    r("出货数量") =  s.split(chr(10))(i).split(" ")(1)
Next


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


加好友 发短信
等级:幼狐 帖子:118 积分:781 威望:0 精华:0 注册:2010/6/26 14:14:00
  发帖心情 Post By:2010/9/15 22:15:00 [只看该作者]

(1)DataTables("出货明细").DeleteFor("公司名称 = '" & e.DataRow("公司名称") & "'") 

Dim s As String = Tables("订单明细").current("出货明细")
Dim cs As String
For i As Integer = 0 To s.split(chr(10)).length - 1
    Dim r As Row = Tables("出货明细").AddNew()
    r("公司名称") = Tables("订单明细").current("公司名称")

     r("编号") = Tables("订单明细").current("编号")
    r("出货时间") =  s.split(chr(10))(i).split(" ")(0)   

    r("出货数量") =  s.split(chr(10))(i).split(" ")(1)
Next

 

(2)Dim dr As DataRow
Dim cl As String = e.DataCol.Name
If cl = "商品名称" Orelse cl = "编号" Orelse cl = "颜色" Then
    dr = DataTables("报价明细").Find("商品名称 = '" & e.DataRow("商品名称") & "' And 编号 = '" & e.DataRow("编号") & "' And 颜色 = '" & e.DataRow("颜色") & "'")
    If dr IsNot Nothing Then
        e.DataRow("单位") = dr("单位")
        e.DataRow("单价") = dr("单价")
    End If
End If
请帮帮忙这两段语言合成在一起,这是关连到三个表上的功能

1,“订单明细”表

2,“报价明细”表

3,“出货明细”表

都用在DataColChanged中,编了一个晚上,就是出现错码了,请帮帮谢谢


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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57590 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2010/9/16 8:10:00 [只看该作者]

你这个代码就是原始的?

  如果是的话,第二段应该可以直接使用,第一段你加上列的名字就可以了啊,  If e.datacol.name="xxxxx" then


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


加好友 发短信
等级:幼狐 帖子:118 积分:781 威望:0 精华:0 注册:2010/6/26 14:14:00
  发帖心情 Post By:2010/9/16 9:23:00 [只看该作者]

是吧,那第一段是FOR...NEXT和第二段是IF肯定只能用一种表达方式,怎么样才能,请帮我解释一下谢谢


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/9/16 11:36:00 [只看该作者]

你最好附上和你代码相关的示例,不然我等还要建个文件测试,也不知道有些什么列名称都属于哪个表的。。。。

 

另外也应说明执行你32楼代码都在哪个表的什么事件中,要达到什么目的,呵呵,俺也笨,没法下“盲棋”。。。


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


加好友 发短信
等级:幼狐 帖子:118 积分:781 威望:0 精华:0 注册:2010/6/26 14:14:00
  发帖心情 Post By:2010/9/16 11:48:00 [只看该作者]

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

(1)Dim dr As DataRow
Dim cl As String = e.DataCol.Name
If cl = "商品名称" Orelse cl = "编号" Orelse cl = "颜色" Then
    dr = DataTables("报价明细").Find("商品名称 = '" & e.DataRow("商品名称") & "' And 编号 = '" & e.DataRow("编号") & "' And 颜色 = '" & e.DataRow("颜色") & "'")
    If dr IsNot Nothing Then
        e.DataRow("单位") = dr("单位")
        e.DataRow("单价") = dr("单价")
    End If
End If

(2)DataTables("出货明细").DeleteFor("公司名称 = '" & e.DataRow("公司名称") & "'") 

Dim s As String = Tables("订单明细").current("出货明细")
Dim cs As String
For i As Integer = 0 To s.split(chr(10)).length - 1
    Dim r As Row = Tables("出货明细").AddNew()
    r("公司名称") = Tables("订单明细").current("公司名称")

     r("编号") = Tables("订单明细").current("编号")
    r("出货时间") =  s.split(chr(10))(i).split(" ")(0)   

    r("出货数量") =  s.split(chr(10))(i).split(" ")(1)
Next

请帮帮忙这两段语言合成在一起,这是关连到三个表上的功能

1,“订单明细”表

2,“报价明细”表

3,“出货明细”表

都用在DataColChanged中,编了一个晚上,就是出现错码了,请帮帮谢谢


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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33945 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2010/9/16 12:10:00 [只看该作者]

Tables("订单明细").current("出货明细") 其中的出货明细列在订单明细表中并不存在。

你这种思路不敢苟同,帮你恐怕到时还害了你,所以代码就不帮你完成了。


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/9/16 12:31:00 [只看该作者]

C版警告过你,这种录入发货明细方法不好,你自己掂量着啊。。。。。这样下来发货明细表会成啥样??? 

 

先把你上面的代码连起来,条件自己还有斟酌:

 

订单明细表DataColChanged事件:

 

Dim dr As DataRow
Dim cl As String = e.DataCol.Name


If cl = "发货明细" And e.DataRow.Isnull("公司名称") =False
DataTables("出货明细").DeleteFor("公司名称 = '" & e.DataRow("公司名称") & "'") 
Dim s As String = Tables("订单明细").current("发货明细")
Dim cs As String
For i As Integer = 0 To s.split(chr(10)).length - 1
    Dim r As Row = Tables("出货明细").AddNew()
    r("公司名称") = Tables("订单明细").current("公司名称")
    r("出货时间") =  s.split(chr(10))(i).split(" ")(0)   
    r("数量") =  s.split(chr(10))(i).split(" ")(1)
Next
End If


If cl = "商品名称" Orelse cl = "编号" Orelse cl = "颜色" Then
    dr = DataTables("报价明细").Find("商品名称 = '" & e.DataRow("商品名称") & "' And 编号 = '" & e.DataRow("编号") & "' And 颜色 = '" & e.DataRow("颜色") & "'")
    If dr IsNot Nothing Then
        e.DataRow("单位") = dr("单位")
        e.DataRow("单价") = dr("单价")
    End If
End If

 

 


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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57590 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2010/9/16 12:46:00 [只看该作者]

mr-725兄:

 

  我已经QQ上跟他说过这个问题,我想问你倒过来做呢,比如出货明细表中产品为"AI"的有三条出货记录,想在订单明细表中触发产品"AI"时,发货明细列,将出货明细表里凡是"AI"的出货时间和数量一条一条列出.代码怎么写?


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/9/16 13:18:00 [只看该作者]

以下是引用blackzhu在2010-9-16 12:46:00的发言:

mr-725兄:

 

  我已经QQ上跟他说过这个问题,我想问你倒过来做呢,比如出货明细表中产品为"AI"的有三条出货记录,想在订单明细表中触发产品"AI"时,发货明细列,将出货明细表里凡是"AI"的出货时间和数量一条一条列出.代码怎么写?

应该是这样把:

 

Dim r As Row = CurrentTable.current

Dim mx As String 
Dim drs As List(Of DataRow)

drs = DataTables("出货明细").Select("[公司] = '" & r("公司") & "'")   ’公司 可以换成 A1
For Each dr As DataRow In drs
    r("出货明细") = ""
    mx = mx & dr("出货时间") & " " &  dr("出货数量") & vbCrLf

Next
r("出货明细") = mx

[此贴子已经被作者于2010-9-16 13:20:04编辑过]

 回到顶部
总数 73 上一页 1 2 3 4 5 6 7 8 下一页