Foxtable(狐表)用户栏目专家坐堂 → 这样的无关联跨表引用在录入界面如何实现?


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

主题:这样的无关联跨表引用在录入界面如何实现?

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


加好友 发短信
等级:幼狐 帖子:69 积分:544 威望:0 精华:0 注册:2017/5/19 12:36:00
这样的无关联跨表引用在录入界面如何实现?  发帖心情 Post By:2019/5/25 12:03:00 [只看该作者]

无关联跨表引用只为显示,不做实际字段,如何设置
后台表结构如下: 订单表与产品表不设关联(本身二表就应通过产品编码关联,没必要设个表关联. )
订单表
订单号  产品编码  数量  交货日期

产品表
产品编码  产品名称  规格型号 



需求:
订单录入界面
订单号 产品编码 产品名称 规格型号 数量  交货日期

其中,产品名称  规格型号 字段 不是订单表实际字段, 只是为显示产品编码相关的信息,不保存后台表中


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


加好友 发短信
等级:超级版主 帖子:107702 积分:547831 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/5/25 13:47:00 [只看该作者]

添加临时列:http://www.foxtable.com/webhelp/scr/1428.htm

同样通过datacolchanged事件给临时列赋值:http://www.foxtable.com/webhelp/scr/2490.htm

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


加好友 发短信
等级:幼狐 帖子:69 积分:544 威望:0 精华:0 注册:2017/5/19 12:36:00
临时列,下次再打开项目就没有了?  发帖心情 Post By:2019/5/25 15:19:00 [只看该作者]

我想让其一直存在, 即,每次打开订单表, 产品名称 产品规格 都要显示
在表事件录入产品编码时,进行了一次引用。 但并没有存下来。 下次再打开订单表时,这两列(可以再代码加入)就是空的。
怎么办?请指教

另外,看DataColChanged事件有疑惑代码中如下:
Select Case e.DataCol.name
    Case "产品编号"
        Dim dr As DataRow = DataTables("库存").Find("产品编号 = '" & e.OldValue & "'")

e.OldValue是之前的产品编号值。应该找新录入的值才对。 为什么是e.OldValue?

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


加好友 发短信
等级:幼狐 帖子:69 积分:544 威望:0 精华:0 注册:2017/5/19 12:36:00
  发帖心情 Post By:2019/5/25 15:26:00 [只看该作者]

DataColChanged事件有疑惑代码清楚了, 帮助例子是改产品表的产品编号, 同步库存表的产品编号。
我的应用,相当于, 在库存表中录入产品编号,引用产品表中产品名称、规格。


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


加好友 发短信
等级:超级版主 帖子:107702 积分:547831 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/5/25 15:27:00 [只看该作者]

还有问题么?

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


加好友 发短信
等级:幼狐 帖子:69 积分:544 威望:0 精华:0 注册:2017/5/19 12:36:00
  发帖心情 Post By:2019/5/25 15:30:00 [只看该作者]

产品名称 产品规格 都要显示的问题,不行就在订单表里用实字段吧。 就是数据库冗余了。效率应该较高。
谢谢!老师指点!

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


加好友 发短信
等级:超级版主 帖子:107702 积分:547831 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/5/25 15:40:00 [只看该作者]

临时列可以的呀,有啥问题?

订单表datacolchanged

If e.DataCol.Name = "产品编码" Then
    If e.NewValue Is Nothing Then 
        e.
DataRow("
产品名称") = Nothing 
        e.
DataRow("
产品规格") = Nothing
    
Else
        Dim
 dr As DataRow
        dr = 
DataTables("产品").Find("[
产品编码] = '" & e.NewValue & "'")
        If
 dr IsNot Nothing Then 
            e.
DataRow("
产品名称") = dr("产品名称"
            e.
DataRow("
产品规格") = dr("产品规格")
        End
 If
    End
 If
End
 If

 回到顶部