以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 这样的无关联跨表引用在录入界面如何实现? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=135385) |
-- 作者:iceblock -- 发布时间:2019/5/25 12:03:00 -- 这样的无关联跨表引用在录入界面如何实现? 无关联跨表引用只为显示,不做实际字段,如何设置 后台表结构如下: 订单表与产品表不设关联(本身二表就应通过产品编码关联,没必要设个表关联. ) 订单表订单号 产品编码 数量 交货日期 产品表 产品编码 产品名称 规格型号 需求: 订单录入界面 订单号 产品编码 产品名称 规格型号 数量 交货日期 其中,产品名称 规格型号 字段 不是订单表实际字段, 只是为显示产品编码相关的信息,不保存后台表中 |
-- 作者:有点蓝 -- 发布时间:2019/5/25 13:47:00 -- 添加临时列:http://www.foxtable.com/webhelp/scr/1428.htm 同样通过datacolchanged事件给临时列赋值:http://www.foxtable.com/webhelp/scr/2490.htm
|
-- 作者:iceblock -- 发布时间: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 -- 发布时间:2019/5/25 15:26:00 -- DataColChanged事件有疑惑代码清楚了, 帮助例子是改产品表的产品编号, 同步库存表的产品编号。 我的应用,相当于, 在库存表中录入产品编号,引用产品表中产品名称、规格。 |
-- 作者:有点蓝 -- 发布时间:2019/5/25 15:27:00 -- 还有问题么? |
-- 作者:iceblock -- 发布时间:2019/5/25 15:30:00 -- 产品名称 产品规格 都要显示的问题,不行就在订单表里用实字段吧。 就是数据库冗余了。效率应该较高。 谢谢!老师指点!
|
-- 作者:有点蓝 -- 发布时间: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 |