以文本方式查看主题

-  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
--  [求助]类似记录窗口,新增项问题!
目的:“订单表”新增客户,按下按钮控件,弹出类似记录窗口的窗口,显示“信息表”中的对应客户的信息。
尝试过,使用关联表,“订单表”作为子表,“信息表”作为父表,
但是,子表新增客户名,父表不会同步出现,所以失败了。
求助:子表新增一个客户,判断父表中是否存在相同名称的客户,若不存在,则父表自动同步新增该客户,若存在,则不新增。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:求助.rar

[此贴子已经被作者于2016/12/23 16:22:05编辑过]

--  作者:狐狸爸爸
--  发布时间:2016/12/23 16:24:00
--  
如果已经建立关联:

子表的DataColCahnged事件:

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
--  
个人建议你,先看一遍置顶的视频教程: