以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 专业报表中如何实现自动缩小填充 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=78908) |
-- 作者:happyft -- 发布时间:2015/12/20 14:59:00 -- 专业报表中如何实现自动缩小填充 此主题相关图片如下:qq图片20151220145515.png 如上图,当某一单元格的字数较多时如何实现自动缩小填充,从而保证行高不要变动?谢谢! 统计演示中的代码如下: Dim doc As New PrintDoc Dim tb As Table = Tables("订单") Dim prs As Integer = 20 \'每页20行 Dim sum1 As Integer = 0 \'数量小计 Dim sum2 As Double = 0 \'金额小计 Dim tsum1 As Integer = 0 \'数量总计 Dim tsum2 As Double = 0 \'金额总计 Dim idx1 As Integer= tb.cols("数量").Index Dim idx2 As Integer= tb.cols("金额").Index For p As Integer = 0 To math.Ceiling(tb.Rows.Count / prs) - 1 Dim rt As New prt.RenderTable rt.Style.Gridlines.All = New prt.Linedef(Color.Gray) rt.CellStyle.Spacing.All = 0.5 sum1 = 0 sum2 = 0 For c As Integer = 0 To tb.Cols.Count - 1 rt.Cells(0,c).Text = tb.Cols(c).Name Next For r As Integer = p * prs To math.min(tb.Rows.Count - 1,( p + 1) * prs - 1) sum1 =sum1 + tb.rows(r)("数量") sum2 =sum2 + tb.rows(r)("金额") For c As Integer = 0 To tb.Cols.Count - 1 rt.Cells(r - p * prs + 1, c).Text = tb.rows(r)(c) Next Next tsum1 = tsum1 + sum1 tsum2 = tsum2 + sum2 rt.Rows.Count = rt.Rows.Count + 1 \'增加本页小计行 rt.Rows(rt.Rows.count -1)(0).text = "本页小计" rt.Rows(rt.Rows.count -1)(idx1).text = sum1 rt.Rows(rt.Rows.count -1)(idx2).text = sum2 If p = math.Ceiling(tb.Rows.Count / prs) - 1 \'如果是最后一页 rt.Rows.Count = rt.Rows.Count + 1 \'增加总计行 rt.Rows(rt.Rows.count -1)(0).text = "总计" rt.Rows(rt.Rows.count -1)(3).text = tsum1 rt.Rows(rt.Rows.count -1)(6).text = tsum2 Else rt.BreakAfter = prt.BreakEnum.Page \'否则换页 End If doc.Body.Children.Add(rt) Next doc.Preview() |
-- 作者:大红袍 -- 发布时间:2015/12/20 15:10:00 -- 这个不能简单做到,要做,就只能是不断测试看看什么字体可以。
参考 http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=64395&skin=0
|