以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  窗口非关联表数据更新  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=138715)

--  作者:冷泉
--  发布时间:2019/8/3 20:36:00
--  窗口非关联表数据更新

图片点击可在新窗口打开查看此主题相关图片如下:222.png
图片点击可在新窗口打开查看



图片点击可在新窗口打开查看此主题相关图片如下:111.png
图片点击可在新窗口打开查看

窗体上的表是绑定的 进货单.进货明细表
我是通过用户界面进入,在商品窗口增加了商品保存后,在入库单窗体表格选择商品的时候,数据没有实时更新,是不是需要在窗口Aftelload事件里面添加了

商品表写了DataColChanged事件
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


DataRowDeleting事件
Dim dr As DataRow = DataTables("进货明细表").Find("商品编号 = \'" & e.DataRow("商品编号") & "\'")
If dr IsNot Nothing Then
    dr.Delete()
End If
[此贴子已经被作者于2019/8/3 20:37:20编辑过]

--  作者:冷泉
--  发布时间:2019/8/4 10:32:00
--  
有老师指点下吗,退出了重新进,数据就会更新
--  作者:有点蓝
--  发布时间:2019/8/4 20:59:00
--  
没看懂。请上传实例测试
--  作者:冷泉
--  发布时间:2019/8/5 14:43:00
--  
老师,我是希望能达到2个目的
1、在进货单这个窗体里面,点击窗体里面的进货单.进货明细表的商品编号页面,也可以出现下拉窗口选择商品
2、通过商品信息窗体,实时增加或删除商品表的数据,在进货单这个窗体的关联表,点击商品编号的下拉窗口里面,也是可以实时更新商品数据

需要怎样写代码了,研究了2天还是不会,麻烦老师帮忙指点修改下,谢谢


图片点击可在新窗口打开查看此主题相关图片如下:1.jpg
图片点击可在新窗口打开查看


图片点击可在新窗口打开查看此主题相关图片如下:2.jpg
图片点击可在新窗口打开查看


[此贴子已经被作者于2019/8/5 14:45:30编辑过]

--  作者:冷泉
--  发布时间:2019/8/5 14:46:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:学习.table


这个是附件
[此贴子已经被作者于2019/8/5 14:47:41编辑过]

--  作者:有点蓝
--  发布时间:2019/8/5 15:48:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:abc.zip


--  作者:冷泉
--  发布时间:2019/8/6 23:13:00
--  
老师,能否多个表共用这个下拉弹窗,譬如入库单,出库单,退货单,都共用这个下拉弹窗,代码应该怎样写了
--  作者:有点蓝
--  发布时间:2019/8/7 8:46:00
--  
DropDownClosed事件改为

If e.Selected Then \'如果选择了值
    Dim tbl As Table = Tables("窗口1_Table1")
    If tbl.Current IsNot Nothing Then
        e.Form.DropDownBox.Value = tbl.Current("商品编号")
        Dim t As Table = e.Form.DropTable
        If t IsNot Nothing Then
            t.Current("商品名称") = tbl.Current("商品名称")
            t.Current("单价") = tbl.Current("单价")
            t.Current("型号") = tbl.Current("型号")
            t.FinishEditing()
        Else \'如果是通过窗口下拉的
            e.Form.DropDownBox.WriteValue()
        End If
    End If
End If