以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 专业报表打印问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=143055) |
-- 作者:xxfoxtable -- 发布时间:2019/11/12 16:07:00 -- 专业报表打印问题 Dim doc As New PrintDoc \'定义一个新报表 Doc.PageSetting.topMargin=6 Dim rt As New prt.RenderTable \'定义一个新表格 Dim rx As New prt.RenderText \'定义一个文本对象 Dim tb As Table = Tables("欠款查询_table2") Tables("欠款查询_table2").Font=New Font("宋体",13,FontStyle.Regular) \'rt.Width = "Auto" \'表格宽度为自动,也就是等于各列设置宽度之和 rt.SplitHorzBehavior = prt.SplitBehaviorEnum.SplitIfNeeded \'表格宽度超出页宽时,可以水平换页 rt.Style.Font = tb.Font rx = New prt.RenderText() \'创建文本对象 rx.Text = "欠 款 汇 总 表" \'rx.Width = "Auto" \'自动设置宽度 \'rx.Height= "Auto" rx.Style.Font = New Font("宋体", 16, FontStyle.Bold) \'设置字体 rx.Style.TextAlignHorz = prt.AlignHorzEnum.Center \'水平居中 doc.Body.Children.Add(rx) \'将文本对象加入到报表 rx = New prt.RenderText() \'创建文本对象 rx.text="欠款类型:" & e.Form.Controls("TextBox2").text rx.x=10 rx.y=15 doc.Body.Children.Add(rx) \'将文本对象加入到报表 rx = New prt.RenderText() \'创建文本对象 rx.text="开始日期:" & e.Form.Controls("DateTimePicker3").value rx.x=35 rx.y=15 doc.Body.Children.Add(rx) \'将文本对象加入到报表 rx = New prt.RenderText() \'创建文本对象 rx.text="结束日期:" & e.Form.Controls("DateTimePicker3").value rx.x=70 rx.y=15 doc.Body.Children.Add(rx) \'将文本对象加入到报表 rx = New prt.RenderText() \'创建文本对象 If e.Form.Controls("RadioButton1").checked=True rx.text="付款状态:全部" End If If e.Form.Controls("RadioButton2").checked=True rx.text="付款状态:未付款" End If If e.Form.Controls("RadioButton3").checked=True rx.text="付款状态:已付款" End If rx.x=95 rx.y=15 doc.Body.Children.Add(rx) \'将文本对象加入到报表 rx.Style.Spacing.Bottom = 30 \'和下面的对象(表格)距离3 For c As Integer = 0 To tb.Cols.Count -1 \'逐列设置和填入内容 rt.Cells(0,c).Text = tb.Cols(c).Name \'列名作为标题 rt.Cells(0,c).Style.TextAlignHorz = prt.AlignHorzEnum.Center \'标题内容水平居中 rt.Cols(c).Width = tb.Cols(c).PrintWidth \'列宽等于实际列宽 If tb.Cols(c).IsNumeric OrElse tb.Cols(c).IsDate Then \'如果是数值或日期列 rt.Cols(c).Style.TextAlignHorz = prt.AlignHorzEnum.Right \'数据水平靠右 End If For r As Integer = 0 To tb.Rows.Count -1 \'开始填入该列内容 rt.Cells(r + 1, c).Text = tb(r,c) Next Next \'rt.X = "(Parent.Width - Width) / 2 + 25.4" \'25.4是Doc.PageSetting.LeftMargin的值,如果改了这个值,这里相应改改 rt.x = CExp("(Parent.Width - Width) / 2 + {0}", doc.PageSetting.LeftMargin) rt.Style.Gridlines.All = New prt.Linedef(Color.Gray) \'灰色网格线 rt.CellStyle.Spacing.All = 0.5 \'单元格内距设为0.5毫米 rt.Rows(0).Style.TextAlignHorz = prt.AlignHorzEnum.Center \'第一行内容水平居中 rt.RowGroups(0,1).Header = prt.TableHeaderEnum.All \'利用行组,将第一行设为表头 doc.Body.Children.Add(rt) \'将表格加入到报表 doc.Preview() rx.Style.Spacing.Bottom = 30 \'和下面的对象(表格)距离3 我设置这个属性不好用,表格不向下移动 |
-- 作者:有点蓝 -- 发布时间:2019/11/12 16:51:00 -- rx.Style.Spacing.Bottom = 30 改为 rt.y = "Prev.Bottom + 30"
|