以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  窗口中的表选定单元格  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=145369)

--  作者:hbhb
--  发布时间:2020/1/17 12:12:00
--  窗口中的表选定单元格
大师:见实例,窗口中表绑定表后,按Ctrl选定不同单元格出现问题
1、加载表后出现问题
2、选定一单元格,背景显示连续两个单元格
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:不同区域坐标选择 (2).zip


--  作者:有点蓝
--  发布时间:2020/1/17 13:54:00
--  
都做一下转换:e.Table.Grid.SetCellStyle(cint(ary(0)+1), cint(ary(1)+1), "")

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:不同区域坐标选择.zip



--  作者:hbhb
--  发布时间:2020/1/17 18:18:00
--  
还是不行,背景还是选择两个单元格
测试:
第一步:选择科目余额表,增加行,鼠标点击任意单元格显示两个单元格
第二部:再选择其他表,出错。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:测试项目.zip


--  作者:hbhb
--  发布时间:2020/1/17 21:08:00
--  
劳驾大师帮忙解决,折腾半天了都没有搞出来?
--  作者:有点蓝
--  发布时间:2020/1/17 21:10:00
--  
1、多个表都使用同样的代码,也就是使用了同一个集合ps存储单元格坐标,不同表切换肯定就有单元格坐标索引不一致的问题
方法1、每个表都使用一个独立的集合对象
方法2、MainTableChanging事件清空这个集合
For Each p As String In ps
    Dim ary() As String = p.Split(",")
    If ary(0) >= 0 AndAlso ary(1) >= 0 Then
        Tables(e.OldTableName).Grid.SetCellStyle(cint(ary(0)+1), cint(ary(1)+1), "")
    End If
Next
Tables(e.OldTableName).Refresh
ps.clear

2、其次,如果表有多层表头,单元格坐标计算肯定要改改
e.Table.Grid.SetCellStyle(cint(ary(0)+e.Table.HeaderRows), cint(ary(1)+1), "")
从来都只会抄,根本不懂自己在做什么

--  作者:hbhb
--  发布时间:2020/1/17 22:43:00
--  
针对实例解决直接解决发给我看看?窗口中的表有这个事件MainTableChanging事件?
--  作者:有点蓝
--  发布时间:2020/1/17 22:52:00
--  
方法1、每个表都使用一个独立的集合对象

都提供了多个方案,不会自己选一个合适的么

--  作者:hbhb
--  发布时间:2020/1/17 23:22:00
--  
什么叫多个表?窗口中的SQL类型表的名称是什么?不是同样的表名?这是绑定不同的数据表?
如果我加载不同的表前,清空集合,与你所说不同的集合对象的区别是什么?
不要理论,只要结果!您是否解决了问题?

--  作者:hbhb
--  发布时间:2020/1/17 23:39:00
--  
其实这些都应该是软件本身最基本的功能,既然提供自动计算,难道就只能选择方块区域?不是笑话吗?
难道这些最基本的功能,还要我们去摸索写代码?我们的精力应该主要放在业务逻辑本身!

--  作者:有点蓝
--  发布时间:2020/1/18 9:07:00
--  
foxtable不是万能的,就算金蝶用友都有各种各样的毛病和不喜欢。精力都放在业务逻辑里,其它什么东西都做好了的软件这个世界还不存在。

8楼的问题纯属编程基础问题。就说懒得了,不找那么多借口

如果第一次操作A表,把A表选择的单元格都放入了ps集合,其中有一个选择的单元格是(9,1),这时再选择其它表,B表,但是这个B表只有5行数据,是不存在(9,1)的,可是代码里还是使用了同一个ps集合,集合里有(9,1),是不是就会导致索引异常?!

论坛是提供技术支持,提供思路的,不是提供结果的地方,如果自己不思考,不动手只想要结果的,看看天上有没有馅饼掉下来...