Foxtable(狐表)用户栏目专家坐堂 → [求助]报表表格高度的问题?


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

主题:[求助]报表表格高度的问题?

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


加好友 发短信
等级:三尾狐 帖子:712 积分:5559 威望:0 精华:0 注册:2019/11/14 9:36:00
[求助]报表表格高度的问题?  发帖心情 Post By:2020/12/16 10:12:00 [只看该作者]

 如何能求出表格第二行的高度?我用文字加一行,再加一行也可以试验出来(比如1.3行高度多增一行是0.7,1.5行高度多增一行是0.8),用文本字体格式算出来的方法得出的数据不是很准确(h2),能否有更快的方法?

Dim doc As New PrintDoc '定义一个报表
doc.PageSetting.Landscape = True '横向打印
Doc.PageSetting.LeftMargin = 25 '设置左边距
Doc.PageSetting.RightMargin = 20 '设置右边距
Doc.PageSetting.TopMargin = 20 '设置左边距
Doc.PageSetting.BottomMargin = 20 '设置左边距
Dim rt As New prt.RenderTable() '定义一个表格对象
rt.Style.GridLines.All = New prt.LineDef '将网格线类型设为默认类型
rt.Width = 100 '表宽为150毫米

Dim rx2 As New prt.RenderText '创建一个文本
rx2.Width = 100
rx2.Text = "以及科学技术的发展,短视频术的发展,短视术的发展,短发展,短视短视术的发展,短发展,短视频频术的发展发展,短视术的发展发展,短视术的发展,短视视"
rx2.Style.Font = New Font("宋体", 15, FontStyle.Bold)  '设置字体如果不设置字体,会出现导出PDF乱码
rx2.Style.LineSpacing = 150 '1.5倍行距
doc.Body.Children.Add(rt) '将表格对象加入到报表中
rt.Rows.Count = 2 '设置行数
rt.Rows(0).Height = 134
rt.Cols.Count = 1 '设置列数
rt.Cells(1,0).RenderObject = rx2

Dim g As Graphics = basemainform.CreateGraphics
g.PageUnit = GraphicsUnit.Millimeter '设置计算打印高度时的单位为毫米,和专业报表的单位一致
Dim size As Object
size = g.MeasureString(rx2.Text, rx2.Style.Font, 100)  '文本/样式/宽度
Dim h2 As Integer = size.height

Output.Show(rt.Height)
Output.Show(h2)
Doc.Preview() '预览报表

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


加好友 发短信
等级:超级版主 帖子:110648 积分:563148 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/12/16 10:17:00 [只看该作者]

只能这样,没有其它办法

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


加好友 发短信
等级:三尾狐 帖子:712 积分:5559 威望:0 精华:0 注册:2019/11/14 9:36:00
  发帖心情 Post By:2020/12/16 11:54:00 [只看该作者]

好的,谢谢!

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


加好友 发短信
等级:三尾狐 帖子:712 积分:5559 威望:0 精华:0 注册:2019/11/14 9:36:00
  发帖心情 Post By:2020/12/17 9:22:00 [只看该作者]

有没有方法返回文本rx2的行数?

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


加好友 发短信
等级:超级版主 帖子:110648 积分:563148 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/12/17 9:27:00 [只看该作者]

MeasureString计算一个字符的高度,就是1行的高度,然后在计算rx2的整个高度,除以一行的高度就是行数

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


加好友 发短信
等级:三尾狐 帖子:712 积分:5559 威望:0 精华:0 注册:2019/11/14 9:36:00
  发帖心情 Post By:2020/12/17 9:59:00 [只看该作者]

 明白,谢谢!

 回到顶部