通过:动态列表项目之二 http://help.foxtable.com/index.html?n=1459.htm 学习,我在 项目事件CurrentTableChanged中设置代码:
Dim dt As DataTable = DataTables("条目")
Dim dr As DataRow
For Each c As Col In CurrentTable.Cols
dr = dt.Find("[表] = '" & CurrentTable.DataTable.Name & "' And [列] = '" & c.Name & "'")
If dr IsNot Nothing Then
c.ComboList = dr("列表项目")
End If
Next
----- 这样,就可以获得动态的列表项目了----
但是,我希望,
一旦在表A的有动态列表项目的列"手工录入新的值",就保存在[条目]表中,追加到相应的位置,然后,在下一次选取时,就有了上一次所输入的值.
于是,我在[表A]的 AfterEdit 事件中:
Dim entered As String =CurrentTable.Value
Dim dr As DataRow = DataTables("条目").Find("[表] = '" & e.Table.Name & "' And [列] = '" & e.Col.Name & "'")
Dim s As String = dr("列表项目")
If NOT s.Contains("'" & entered & "'") Then ' 这判断似乎不期作用
dr("列表项目")=dr("列表项目") & "|" & entered
End If
似乎这个 "不包含" 判别 根本不起作用啊!!!
______ 明白了 ...是 "'" 出问题了: If NOT s.Contains(entered) Then
[此贴子已经被作者于2011-7-2 16:56:09编辑过]