以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  数据字典更新  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=52750)

--  作者:风声
--  发布时间:2014/6/22 12:35:00
--  数据字典更新

我的数据字典没有办法更新,通信表企业信息_客户供应商列里有两个候选值分别是客户、供应商。数据字典设置在入库明细表企业编号,企业名称是通过企业编号值返回的。

 

 

 

If MainTable.Name = "入库明细" Then
   Dim dmp As New TableDataMap
   dmp.DataTable = "通信" \'指定数据来源表
   dmp.ValueCol = "企业信息_企业编号" \'指定取值列
   dmp.DisplayCol = "企业信息_企业编号" \'指定显示列
    \'指定下拉列表时显示哪些列的数据
    dmp.ListCols = "企业信息_企业编号,企业信息_客户供应商"
    dmp.Sort = "企业信息_客户供应商" \'指定排序方式
    Tables("入库明细").Cols("企业编号").DataMap = dmp.CreateDataMap() \'生成并设置DataMap
End If

 

 

[此贴子已经被作者于2014-6-22 12:38:42编辑过]

--  作者:有点甜
--  发布时间:2014/6/22 14:15:00
--  
 根据你写的代码,你是在切换表的时候,才会更新数据字典的内容的啊。
--  作者:风声
--  发布时间:2014/6/22 17:42:00
--  
切换也不根新啊
--  作者:有点甜
--  发布时间:2014/6/22 17:46:00
--  

 你的代码写到什么地方? 切换肯定会更新,你一定要切换到 入库明细 主表才会更新的啊。

 

 加入红色代码,看是否触发事件

 

If MainTable.Name = "入库明细" Then
   Dim dmp As New TableDataMap
   dmp.DataTable = "通信" \'指定数据来源表
   dmp.ValueCol = "企业信息_企业编号" \'指定取值列
   dmp.DisplayCol = "企业信息_企业编号" \'指定显示列
    \'指定下拉列表时显示哪些列的数据
    dmp.ListCols = "企业信息_企业编号,企业信息_客户供应商"
    dmp.Sort = "企业信息_客户供应商" \'指定排序方式
    Tables("入库明细").Cols("企业编号").DataMap = dmp.CreateDataMap() \'生成并设置DataMap

    msgbox("触发了事件")
End If

 


--  作者:风声
--  发布时间:2014/6/22 18:08:00
--  
可以了,多了个确认框。另外有个显示值是错误的答案是对的。确认框能搞掉吗?
--  作者:风声
--  发布时间:2014/6/22 18:46:00
--  

If e.DataCol.Name = "企业编号" Then \'发生变化的是产品编号吗?
    \'在产品表找出该产品
    Dim dr As DataRow
    dr = DataTables("通信").Find("企业信息_企业编号 = \'" & e.DataRow("企业编号") & "\' and 企业信息_群组分类 = \'供应商\'" )
    If dr IsNot Nothing \'如果找到, 则设置各列内容
        e.DataRow("供应商")= dr("企业信息_客户供应商")
    End If
End If

 

老师,我的数据字典把客户、供应商的两个值多取了


--  作者:有点甜
--  发布时间:2014/6/22 19:06:00
--  

 没明白6楼。

 

If MainTable.Name = "入库明细" Then
   Dim dmp As New TableDataMap
   dmp.DataTable = "通信" \'指定数据来源表
   dmp.ValueCol = "企业信息_企业编号" \'指定取值列
   dmp.DisplayCol = "企业信息_企业编号" \'指定显示列
    \'指定下拉列表时显示哪些列的数据
    dmp.ListCols = "企业信息_企业编号,企业信息_客户供应商"
    dmp.Sort = "企业信息_客户供应商" \'指定排序方式
    Tables("入库明细").Cols("企业编号").DataMap = dmp.CreateDataMap() \'生成并设置DataMap

End If


--  作者:风声
--  发布时间:2014/6/22 20:59:00
--  

6楼和4楼的公式是否有冲突。7楼的公式用了后客户供应商列的值没有了。


--  作者:有点甜
--  发布时间:2014/6/22 21:02:00
--  

  呃,应该是没有冲突的,做个例子发上来。


--  作者:风声
--  发布时间:2014/6/22 21:31:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:蓝峰管理.table