以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  参照做的列项设置通用版,能够自动获取表名 列名并进行相关数据填写 但是不能在数据填写后 调到其他表中 无法使用数据词典 求解  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=54223)

--  作者:李孝春
--  发布时间:2014/7/24 0:18:00
--  参照做的列项设置通用版,能够自动获取表名 列名并进行相关数据填写 但是不能在数据填写后 调到其他表中 无法使用数据词典 求解
参照做的列项设置通用版,能够自动获取表名 列名并进行相关数据填写  但是不能在数据填写后 调到其他表中 无法使用数据词典 求解



项目中有职员表 授权表  权限 列项设置四表 
希望列项设置之后 在其他表中对应的列可以进行选择操作

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


期待达到如下效果


图片点击可在新窗口打开查看此主题相关图片如下:万能数据词典.gif
图片点击可在新窗口打开查看 

--  作者:李孝春
--  发布时间:2014/7/24 9:16:00
--  回复:(李孝春)参照做的列项设置通用版,能够自动获...
继续求解
--  作者:有点甜
--  发布时间:2014/7/24 9:40:00
--  
 呃,你的附件不能下载。
--  作者:李孝春
--  发布时间:2014/7/24 11:06:00
--  回复:(有点甜)?呃,你的附件不能下载。
附件重新上传 麻烦各位老师指导下


[此贴子已经被作者于2014-7-25 10:40:49编辑过]

--  作者:lsy
--  发布时间:2014/7/24 11:22:00
--  
其他表没有调用“列项设置”。
--  作者:有点甜
--  发布时间:2014/7/24 11:33:00
--  

 全局表prepareEdit事件,代码

 

If e.Table.Name <> "列项设置" Then
    If e.IsFocusCell Then
        Dim filter As String = "表名 = \'" & e.Table.Name & "\' and 列名 = \'" & e.Col.Name & "\' and 停用 = false"
        Dim fdr As DataRow = DataTables("列项设置").Find(filter)
        If fdr IsNot Nothing Then
            If fdr("多值字段") Then e.Col.DataCol.ExtendType = ExtendTypeEnum.Values
            e.Col.ComboList = fdr("下拉选项")           
        End If
    End If
End If


--  作者:李孝春
--  发布时间:2014/7/24 11:50:00
--  回复:(有点甜) 全局表prepareEdit事件,代码...
感谢有点甜老师  十分感谢
--  作者:李孝春
--  发布时间:2014/7/31 0:34:00
--  回复:(有点甜)?全局表prepareEdit事件,代码...
下拉字段 在表中可以成功操作

但在窗体中 如果采用下拉框就无法操作了?附上例子就指导纠正 谢谢!
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:卷宗.foxdb



[此贴子已经被作者于2014-7-31 9:06:47编辑过]

--  作者:有点甜
--  发布时间:2014/7/31 9:41:00
--  
 
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:卷宗.rar


--  作者:李孝春
--  发布时间:2014/7/31 10:36:00
--  回复:(有点甜) [upload=rar,卷宗.rar]viewFil...
现在拟在窗体中下拉组合框下 或许所有的表名和表列名 

列项设置中获取表名后再获取表列名代码如下
Dim dr As DataRow=e.DataRow
Select Case e.DataTable.name
    Case "列项设置"
        If e.DataCol.name="表名" Then
            If dr.Isnull("表名") OrElse e.NewValue<>e.OldValue Then
                dr("列名")=Nothing
            End If
        End If
End Select

窗体下拉组合框中实现了表名获取 但是根据表名来获取表列 操作失败

代码如下:
Dim bm As WinForm.ComboBox = e.Form.Controls("ComboBox1")
Dim ts As String = ""
For Each t As Table In Tables
    ts &= t.Name & "|"
Next
bm.ComboList = ts.TrimEnd("|")

Dim lm As WinForm.ComboBox = e.Form.Controls("ComboBox2")  ‘根据上面获得的表名来获取表列名 

lm.ComboList = dr.TrimEnd("|")
求纠正