Foxtable(狐表)用户栏目专家坐堂 → 定位行问题


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

主题:定位行问题

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


加好友 发短信
等级:三尾狐 帖子:689 积分:5362 威望:0 精华:0 注册:2012/8/25 20:50:00
定位行问题  发帖心情 Post By: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条件之后的行,这个问题怎么解决


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


加好友 发短信
等级:三尾狐 帖子:689 积分:5362 威望:0 精华:0 注册:2012/8/25 20:50:00
  发帖心情 Post By: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

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


加好友 发短信
等级:三尾狐 帖子:689 积分:5362 威望:0 精华:0 注册:2012/8/25 20:50:00
  发帖心情 Post By: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编辑过]

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


加好友 发短信
等级:三尾狐 帖子:689 积分:5362 威望:0 精华:0 注册:2012/8/25 20:50:00
  发帖心情 Post By: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显示相应的数据最好,我先研究一下

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


加好友 发短信
等级:三尾狐 帖子:689 积分:5362 威望:0 精华:0 注册:2012/8/25 20:50:00
  发帖心情 Post By:2018/4/20 2:57:00 [显示全部帖子]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目5.foxdb



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

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


加好友 发短信
等级:三尾狐 帖子:689 积分:5362 威望:0 精华:0 注册:2012/8/25 20:50:00
  发帖心情 Post By:2018/4/29 18:02:00 [显示全部帖子]

请问有旧版的吗?我的是2017版的,老师的版本太新了,打不开

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


加好友 发短信
等级:三尾狐 帖子:689 积分:5362 威望:0 精华:0 注册:2012/8/25 20:50:00
  发帖心情 Post By:2018/4/29 18:33:00 [显示全部帖子]

感谢,不过还是不行
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目5.foxdb

。我把2个窗口模板都导入,然后打开还是这样。貌似老师只是修改了窗口2的绑定列?其它感觉都没修改过。

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


加好友 发短信
等级:三尾狐 帖子:689 积分:5362 威望:0 精华:0 注册:2012/8/25 20:50:00
  发帖心情 Post By:2018/5/6 22:36:00 [显示全部帖子]


图片点击可在新窗口打开查看此主题相关图片如下:未标题-1.png
图片点击可在新窗口打开查看\


就是点击窗口1的无论哪一行都只会弹出窗口2的2b行

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


加好友 发短信
等级:三尾狐 帖子:689 积分:5362 威望:0 精华:0 注册:2012/8/25 20:50:00
  发帖心情 Post By:2018/5/6 22:46:00 [显示全部帖子]

甜老师,如果能把loadfilter删掉就简单了,我就不用提出这个问题了。

DataTables("表a").loadFilter = "第二列 = 'b'"
DataTables("表a").Load()

这段代码是为了区分不同的窗口加载同表不同类型的数据

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


加好友 发短信
等级:三尾狐 帖子:689 积分:5362 威望:0 精华:0 注册:2012/8/25 20:50:00
  发帖心情 Post By:2018/5/6 22:48:00 [显示全部帖子]

貌似刚才可以了,我把表a的currentchanged代码挪到窗口表的currentchanged就可以了


Dim id As String = Tables("表a").current("_Identify")

Dim i As Integer = Tables("表a").FindRow("_Identify = '" & id & "'")
If i >= 0 Then
    Tables("表a").Position = i
End If



If Forms("窗口1").Opened Then '如果窗口已经打开
    Dim dr As DataRow = e.Table.Current.DataRow
    Dim wz As Integer = Tables("窗口1_Table1").FindRow(dr)
    If wz >=0 Then
        Tables("窗口1_Table1").Position = wz
    End If
End If


然后把窗口2的这段代码删掉

Dim id As String = Tables("表a").current("_Identify")
Dim i As Integer = Tables("表a").FindRow("_Identify = '" & id & "'")
If i >= 0 Then
    Tables("表a").Position = i
End If
[此贴子已经被作者于2018/5/6 22:50:14编辑过]

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