以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 定位问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=93413) |
||||
-- 作者:douglas738888 -- 发布时间:2016/11/28 14:49:00 -- 定位问题 请教老师,下面代码一会儿能定位行,一会儿又定位不到行,多数时间不能定位到相同任务索引的行,不知是什么原因
如果两张表都放在一个窗口下,又能准确定位行,但是设计需要又不能把两张表放在一个窗口下。
设计环境: 1. 工作策划副表 设计在 立项策划(窗口)中 2. 工程设计任务书 设计在 设计任务书(窗口)中 3. 工作策划副表增加一行,通过任务索引(String)与 工程设计任务书 进行非关联表之间同步增加行和数据同步 4. 点击按钮 打开 工程设计任务书 当前行通过 任务索引 应与 工作策划副表的相同 任务索引 定位行
工作策划副表 CURRENTCHANGED 定位代码 If e.Table.Current Is Nothing Then
[此贴子已经被作者于2016/11/28 14:51:12编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2016/11/28 15:07:00 -- 第3步后,主表Tables("工程设计任务书").Position是否正确? 第4步打开窗口的时候有没有进行数据加载的操作? |
||||
-- 作者:douglas738888 -- 发布时间:2016/11/28 15:55:00 -- 老师,第3步后,两个表都新增行了,也有数据,其中 工作策划副表的新增行填完数据后,任务索引也生成了,同时保存两个表,其中工作策划副表进入服务器保存有数据,另外一个表在服务器上没有增加行数据,但是系统中的表可见增加行了
第4步没有加载数据, 主要是两个表同步的新增行无法定位到 |
||||
-- 作者:有点蓝 -- 发布时间:2016/11/28 16:02:00 -- 做个例子看看吧 |
||||
-- 作者:douglas738888 -- 发布时间:2016/11/28 16:48:00 -- 测试步骤:
1. 打开定位测试窗口,在工作策划副表页 增加新行,保存后,点击 打开工程设计任务书编辑按钮 2.工作策划副表新增行定位到 窗口(工程设计任务书)对应任务索引的行
请老师看看,谢谢!!!
|
||||
-- 作者:有点蓝 -- 发布时间:2016/11/28 17:39:00 -- 这是在关联表增加行,主表的Position 是不会变的 工作策划副表页 增加新行按钮事件 Dim r As Row = Tables("工作策划主表.工作策划副表").AddNew() Dim wz = Tables("工作策划副表").FindRow(r.DataRow) If wz >= 0 Then Tables("工作策划副表").Position = wz End If |
||||
-- 作者:douglas738888 -- 发布时间:2016/11/28 22:55:00 -- 蓝老师,工作策划副表增加新行是否就不能及时定位到 其他窗口表的行,上面老师指导的代码,还是没有作用 |
||||
-- 作者:有点蓝 -- 发布时间:2016/11/28 23:05:00 -- 工作策划副表DataColChanged事件 Select Case e.DataCol.name \'工作策划副表增加一行,工程设计任务书对应增加一行 Case "任务索引" Dim dr1 As DataRow = DataTables("工程设计任务书").Find("任务索引 = \'" & e.OldValue & "\'") If dr1 Is Nothing Then dr1 = DataTables("工程设计任务书").AddNew() dr1("任务索引") = e.DataRow("任务索引") dr1("项目编号") = e.DataRow("项目编号") dr1("计划开始时间") = e.DataRow("计划开始时间") dr1("计划完成时间") = e.DataRow("计划完成时间") Tables("工程设计任务书").Position = Tables("工程设计任务书").Rows.Count - 1 Else dr1("任务索引") = e.DataRow("任务索引") End If Case "项目编号","计划开始时间","计划完成时间" Dim dr1 As DataRow = DataTables("工程设计任务书").Find("任务索引 = \'" & e.DataRow("任务索引") & "\'") If dr1 IsNot Nothing Then dr1(e.DataCol.Name) = e.DataRow(e.DataCol.Name) End If End Select |