以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  自定义报表设置表格行高问题请教  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=189385)

--  作者:z769036165
--  发布时间:2023/11/29 9:42:00
--  自定义报表设置表格行高问题请教
自定义报表设置表格行高为AUTO,但是有些行内容很少,结果显示很窄,想有个最基本的保证行高,即如果auto的行高低于12,则行高为12,但是发现取不到设置成auto的行高值,这块怎么获取auto后的实际行高值
--  作者:有点蓝
--  发布时间:2023/11/29 9:46:00
--  
专业报表?贴出代码看看
--  作者:z769036165
--  发布时间:2023/11/29 19:20:00
--  
Dim rt2 As New prt.RenderTable() \'定义一个表格对象
rt2.BreakBefore = prt.BreakEnum.Page \'打印之时另起一页
rt2.style.Padding.Top = 2
rt2.Style.GridLines.All = New prt.Linedef \'设置网格线
rt2.Style.TextAlignHorz = prt.AlignHorzEnum.Center \'水平居中
rt2.Style.TextAlignVert = prt.AlignVertEnum.Center \'垂直居中 
doc.Body.Children.Add(rt2) \'将表格对象加入到报表中
For Each dr As Row In tb.Rows
    rt2.Cells(i, 0).Text = dr("单号")
    rt2.Rows(i).Height = "AUTO"  \'这个地方设置为自动行高
    Output.Show(rt2.Rows(i).Height)  \'显示结果为AUTO,想取到实际的高度
    想实现如果高度不满足12则设置为12
    IF rt2.Rows(i).Height < 12 THEN
        rt2.Rows(i).Height = 12
    END IF
next

[此贴子已经被作者于2023/11/29 19:23:37编辑过]

--  作者:有点蓝
--  发布时间:2023/11/30 8:30:00
--  
auto情况下没有办法获取实际高度,因为只有在生成报表之后才能有真正的高度。

简单的自己看看生成的报表,目测一下一行大概是几个字符,直接判断字符个数,比如一行大概20个字符,那么18个字符以下就设置高度为12

复杂的可以使用代码获取高度,大概:http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=141497