以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  关联表  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=7522)

--  作者:sophia
--  发布时间:2010/7/4 21:27:00
--  关联表
关联表间数据如何引用?
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目4.table


--  作者:czy
--  发布时间:2010/7/5
--  

\'表ADataColChanged事件代码


Dim dr As DataRow = e.DataRow
if e.DataCol.Name = "办理业务" Then
    Dim pr As DataRow = dr.GetParentrow("表B")
    if pr IsNot Nothing Then
        dr("大型价格") = pr("大型单价")
        dr("小型数量") = pr("小型数量")
        dr("小型价格") = pr("小型单价")
        if dr.IsNull("大型数量") = False Then
            dr("大型数量") = pr("大型数量")
        End If
    Else
        dr("大型价格") = Nothing
        dr("小型数量") = Nothing
        dr("小型价格") = Nothing
        dr("大型数量") = Nothing
    End If
End If


--  作者:sophia
--  发布时间:2010/7/5 8:46:00
--  

好像不对,我的要求是:当我输入“大型注册”的时候,窗口中显示:

大型数量:2

大型价格:100(表B中大型单价*表A中大型数量)

大型数量里面还可以更改为别的数,例如改为:5

大型数量:5

大型价格:250

就是说默认是从表B引用过来的数据,但是我还可以自己更改


--  作者:狐狸爸爸
--  发布时间:2010/7/5 8:58:00
--  
2楼可以自己改
--  作者:sophia
--  发布时间:2010/7/5 9:04:00
--  

可是改完后,价格怎么不变呢?

例如:大型数量改为5,价格:250,(表B中大型单价*表A中大型数量)

这个是根据数量算出来的


--  作者:狐狸爸爸
--  发布时间:2010/7/5 9:21:00
--  

那就继续修改代码啊:

 

Dim dr As Datarow = e.Datarow
Dim pr As Datarow = dr.GetParentrow("表B")
If pr IsNot Nothing Then
    Select Case  e.Datacol.Name
        Case  "办理业务"
            If pr IsNot Nothing Then
                dr("大型数量") = pr("大型数量")
                dr("小型数量") = pr("小型数量")
            End If
        Case "大型数量"
            dr("大型价格") = pr("大型单价") * dr("大型数量")
        Case "小型数量"
            dr("小型价格") = pr("小型单价") * dr("小型数量")
    End Select
End If

[此贴子已经被作者于2010-7-5 9:22:36编辑过]