以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]类似记录窗口,新增项问题! (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=94445) |
||||
-- 作者:fengwenliuyan -- 发布时间:2016/12/23 16:14:00 -- [求助]类似记录窗口,新增项问题! 目的:“订单表”新增客户,按下按钮控件,弹出类似记录窗口的窗口,显示“信息表”中的对应客户的信息。 尝试过,使用关联表,“订单表”作为子表,“信息表”作为父表, 但是,子表新增客户名,父表不会同步出现,所以失败了。 求助:子表新增一个客户,判断父表中是否存在相同名称的客户,若不存在,则父表自动同步新增该客户,若存在,则不新增。
[此贴子已经被作者于2016/12/23 16:22:05编辑过]
|
||||
-- 作者:狐狸爸爸 -- 发布时间:2016/12/23 16:24:00 -- 如果已经建立关联: if e.Col.name = "客户" andalso e.NewValue > "" then dim dr as datarow = e.DataRow.GetParentRow("父表") if dr is nothing then dr = datatables("父表").AddNew() dr("客户") = e.NewValue end if end if 如果没有建立关联,改用find查找判断: http://www.foxtable.com/webhelp/scr/2490.htm
[此贴子已经被作者于2016/12/23 16:24:48编辑过]
|
||||
-- 作者:fengwenliuyan -- 发布时间:2016/12/23 16:49:00 -- 不顶用啊 这个例子是,同步新增、删除,并没有判断是否已存在 |
||||
-- 作者:狐狸爸爸 -- 发布时间:2016/12/23 16:54:00 -- 以下加粗的两行,就是判断是否已经存在: Select Case e.DataCol.name Case "产品编号" Dim dr As DataRow = DataTables("库存").Find("产品编号 = \'" & e.OldValue & "\'") If dr Is Nothing Then dr = DataTables("库存").AddNew() dr("产品编号") = e.DataRow("产品编号") dr("产品名称") = e.DataRow("产品名称") dr("产品规格") = e.DataRow("产品规格") Else dr("产品编号") = e.DataRow("产品编号") End If Case "产品名称","产品规格" Dim dr As DataRow = DataTables("库存").Find("产品编号 = \'" & e.DataRow("产品编号") & "\'") If dr IsNot Nothing Then dr(e.DataCol.Name) = e.DataRow(e.DataCol.Name) End If End Select |
||||
-- 作者:狐狸爸爸 -- 发布时间:2016/12/23 16:56:00 -- 换到你这里,更加简单: if e.Col.name = "客户" andalso e.NewValue > "" then dim dr as datarow = DataTables("父表").Find("客户=’" & e.NewBalue & "\'") if dr is nothing then dr = datatables("父表").AddNew() dr("客户") = e.NewValue end if end if
|
||||
-- 作者:fengwenliuyan -- 发布时间:2016/12/23 16:56:00 -- 谢谢! |
||||
-- 作者:fengwenliuyan -- 发布时间:2016/12/24 9:08:00 -- 测试失败了,不知道原因,求教! 此主题相关图片如下:求助.png |
||||
-- 作者:狐狸爸爸 -- 发布时间:2016/12/24 9:17:00 -- 你看看DataColchanged事件的e参数: 关于e参数: [此贴子已经被作者于2016/12/24 9:19:08编辑过]
|
||||
-- 作者:狐狸爸爸 -- 发布时间:2016/12/24 9:20:00 -- 个人建议你,先看一遍置顶的视频教程: |