以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]如何将position所在行变成current当前行? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=75653) |
-- 作者:ehomecd -- 发布时间:2015/10/12 13:15:00 -- [求助]如何将position所在行变成current当前行? 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 13:28:52编辑过]
|
-- 作者:大红袍 -- 发布时间:2015/10/12 14:18:00 -- 1、afterLoad事件不需要写代码;
2、不需要做任何操作,只要绑定副本表,就一定能编辑。 |
-- 作者:大红袍 -- 发布时间: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 -- 发布时间: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定位的行成为当前行? |
-- 作者:大红袍 -- 发布时间:2015/10/12 14:47:00 -- 不可能,例子发上来。 |
-- 作者:ehomecd -- 发布时间: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编辑过]
|
-- 作者:大红袍 -- 发布时间:2015/10/12 15:40:00 -- 这个代码去掉看看。
Tables("游戏个人数据_龙源宝藏").Filter = "学生编号 = \'"& r("学生编号") &"\'" \'筛选印章数据
不行,就分别去掉代码,看你个影响 |
-- 作者:ehomecd -- 发布时间:2015/10/12 16:19:00 -- 好吧,我出门了,明天再一点一点试试 |
-- 作者:ehomecd -- 发布时间:2015/10/13 10:49:00 -- 我把afterload里所有的代码都屏蔽掉了,还是那个问题,是不是窗口坏掉了 |
-- 作者:大红袍 -- 发布时间:2015/10/13 10:58:00 -- msgbox("流水号 = \'" & r("流水号") & "\'")
msgbox(wz)
看弹出什么,如果是-1,说明就是没找到啊。 |