以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  定位行问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=117218)

--  作者:swagger
--  发布时间:2018/4/9 0:38:00
--  定位行问题
一般是:双击点击订单表某一行,弹出一个“订单”窗口,对应的是这行的信息。
然而如果在这个订单窗口afterload加入

Dim y As Integer = Date.Today.Year
Dim m As Integer = Date.Today.Month
Dim dt1 As New Date(y, m, 1)
Dim dt2 As New Date(y, m, Date.DaysInMonth(y, m)) \'获取本月的最后一天
Dim Filter As String
Filter = "日期 >= \'" & dt1 & "\' And 日期 <= \'" & dt2 & "\'"
DataTables("订单").LoadFilter = Filter
DataTables("订单").Load()
DataTables("订单").loadtop = ""
        \'DataTables("订单").loadPage = 0
        DataTables("订单").load

那么点击订单表的某一行,弹出的订单窗口显示的仍然是loadtop条件之后的行,这个问题怎么解决


--  作者:有点甜
--  发布时间:2018/4/9 10:02:00
--  

1、你为什么要在AfterLoad事件加入这段代码?

 

2、重新load表格之后,position是会改变的,如果你要继续定位到你点击的那一行,需要在加载之前记录_Identify值,加载后,定位过去

 

http://www.foxtable.com/webhelp/scr/0553.htm

 


--  作者:swagger
--  发布时间:2018/4/9 12:57:00
--  
请教甜老师,这个代码怎么写:

Dim dr As String = Tables("订单").Current("_Identify")
If dr IsNot Nothing Then
    Dim wz As Integer = Tables("订单").FindRow(dr)
    If wz >= 0 Then
        Tables("订单").Position = wz
    End If
End If
End If

--  作者:有点甜
--  发布时间:2018/4/9 14:43:00
--  
Dim id As String = Tables("订单").current("_Identify")
DataTables("订单").LoadFilter = Filter
DataTables("订单").Load()
DataTables("订单").loadtop = ""
\'DataTables("订单").loadPage = 0
DataTables("订单").load
Dim i As Integer = Tables("订单").FindRow("_Identify = \'" & id & "\'")
If i >= 0 Then
    Tables("订单").Position = i
End If

--  作者:swagger
--  发布时间:2018/4/15 13:28:00
--  
问题1:还没搞清楚,在哪里记录怎么记录,是不是在窗口表的currentchanged 记录?代码怎么写呢

Dim dr As DataRow = DataTables("订单").current(“_identify")
Dim id As String = Tables("订单").current("_Identify")

后是不是在打开窗口afterload 加载记录的identify值?代码怎么写?


--------------------------------------------------------

问题2:我是用两个窗口共用一个订单表,窗口a打开“性别”为男性的订单,窗口b打开“性别”为女性的订单,所以要用到loadfilter, DataTables("订单").LoadFilter = “[性别] =‘男性‘”, 用了loadfilter之后在窗口的订单表就遇到上述问题了,有没有办法不用loadfilter能讲两个窗口分别加载不同性别的订单? 并且不用记录identify值就可以定位到选择的订单行?类似像窗口表副本一样



[此贴子已经被作者于2018/4/15 14:29:27编辑过]

--  作者:有点甜
--  发布时间:2018/4/15 15:48:00
--  

1、你执行Load代码之前记录,请看4楼代码,看懂代码;

 

2、窗口表如果要显示不同的内容,两种方法:方法一,使用筛选filter,不要用加载loadfilter;方法二,使用sqlTable表格,不要用副本表。


--  作者:swagger
--  发布时间:2018/4/15 19:16:00
--  
以下是引用有点甜在2018/4/15 15:48:00的发言:

1、你执行Load代码之前记录,请看4楼代码,看懂代码;

 

2、窗口表如果要显示不同的内容,两种方法:方法一,使用筛选filter,不要用加载loadfilter;方法二,使用sqlTable表格,不要用副本表。

4楼代码我慢慢学习,第二个问题,我的意思,订单表窗口点击里面的订单表(我现在用的就是sqltable),然后打开不同窗口,譬如窗口a和窗口b,loadfilter是放在窗口a和窗口b的afterload里面, 如果不用loadfilter, 那么窗口b加载的数据,窗口a也能显示了。我暂时想到一种办法,就是不在订单表窗口双击订单行打开窗口a和b, 而是在窗口a和b,加个订单搜索功能,这样在搜索列表里面点击订单行就能在窗口a和b的控件显示相应的内容。只是希望最好能点击窗口表打开窗口a和b显示相应的数据最好,我先研究一下
--  作者:有点甜
--  发布时间:2018/4/15 21:21:00
--  

1、执行LoadFilter和Load之后,再对窗口a、b里面的表格做filter筛选,即可;

 

2、使用sqlTable,也可以,直接就可以显示各自的内容了。

 

3、具体问题做实例上来吧,没看懂你要做什么。


--  作者:swagger
--  发布时间:2018/4/20 2:57:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目5.foxdb



我意思是这样,请甜老师指点一下
[此贴子已经被作者于2018/4/20 2:58:25编辑过]

--  作者:有点甜
--  发布时间:2018/4/20 8:56:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目5.foxdb