Foxtable(狐表)用户栏目专家坐堂 → 副本表筛选情况下的自定义录入窗口问题


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

主题:副本表筛选情况下的自定义录入窗口问题

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


加好友 发短信
等级:三尾狐 帖子:760 积分:5430 威望:0 精华:0 注册:2012/10/5 21:53:00
副本表筛选情况下的自定义录入窗口问题  发帖心情 Post By:2021/12/27 20:32:00 [只看该作者]

http://www.foxtable.com/webhelp/topics/2465.htm
这有个窗口表A,设置为副本表,表因为内容多设置了筛选,如 "其他列1 = 'A'",同时存在这个自定义录入窗口DropDownForm的功能,
但是目前这段代码中
If e.Selected Then '如果选择了值
    Dim tbl As Table = Tables("窗口1_Table1")
    If
 tbl.Current IsNot Nothing 
Then
        e.Form.DropDownBox.Value = tbl.Current(
"客户ID")
        
Tables("订单").Current("其它列1") = tbl.Current("其它列1")
        Tables("订单").Current("其它列2") = tbl.Current("其它列2")
        Tables("订单").Current("其它列3") = tbl.Current("其它列3")
        If e.Form.DropTable IsNot Nothing Then '如果是通过表下拉的
            e.Form.DropTable.FinishEditing()
        Else '如果是通过窗口下拉的
            e.Form.DropDownBox.WriteValue()
        End If

    End 
If
End If
采用的是Tables("订单").Current,选中行,但如果是副本表,Tables("订单_table1").Current("其它列1") = "B" 进行了筛选列的修改,则会自动进行筛选,导致之前选择的行的内容会错位更新到筛选后的行

If e.Selected Then '如果选择了值
    Dim tbl As Table = Tables("窗口1_Table1")
    If
 tbl.Current IsNot Nothing 
Then
     Dim w as datarow = datatable("订单").find("_Identify = '" & Tables("订单_table1").Current("_Identify") & "'")
    if w isnot nothing then       
          w("客户ID") = tbl.Current("客户ID")
          w("其它列1") = tbl.Current("其它列1")
          w("其它列2") = tbl.Current("其它列2")
          w("其它列3") = tbl.Current("其它列3")
      end if
        If e.Form.DropTable IsNot Nothing Then '如果是通过表下拉的
            e.Form.DropTable.FinishEditing()
        Else '如果是通过窗口下拉的
            e.Form.DropDownBox.WriteValue()
        End If

    End 
If
End If

我改成这样还是错误,这个在不改变副本表属性的情况下如何改?

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


加好友 发短信
等级:超级版主 帖子:110790 积分:563882 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/12/27 20:54:00 [只看该作者]

If e.Selected Then '如果选择了值
    Dim tbl As Table = Tables("窗口1_Table1")
    If
 tbl.Current IsNot Nothing 
Then
        e.Form.DropDownBox.Value = tbl.Current(
"客户ID")
dim r as row = Tables("订单_table1").Current
       
r("其它列1") = tbl.Current("其它列1")
        r("其它列2") = tbl.Current("其它列2")
        r("其它列3") = tbl.Current("其它列3")
        If e.Form.DropTable IsNot Nothing Then '如果是通过表下拉的
            e.Form.DropTable.FinishEditing()
        Else '如果是通过窗口下拉的
            e.Form.DropDownBox.WriteValue()
        End If

    End 
If
End If

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


加好友 发短信
等级:三尾狐 帖子:760 积分:5430 威望:0 精华:0 注册:2012/10/5 21:53:00
  发帖心情 Post By:2021/12/27 21:09:00 [只看该作者]

不行啊,这个我有筛选的值修改后,这个Tables("订单_table1").Current就不是原来的,实际修改了2行了


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


加好友 发短信
等级:超级版主 帖子:110790 积分:563882 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/12/27 21:15:00 [只看该作者]

不可能的,3楼代码不可能会改2行

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


加好友 发短信
等级:三尾狐 帖子:760 积分:5430 威望:0 精华:0 注册:2012/10/5 21:53:00
  发帖心情 Post By:2021/12/28 9:29:00 [只看该作者]

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

我做了个测试的,用这个也是修改了2行

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


加好友 发短信
等级:超级版主 帖子:110790 积分:563882 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/12/28 9:58:00 [只看该作者]

输入焦点的问题,调换一下代码位置即可
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:测试 (1).zip



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


加好友 发短信
等级:三尾狐 帖子:760 积分:5430 威望:0 精华:0 注册:2012/10/5 21:53:00
  发帖心情 Post By:2021/12/28 10:51:00 [只看该作者]

可以了,非常感谢!

 回到顶部