1、MainTableChanging事件会导致死循环,去掉,如果要打开窗口,到MainTableChanged事件写代码:If MainTable.Name = "列项设置" Then
Forms("列项设置").Open()
End If
2、这种数据字典的设置不适合放在prepareedit事件,会导致假死,放到AfterSelChange事件
Dim dr As DataRow
If e.OldRange.RowSel <> e.NewRange.RowSel OrElse e.OldRange.ColSel <> e.NewRange.ColSel Then
Dim c As Col = e.Table.Cols(e.NewRange.ColSel)
If c.IsString Then
dr=DataTables("列项设置").find("表名='" & e.Table.name & "' and 列名='" & c.Name & "' and 下拉选项 Is not null and 停用=false")
If dr IsNot Nothing Then
If dr("多值字段")=True Then
DataTables(e.Table.name).DataCols(c.name).ExtendType = ExtendTypeEnum.Values
ElseIf dr("多值字段")=False Then
DataTables(e.Table.name).DataCols(c.name).ExtendType = ExtendTypeEnum.none
End If
c.AllowDirectType=dr("允许编辑")
c.combolist=dr("下拉选项")
Else
c.combolist=""
End If
End If
End If