上述代码 可用 但是结果还是 当当前下拉窗口打开,当前单元格无数据的时候,用tables.curent.Reject 没有实现返回原来状态,而是空Dim ary() As String = vars("tblcol").Split(".")
Dim tbl As Table = Tables("dropset2_Table1")
Dim tr As Row = Tables(ary(0)).Current '获取此表的当前行
Dim dtname As String=Tables(ary(0)).DataTable.name
If tr IsNot Nothing Then
Dim dr As DataRow = DataTables("zadropset").Find("[dropbintable] ='"& dtname &"' And [dropbincol] ='"& ary(1) &"'")
If dr IsNot Nothing AndAlso dr.IsNull("droplistcol")=False AndAlso dr.IsNull("dvaluecol")=False Then '如果在项目表找到对应的行
Dim Parts(),Parts1() As String
Dim i As Integer
Parts=dr("droplistcol").Split(",")
Parts1=dr("dvaluecol").Split(",")
If e.Selected Then '如果选择了值
For i=0 To Parts.Length-1
If tbl.Cols.Contains(Parts(i)) And Tables(ary(0)).Cols.Contains(Parts(i)) Then
tr(Parts(i)) = tbl.Current(Parts1(i))
End If
Next
If e.Form.DropTable IsNot Nothing Then '如果是通过表下拉的
e.Form.DropTable.FinishEditing()
Else '如果是通过窗口下拉的
e.Form.DropDownBox.WriteValue()
End If
Else
e.Form.DropTable.FinishEditing()
tr.Reject
End If
End If
End If