以文本方式查看主题

-  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
 Return \'则返回
End If
Dim wz As Integer 
Dim dr As DataRow
dr = DataTables("工程设计任务书").Find("[任务索引] = \'" & e.Table.Current("任务索引") & "\'")
If dr IsNot Nothing Then
    wz = Tables("工程设计任务书").FindRow(dr)
    If wz >= 0 Then
        Tables("工程设计任务书").Position = wz
        \'End If
    End If
End If

 

[此贴子已经被作者于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.工作策划副表新增行定位到  窗口(工程设计任务书)对应任务索引的行

 

 请老师看看,谢谢!!!

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


--  作者:有点蓝
--  发布时间: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