Foxtable(狐表)用户栏目专家坐堂 → 窗口录入下拉窗口同步更新问题


  共有4795人关注过本帖树形打印复制链接

主题:窗口录入下拉窗口同步更新问题

帅哥哟,离线,有人找我吗?
643561836
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:171 积分:1392 威望:0 精华:0 注册:2013/2/1 10:00:00
窗口录入下拉窗口同步更新问题  发帖心情 Post By:2013/11/11 11:26:00 [只看该作者]

现在有一个项目跟踪窗口,有客户名称,业主名称,设计公司名称,它们能否共用同一个下拉窗口录入数据后,继承样关的数据?

'如果除了客户名称列,还要同时从客户表选择其它多列内容输入到项目跟踪表,可以将DropDownClosed事件代码改为:

If e.Selected Then '如果选择了值
    Dim tbl As Table = Tables("下拉客户名称_Table1")
    If tbl.Current IsNot Nothing Then
        'e.Form.DropDownBox.Value = tbl.Current("客户名称")
        '
        If Tables("项目跟踪表").Current IsNot Nothing Then
            Dim r As Row = Tables("项目跟踪表").Current
            
            r("客户地址") = tbl.Current("详细地址")          '将下拉窗口中的列同时输入==当前表中的对应列
            r("客户固话") = tbl.Current("固定电话")
            r("客户传真") = tbl.Current("传真")
            
            'r("设计地址") = tbl.Current("详细地址")          '将下拉窗口中的列同时输入==当前表中的对应列
            'r("设计固话") = tbl.Current("固定电话")
            'r("设计传真") = tbl.Current("传真")
            '
            'r("业主地址") = tbl.Current("详细地址")          '将下拉窗口中的列同时输入==当前表中的对应列
            'r("业主固话") = tbl.Current("固定电话")
            'r("业主传真") = tbl.Current("传真")
'
 e.Form.DropDownBox.Value = tbl.Current("客户名称")         ' 下拉输入框的值=下拉窗口的值

        End If
    End If
End If

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/11/11 11:35:00 [只看该作者]

看看这个:

http://www.foxtable.com/help/topics/1860.htm

 

通过窗口而不是表打开下拉窗口的时候,没有DropTable和DropCol, 但是你可以通过e.Form.DropDownBox.BindingField 属性,间接获取正在输入的表名和列名。

 


 回到顶部
帅哥哟,离线,有人找我吗?
643561836
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:171 积分:1392 威望:0 精华:0 注册:2013/2/1 10:00:00
  发帖心情 Post By:2013/11/11 12:25:00 [只看该作者]

谢谢!请狐狸爸爸看看,是否还可以优化代码!
'如果除了客户名称列,还要同时从客户表选择其它多列内容输入到项目跟踪表,可以将DropDownClosed事件代码改为:

If e.Selected Then '如果选择了值
    Dim tbl As Table = Tables("下拉客户名称_Table1")
    If tbl.Current IsNot Nothing Then        '
        If Tables("项目跟踪表").Current IsNot Nothing Then
            Dim r As Row = Tables("项目跟踪表").Current
            If e.Form.DropDownBox.BindingField = "项目跟踪表.客户名称" Then
                r("客户地址") = tbl.Current("详细地址")          '将下拉窗口中的列同时输入==当前表中的对应列
                r("客户固话") = tbl.Current("固定电话")
                r("客户传真") = tbl.Current("传真")
                e.Form.DropDownBox.Value = tbl.Current("客户名称")         ' 下拉输入框的值=下拉窗口的值
            End If
            
            If e.Form.DropDownBox.BindingField = "项目跟踪表.设计名称" Then
                r("设计地址") = tbl.Current("详细地址")          '将下拉窗口中的列同时输入==当前表中的对应列
                r("设计固话") = tbl.Current("固定电话")
                r("设计传真") = tbl.Current("传真")
                e.Form.DropDownBox.Value = tbl.Current("客户名称")         ' 下拉输入框的值=下拉窗口的值'
            End If
            
            If e.Form.DropDownBox.BindingField = "项目跟踪表.业主名称" Then
                r("业主地址") = tbl.Current("详细地址")          '将下拉窗口中的列同时输入==当前表中的对应列
                r("业主固话") = tbl.Current("固定电话")
                r("业主传真") = tbl.Current("传真")
                e.Form.DropDownBox.Value = tbl.Current("客户名称")         ' 下拉输入框的值=下拉窗口的值
             End If

        End If
    End If
End If

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/11/11 12:38:00 [只看该作者]

能用就行了,相同性质的列在不同的表,最好同名,否则没办法简化。

 


 回到顶部