Foxtable(狐表)用户栏目专家坐堂 → [求助]如何将position所在行变成current当前行?


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

主题:[求助]如何将position所在行变成current当前行?

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


加好友 发短信
等级:童狐 帖子:267 积分:2574 威望:0 精华:0 注册:2008/11/9 18:30:00
[求助]如何将position所在行变成current当前行?  发帖心情 Post By:2015/10/12 13:15:00 [只看该作者]

1.窗口组合框控件绑定到副本表的字段,
2.afterload里有定位到相关《流水号》的记录,代码是:
'-----------精确定位行--------------------------
    If Tables("游戏个人数据_龙源宝藏").Rows.count > 0 Then
        Dim wz As Integer = Tables("游戏个人数据_龙源宝藏").FindRow("流水号 = '" & r("流水号") & "'")
        If wz >=0 Then
            Tables("游戏个人数据_龙源宝藏").Position = wz
        End If
    End If
    '-----------精确定位行--------------------------

3.因为代码是把行的position定位到相关行,但相关行并不是current行
4.所以在组合框控件中无法直接输入数据,还需要点击一下相关行,或者双击组合框控件才能有效输入数据。

请问:如何将position所在的行变成current行?


图片点击可在新窗口打开查看此主题相关图片如下:2015年10月12日2.png
图片点击可在新窗口打开查看

[此贴子已经被作者于2015/10/12 13:28:52编辑过]

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/10/12 14:18:00 [只看该作者]

1、afterLoad事件不需要写代码;

 

2、不需要做任何操作,只要绑定副本表,就一定能编辑。


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/10/12 14:19:00 [只看该作者]

如果要定位主表,这样写

 

    If Tables("主表").Rows.count > 0 Then

        Dim wz As Integer = Tables("游戏个人数据_龙源宝藏").FindRow("流水号 = '" &  Tables("主表").Current("流水号") & "'")
        If wz >=0 Then
            Tables("游戏个人数据_龙源宝藏").Position = wz
        End If
    End If

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


加好友 发短信
等级:童狐 帖子:267 积分:2574 威望:0 精华:0 注册:2008/11/9 18:30:00
  发帖心情 Post By:2015/10/12 14:43:00 [只看该作者]



可能一开始我的代码上下文没有发全,是像下边这样,跟版主的是一致的:

If Tables("龙源宝藏").Rows.Count > 0 Then
    Dim r As Row = Tables("龙源宝藏").current
    Dim wz As Integer = Tables("游戏个人数据_龙源宝藏").FindRow("流水号 = '" & r("流水号") & "'")
        If wz >=0 Then
            Tables("游戏个人数据_龙源宝藏").Position = wz
        End If
 End If

因为这个是模式窗口代码,双击主表数据“龙源宝藏”的时候打开个人数据详情,所以必须有个定位的问题,定位之后,有些数据
会需要修改,这个时候虽然定位到了position,但这个行并不是当前行,需要再点击选择这一行才能编辑,所以才有了这个疑问
如何让position定位的行成为当前行?


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/10/12 14:47:00 [只看该作者]

不可能,例子发上来。

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


加好友 发短信
等级:童狐 帖子:267 积分:2574 威望:0 精华:0 注册:2008/11/9 18:30:00
  发帖心情 Post By:2015/10/12 15:36:00 [只看该作者]

因为程序是已经在测试使用的sql数据库程序,所以没办法发例子,我刚才新做个例子发现确实没有这个问题,我的afterload里有一堆代码,会不会有影响:

Forms("游戏个人数据").Controls("TabControl1").SelectedIndex = vars("page")
Tables("游戏个人数据_龙源宝藏").AllowEdit = True


