起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 581|回复: 16

【搞定】[请求]一个关于表格的问题**

[复制链接]
发表于 2007-5-17 09:08:21 | 显示全部楼层 |阅读模式
功能代码中调用Business.Model.TSheetDoc(DocView.Doc).Sheet.RowCount ;和Business.Model.TSheetDoc

(DocView.Doc).Sheet.ColCount ;不能正确表示有效行数与列数

具体如下:
按正常表格向导生成的表格文档。如图:



原以为行为8,列为3
可事实上返回的是滚动条拉到顶的行数和列数。如图:



即行为22,列为7
无奈之下只得拉高第1行拉宽第1列,使得滚动条到顶才能正确反映行列数。如图:



这种方法非常憋足,而且有一个问题:如果此时若不慎点击滚动按钮,行(列)又会自动增加几行(列),如图:



不知道还有什么方法能解决这个问题,使得能够获取真正有效的行、列数。请赐教

另:有什么办法直接获取表格的有效宽度(有效列宽的和)和高度(有效行高的和)
回复

使用道具 举报

 楼主| 发表于 2007-5-17 10:54:30 | 显示全部楼层
怎么没有人回啊,自己顶一下上去
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-5-18 09:45:03 | 显示全部楼层
怎么没人回,解决不了好歹回复一个啊
回复 支持 反对

使用道具 举报

发表于 2007-5-18 10:04:15 | 显示全部楼层
楼主,表格文档在设计期和运行期是不一样的。
不能在运行期对其进行访问和修改。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-5-18 10:19:19 | 显示全部楼层
感谢回复,但是可能没有明白我的意思
我只想在功能中获取表格文件的一些信息,比如行数、列数
这个是可以实现的,就是通过Business.Model.TSheetDoc(DocView.Doc).Sheet.RowCount 之类的属性获得的。
而且还可以对特定的行高、列宽之类的属性进行设置。
以上仅在功能中体现,实际上并没有修改原始表格文档(我也不希望修改原始文档,毕竟原始的表格文档在我的功能的很多地方是公用的)。
现在的问题是这个行数、列数不正确
回复 支持 反对

使用道具 举报

发表于 2007-5-18 10:38:59 | 显示全部楼层
楼主,你的需求在论坛中有类似的帖子,可以搜索一下。

对表格文档的表现进行修改,需要重新打开表格才能生效。本质还是对设计期的对象进行了修改,重新打开时就是按照最新的定义重新创建了一次运行期的对象
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-5-18 10:49:43 | 显示全部楼层
感谢回复,可是还是没有明白我的问题
要刷新DocView这我知道:
DocView.Doc.Close;
DocView.Doc.Open(TDocMode.dmEdit, DocView);
但是现在的问题是功能中获取Business.Model.TSheetDoc(DocView.Doc).Sheet.RowCount属性(行数)不能得到正确的值。
请老大测试一下:在一个功能中插入上述语句,并设中断,看看那个值是不是表格文档中有效的行数。
回复 支持 反对

使用道具 举报

发表于 2007-5-18 11:09:43 | 显示全部楼层
楼主,你获取的22、7就是文档在设计期实际的行、列数。

你可以尝试把多余的行、列删除看可以不。
回复 支持 反对

使用道具 举报

发表于 2007-5-18 11:10:16 | 显示全部楼层
另外,你这样作的需求是什么?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-5-18 11:19:22 | 显示全部楼层
删除多余的行列没有效果,麻烦老大测试一下



这些属性值可能有其它的作用
目前只是想通过更改第一列的列宽,来调整表格在窗体任意大小时的居中。
对于居中不知道还有什么办法,请老大赐教。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-1-10 16:42 , Processed in 0.043705 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表