Foxtable(狐表)用户栏目专家坐堂 → [求助]表格居中


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

主题:[求助]表格居中

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


加好友 发短信
等级:三尾狐 帖子:719 积分:5181 威望:0 精华:1 注册:2008/9/24 10:41:00
[求助]表格居中  发帖心情 Post By:2009/4/29 14:57:00 [只看该作者]

Dim doc As New PrintDoc '定义一个报表
Dim
rt As New prt.RenderTable() '定义一个表格对象
???

能否帮我看一下如何将表格居中,不是表格内容居中.
因表格默认是靠左边的.
感谢.

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/4/29 15:09:00 [只看该作者]

Dim doc As New PrintDoc '定义一个报表
Dim rt As New prt.RenderTable() '定义一个表格对象
doc.Body.Children.Add(rt) '将表格对象加入到报表中
rt.width = 60
rt.x = "50%Parent.Width"
'下面的代码向表格中填入值
For r As integer = 0 to 5
    For c As integer = 0 to 5
        dim rx As New prt.RenderText '定义一个文本对象
        rx.Text = r & "," & c '为文本对象设置内容
        rt.Cells(r, c).RenderObject = rx '将文本对象放置在单元格中
    Next
Next
doc.Preview() '预览报表

 回到顶部
美女呀,离线,留言给我吧!
yangming
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2009/4/29 15:11:00 [只看该作者]

楼主的意思是说此表格在页面中居中?

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


加好友 发短信
等级:三尾狐 帖子:719 积分:5181 威望:0 精华:1 注册:2008/9/24 10:41:00
  发帖心情 Post By:2009/4/29 15:21:00 [只看该作者]

以下是引用yangming在2009-4-29 15:11:00的发言:
楼主的意思是说此表格在页面中居中?

呵,是呢,横向居中.
狐爸的代码正在试,


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


加好友 发短信
等级:三尾狐 帖子:719 积分:5181 威望:0 精华:1 注册:2008/9/24 10:41:00
  发帖心情 Post By:2009/4/29 15:45:00 [只看该作者]

rt.width = 60
rt.x = "50%Parent.Width"
这个不好,还不如自己调试,
tr.x = 30

因表格的行数是随TABLE动态的,如设置了TR.X,则下一个Rrendertable()要设置TOP.比如:

Dim doc As New PrintDoc '定义一个报表对象
Doc.PageSetting.LeftMargin = 10 '设置左边距
Doc.PageSetting.RightMargin = 10 '设置右边距
Doc.PageSetting.TopMargin = 20 '设置上边距
Doc.PageSetting.BottomMargin = 20 '设置下边距


Dim rm As New prt.RenderImage '定义一个图片对象
rm.Image = GetImage("logo.jpg") '设置图片
rm.Width = "Parent.Width" '宽度等于页面宽度
rm.Height = "Auto" '高度由图片大小自动决定
rm.Style.ImageAlign.StretchHorz = False '禁止图片水平拉伸
rm.Style.ImageAlign.AlignHorz = prt.ImageAlignHorzEnum.Center '居中显示

Dim rs As New prt.RenderText() '定义一个文本对象
rs.Text = "委托书"
rs.Style.Font = New Font("ARIAL", 18 , FontStyle.Bold) '设置文本对象的字体
rs.Style.TextAlignHorz = prt.AlignHorzEnum.Center '文本内容水平居中
doc.Body.Children.Add(rm) '将图片对象加入报表
doc.Body.Children.Add(rs) '将文本对象加入到表格中

Dim rt As New prt.RenderTable() '定义一个表格对象
doc.Body.Children.Add(rt) '将表格对象加入到报表中
rt.width = 60
rt.x = "50%Parent.Width"
...........略

Dim rt1 As New prt.RenderTable() '定义一个表格对象
rt1.Style.Spacing.Top = 20

如不设置TOP,则二个格会重叠在一起.不会按顺序rt1在rt 下面自动生成rendertable()
但有时rt有10行,有时只有一行,
则 rt  有时会与 tr1重叠,有时则空好多.

呵,不知有没有办法设置.


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/4/29 15:49:00 [只看该作者]

可以使用相对位置。
参考帮助文件“专业报表 - 报表基础 - 详解位置和尺寸”

 回到顶部
美女呀,离线,留言给我吧!
yangming
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2009/4/29 15:51:00 [只看该作者]

如果用了贺老师的代码,就没必要再设左右边距了

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


加好友 发短信
等级:八尾狐 帖子:1812 积分:12999 威望:0 精华:14 注册:2008/10/11 18:07:00
  发帖心情 Post By:2009/4/29 16:03:00 [只看该作者]

以下是引用狐哥在2009-4-29 15:45:00的发言:
rt.width = 60
rt.x = "50%Parent.Width"
这个不好,还不如自己调试,
tr.x = 30

因表格的行数是随TABLE动态的,如设置了TR.X,则下一个Rrendertable()要设置TOP.比如:

Dim doc As New PrintDoc '定义一个报表对象
Doc.PageSetting.LeftMargin = 10 '设置左边距
Doc.PageSetting.RightMargin = 10 '设置右边距
Doc.PageSetting.TopMargin = 20 '设置上边距
Doc.PageSetting.BottomMargin = 20 '设置下边距


Dim rm As New prt.RenderImage '定义一个图片对象
rm.Image = GetImage("logo.jpg") '设置图片
rm.Width = "Parent.Width" '宽度等于页面宽度
rm.Height = "Auto" '高度由图片大小自动决定
rm.Style.ImageAlign.StretchHorz = False '禁止图片水平拉伸
rm.Style.ImageAlign.AlignHorz = prt.ImageAlignHorzEnum.Center '居中显示

Dim rs As New prt.RenderText() '定义一个文本对象
rs.Text = "委托书"
rs.Style.Font = New Font("ARIAL", 18 , FontStyle.Bold) '设置文本对象的字体
rs.Style.TextAlignHorz = prt.AlignHorzEnum.Center '文本内容水平居中
doc.Body.Children.Add(rm) '将图片对象加入报表
doc.Body.Children.Add(rs) '将文本对象加入到表格中

Dim rt As New prt.RenderTable() '定义一个表格对象
doc.Body.Children.Add(rt) '将表格对象加入到报表中
rt.width = 60
rt.x = "50%Parent.Width"
...........略

Dim rt1 As New prt.RenderTable() '定义一个表格对象
rt1.Style.Spacing.Top = 20

如不设置TOP,则二个格会重叠在一起.不会按顺序rt1在rt 下面自动生成rendertable()
但有时rt有10行,有时只有一行,
则 rt  有时会与 tr1重叠,有时则空好多.

呵,不知有没有办法设置.

可以根据Rt的行数动态设置rt1的Top 啊


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


加好友 发短信
等级:三尾狐 帖子:719 积分:5181 威望:0 精华:1 注册:2008/9/24 10:41:00
  发帖心情 Post By:2009/4/29 16:45:00 [只看该作者]

以下是引用don在2009-4-29 16:03:00的发言:

可以根据Rt的行数动态设置rt1的Top 啊

这个办法好,贺老师的代码不会做,呵呵.总是重叠在一起.


 回到顶部