If Tables("龙源宝藏").Rows.Count > 0 Then
    Dim r As Row = Tables("龙源宝藏").current
    Tables("游戏个人数据_龙源宝藏").Filter = "学生编号 = '"& r("学生编号") &"'"  '筛选印章数据
    Tables("游戏个人数据_宝藏消费").Filter = "学生编号 = '"& r("学生编号") &"'"  '筛选消费数据
    Tables("游戏个人数据_成长勋章").Filter = "学生编号 = '"& r("学生编号") &"'"
    Tables("游戏个人数据_金币借贷").Filter = "学生编号 = '"& r("学生编号") &"'"
    Tables("游戏个人数据_龙源宝藏").Sort = "日期 DESC"
    Tables("游戏个人数据_宝藏消费").Sort = "日期 DESC"
    Tables("游戏个人数据_成长勋章").Sort = "日期 DESC"
    
    '-----------精确定位行--------------------------
    If Tables("游戏个人数据_龙源宝藏").Rows.count > 0 Then
        Dim wz As Integer = Tables("游戏个人数据_龙源宝藏").FindRow("流水号 = '" & r("流水号") & "'")
        If wz >=0 Then
            Tables("游戏个人数据_龙源宝藏").Position = wz
        End If
    End If
    '-----------精确定位行--------------------------
    
    Dim dr2 As DataRow = DataTables("学生信息").find("学生编号 = '"& r("学生编号") &"'")
    Dim zp As WinForm.PictureBox = e.Form.Controls("照片")
    zp.ImageFile = dr2("照片")
    
    
    Dim yqyz As WinForm.TextBox = e.Form.Controls("运气印章")
    Dim dqyz As WinForm.TextBox = e.Form.Controls("当前印章")
    Dim dqjb As WinForm.TextBox = e.Form.Controls("当前金币")
    Dim jblj As WinForm.TextBox = e.Form.Controls("金币累计")
    Dim xflj As WinForm.TextBox = e.Form.Controls("消费累计")
    Dim jbye As WinForm.TextBox = e.Form.Controls("金币余额")
    Dim qjtf As WinForm.TextBox = e.Form.Controls("请假退费")
    Dim tfye As WinForm.TextBox = e.Form.Controls("托费余额")
    Dim sum As Integer = 0
    Dim sum2 As Integer = 0
    
    '--------------计算当前学生的有效印章数量----------------------
    Dim drs As List(Of DataRow) = DataTables("龙源宝藏").Select("学生编号 = '"& r("学生编号") &"' And 印章有效 = 1")
    If drs.Count > 0 Then
        For Each dr As DataRow In drs
            Dim yxyz As Integer = dr("路队") + dr("用餐") + dr("午休") + dr("作业") + dr("运气") + dr("惩罚") + dr("印章补差")
            sum = sum + yxyz
        Next
    End If
    dqyz.value = sum
    '--------------计算当前学生的有效印章数量----------------------
    
    '--------------计算当前学生的有效运气印章数量----------------------
    Dim drs2 As List(Of DataRow) = DataTables("龙源宝藏").Select("学生编号 = '"& r("学生编号") &"' And 运气有效 = 1")
    If drs2.Count > 0 Then
        For Each dr As DataRow In drs2
            Dim yxyq As Integer = dr("路队") + dr("用餐") + dr("午休") + dr("作业") + dr("惩罚") + dr("印章补差")
            sum2 = sum2 + yxyq
        Next
    End If
    yqyz.value = sum2
    '--------------计算当前学生的有效运气印章数量----------------------
    
    
       
    '--------------窗口累计金币赋值----------------
    jblj.value = dr2("累计获得金币")
    dqjb.value = dr2("金币")
    
End If
[此贴子已经被作者于2015/10/12 15:37:56编辑过]

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/10/12 15:40:00 [只看该作者]

这个代码去掉看看。

 

Tables("游戏个人数据_龙源宝藏").Filter = "学生编号 = '"& r("学生编号") &"'"  '筛选印章数据

 

不行,就分别去掉代码,看你个影响


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


加好友 发短信
等级:童狐 帖子:267 积分:2574 威望:0 精华:0 注册:2008/11/9 18:30:00
  发帖心情 Post By:2015/10/12 16:19:00 [只看该作者]

好吧,我出门了,明天再一点一点试试

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


加好友 发短信
等级:童狐 帖子:267 积分:2574 威望:0 精华:0 注册:2008/11/9 18:30:00
  发帖心情 Post By:2015/10/13 10:49:00 [只看该作者]

我把afterload里所有的代码都屏蔽掉了,还是那个问题,是不是窗口坏掉了

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/10/13 10:58:00 [只看该作者]

msgbox("流水号 = '" & r("流水号") & "'")

 

msgbox(wz)

 

看弹出什么,如果是-1,说明就是没找到啊。


 回到顶部
总数 12 1 2 下一页