起步软件技术论坛-X3

 找回密码
 立即注册
搜索
12
返回列表 发新帖
楼主: 买猪蹄

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

[复制链接]
发表于 2007-5-18 13:44:17 | 显示全部楼层
楼主,关于居中你可以尝试设置表格文档的第一列的列宽和第一行的行高方式来实现
lsheet.ColWidths[0] := 560;   

请参考附件的例子:

sheetdoc.rar

29.19 KB, 下载次数: 25

回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-5-18 15:30:34 | 显示全部楼层
居中我目前实现的方法是:
暂时不考虑垂直居中和表格宽度大于DocView宽度的情况
procedure TMainForm.BizFormResize(Sender: TObject);
var
    i : integer ;
   TabColCount : integer ;
   TabColWidth : integer ;
begin
     TabColCount := Business.Model.TSheetDoc(DocViewZBJXX_BGWD1.Doc).Sheet.ColCount ;
     TabColWidth := 0 ;
for i:= 1 to TabColCount-1 do
    begin
    TabColWidth := TabColWidth + Business.Model.TSheetDoc(DocViewZBJXX_BGWD1.Doc).Sheet.ColWidths ;
    end;
    Business.Model.TSheetDoc(DocViewZBJXX_BGWD1.Doc).Sheet.RowHeights[0] := 50;
    Business.Model.TSheetDoc(DocViewZBJXX_BGWD1.Doc).Sheet.ColWidths[0] := integer(( Panel.Width - TabColWidth)/2);  
    DocViewZBJXX_BGWD1.Doc.Close;
    DocViewZBJXX_BGWD1.Doc.Open(TDocMode.dmEdit, DocViewZBJXX_BGWD1);
end;

这段代码实现表格居中,但是现在的困难是Business.Model.TSheetDoc(DocViewZBJXX_BGWD1.Doc).Sheet.ColCount 很难把握,不采取上述的方法无法返回正确的列数值
回复 支持 反对

使用道具 举报

发表于 2007-5-18 16:06:36 | 显示全部楼层
楼主,其实在表格设计器里这些多余的行、列都是设计器自己加上去的,是实际存在的行、列
所以你看到23行是文档真实的行数,只是你只用了8行而已。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-5-18 16:23:19 | 显示全部楼层
这样看来想要得到正确的行列数只能按照第3张图的做法了,是这样的吗?
有没有其他的办法让设计不自动添加呀?
感觉我的这种居中方法比较笨,有没有其它更好的办法设置表格居中,我想表格居中应该是很普遍的需求呀
回复 支持 反对

使用道具 举报

发表于 2007-5-18 16:51:25 | 显示全部楼层
表格文档编辑模式下是不能自动居中的。

在打印预览模式下,可以设置打印属性来实现。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-5-18 17:00:08 | 显示全部楼层
嗯  明白了,谢谢了
回复 支持 反对

使用道具 举报

发表于 2007-5-18 17:06:44 | 显示全部楼层
不客气,结贴了!
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-1-10 11:46 , Processed in 0.041041 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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