以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]用菜单操作数据表,这个功能要怎么实现  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=79474)

--  作者:99473593
--  发布时间:2016/1/2 13:33:00
--  [求助]用菜单操作数据表,这个功能要怎么实现

项目中,菜单首页功能区有“订单管理”,“商品管理”两个功能按钮,点击“订单管理”可进入订单管理的功能区。数据加载采用分页加载,每页显示十条数据,并且是按订单编号倒序排序的。

比如我现在想修改第3页的第10条数据。

1.我鼠标选定第3页的第10条数据,然后点菜单上的“修改”按钮,可进入“订单修改”功能区。

2.要求:进行修改完毕保存后,点菜单上的“关闭”按钮,则关闭当前功能区(即订单修改功能区)返回到“订单管理”功能区,并且需要数据界面停留在原来的界面,即第3页,焦点页停留在第10条数据上。该怎么实现?

 

我现在,只要点击“订单修改”功能区上的关闭按钮,虽然回到“订单管理”功能区了,但数据显示变成了第1页,焦点在第1条数据上。这样如果需要继续修改这条下面的数据,又要重新翻页查找很麻烦了。

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:分页加载订单修改返回.rar

[此贴子已经被作者于2016/1/3 11:12:33编辑过]

--  作者:大红袍
--  发布时间:2016/1/3 22:34:00
--  

1、比如窗口的属性->所有者表,改成 首页

 

2、打开窗口后,切换到首页 maintable = Tables("首页")


--  作者:99473593
--  发布时间:2016/1/4 8:30:00
--  

我在订单管理功能区,以加上下面代码了

Forms("订单管理主窗口").Open()    \'打开主窗口
MainTable = Tables("订单表")     \'切换到表

还是不行哦

 


--  作者:99473593
--  发布时间:2016/1/4 8:38:00
--  

后在窗口的AfterLoad加入了条件判断,判断订单管理主窗口是否已经打开,如果打开,则加载当前页,如果没有打开,则加载第一页,这样以来,修改后返回到“订单管理”功能区,可以实现,停留在修改前的数据页面,但有出现了个问题,就是,关掉“订单管理”功能区,在重新打开后,就停留在刚才修改前的页面了,不是重新加载第一页的数据了。

 

\'****************************
\'加载第一页数据
\'****************************
If Forms("订单管理主窗口").Opened Then  \'正常打开
    With DataTables("订单表")
        .LoadFilter = "" \'属性 字符型,用于设置重新加载数据的条件表达式,语法和所使用的数据源有关.
        .LoadOrder = "订单表_订单编号" \'属性 字符型,指定加载数据的顺序.
        .LoadOver = "订单表_订单编号" \'属性 字符型,用于指定分页加载依据列.
        .LoadTop = 10 \'属性 字符型,指定要加载的行数,如果是分页加载,则用于指定每页的行数.通常和LoadOrder配合使用
        .LoadReverse = True \'属性 逻辑型,是否倒序加载,即是否先加载新数据,此属性只有在分页加载的时候才有效.
        e.Form.Controls("TextBox1").Value =( .LoadPage + 1) & "/" & .TotalPages
    End With
Else
    With DataTables("订单表")
        .LoadFilter = "" \'属性 字符型,用于设置重新加载数据的条件表达式,语法和所使用的数据源有关.
        .LoadOrder = "订单表_订单编号" \'属性 字符型,指定加载数据的顺序.
        .LoadOver = "订单表_订单编号" \'属性 字符型,用于指定分页加载依据列.
        .LoadTop = 10 \'属性 字符型,指定要加载的行数,如果是分页加载,则用于指定每页的行数.通常和LoadOrder配合使用
        .LoadReverse = True \'属性 逻辑型,是否倒序加载,即是否先加载新数据,此属性只有在分页加载的时候才有效.
        .LoadPage = 0 \'属性 整数型,指定要加载的页号.
        \'    .TotalPages =  \'属性 整数型,返回分页加载时,总的可加载总页数.
        .Load() \'方法 加载数据.
        e.Form.Controls("TextBox1").Value = 1 & "/" & .TotalPages
    End With
    Tables("订单表").Sort = "订单表_订单编号 DESC"
End If

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:分页加载订单修改返回.rar

[此贴子已经被作者于2016/1/4 8:39:36编辑过]

--  作者:Hyphen
--  发布时间:2016/1/4 8:56:00
--  
参考2楼,意思是2个窗口的所有者表不要设成同一个,这样修改的时候,Forms("订单管理主窗口")就不会被关闭。
--  作者:99473593
--  发布时间:2016/1/4 9:12:00
--  
以下是引用Hyphen在2016/1/4 8:56:00的发言:
参考2楼,意思是2个窗口的所有者表不要设成同一个,这样修改的时候,Forms("订单管理主窗口")就不会被关闭。
那也不行哦,如果订单修改窗口的所有者不是订单表的话,都调不出订单数据,怎么修改呢
--  作者:大红袍
--  发布时间:2016/1/4 9:15:00
--  
以下是引用99473593在2016/1/4 9:12:00的发言:
那也不行哦,如果订单修改窗口的所有者不是订单表的话,都调不出订单数据,怎么修改呢

 

比如,你多加一个空白的表,新打开的窗口,所有者表,都指向它。

 

因为在同一个表打开多个主窗口,是要先关闭前一个的,要不关闭,就必须在另外一个表里打开窗口。


--  作者:99473593
--  发布时间:2016/1/4 9:19:00
--  

不好意思,我还没弄明白,能帮我改下代码吗


--  作者:大红袍
--  发布时间:2016/1/4 9:22:00
--  

代码不用改,就该一下所有者表即可。看2楼。


--  作者:99473593
--  发布时间:2016/1/4 9:49:00
--  
我明白了,但还有其他解决办法忙,这样好像有点曲线救国,不太符合常理