以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  列表设置  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=15144)

--  作者:明丰
--  发布时间:2011/12/14 9:59:00
--  列表设置

\'表属性-选择-AfterSelChange

If e.NewRange.ColSel = e.Table.cols("单位编号").Index Then 
    Dim dmp As New TableDataMap 
    dmp.DataTable = "单位定义" 
    dmp.ValueCol = "单位编号" 
    dmp.DisplayCol = "单位编号" 
    dmp.ListCols = "单位,单位编号,比率" 
      dmp.Filter = "货品编号 = \'" & e.Table.current("货品编号") & "\'"  \'只包含当前货品编号的列表

    e.Table.cols("单位编号").DataMap = dmp.CreateDataMap()

End If

 

上面的代码,问题出在红色部分,当点击销售订单表的单位编号列某一单元格时,单位编号列其它单元格的值会被临时隐藏,请问如何设置?


--  作者:狐狸爸爸
--  发布时间:2011/12/14 10:08:00
--  
这种情况不能用数据字典,用列表项目。
--  作者:明丰
--  发布时间:2011/12/14 10:09:00
--  

请测试 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:测试50.table


--  作者:明丰
--  发布时间:2011/12/14 22:57:00
--  

For Each dr As DataRow In DataTables("单位定义").Select("[货品编号] = \'001\'")
    Dim v1() As String ={"编号" & dr("单位编号") & dr("单位") & dr("比率")}
output.show(V1(0))
Next

 

上面这段代码可以提取多列而下面的代码不能通过,请帮忙修改,谢谢!

 

\'提取多列作为列表
\'表事件-编辑-PrepareEdit
If e.IsFocusCell Then \'
    If e.Col.Name = "单位编号" Then
For Each dr As DataRow In DataTables("单位定义").Select("[货品编号] = \'" & e.Row("货品编号") & "\'")
    Dim v1() As String ={"编号" & dr("单位编号") & dr("单位") & dr("比率")}
e.Col.Combolist = V1(0)
Next
    End If
End If


--  作者:狐狸爸爸
--  发布时间:2011/12/14 23:32:00
--  

没看懂,只知道这样的代码是没有意义的:

 

For Each dr As DataRow In DataTables("单位定义").Select("[货品编号] = \'" & e.Row("货品编号") & "\'")
    Dim v1() As String ={"编号" & dr("单位编号") & dr("单位") & dr("比率")}
    e.Col.Combolist = V1(0)
Next

 

最后此列的列表项目由最后一个符合条件的行决定,和其他行没有关系。


--  作者:明丰
--  发布时间:2011/12/15 9:14:00
--  

测试通过

 

If e.IsFocusCell Then \'
    If e.Col.Name = "单位编号" Then
Dim d As String
Dim drs As List(Of DataRow)
drs = DataTables("单位定义").Select("[货品编号] = \'" & e.Row("货品编号") & "\'")
For i As Integer = 0 To drs.Count -1
d = d & "编号" & drs(i)("单位编号") & "/" & drs(i)("单位") & "/" & "比率" & drs(i)("比率") & "|"
Next
e.Col.Combolist = d
    End If
End If

[此贴子已经被作者于2011-12-15 13:53:39编辑过]