以文本方式查看主题 - Foxtable(狐表) (http://www.foxtable.com/bbs/index.asp) -- 专家坐堂 (http://www.foxtable.com/bbs/list.asp?boardid=2) ---- 分页打印 (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=119003) |
-- 作者:刘林 -- 发布时间:2018/5/15 22:12:00 -- 分页打印 Dim rb1 As WinForm.RadioButton = e.Form.Controls("RadioButton1") Dim rb2 As WinForm.RadioButton = e.Form.Controls("RadioButton2") If rb1.Checked=True Dim doc As New PrintDoc \'定义一个报表 Doc.PageSetting.PaperKind=9 doc.Stacking = prt.StackingRulesEnum.InlineLeftToRight Doc.PageSetting.leftMargin = 15 Doc.PageSetting.rightMargin = 15 Doc.PageSetting.TopMargin =5 Doc.PageSetting.BottomMargin =12 Dim ck As WinForm.CheckBox =e.Form.Controls("checkbox1") Dim Rows As List(Of DataRow) Dim tb As Table=Tables("初中报名_table5") tb.sort= "考试室,考号" Dim dr As DataRow = tb.DataTable.Find("考试室 is null") Dim regions As List(of String()) If dr Is Nothing Regions = tb.DataTable.GetValues("考试名称|单位名称|考试室","","考试室") \'\'\'\'改后句子 Else Regions = tb.DataTable.GetValues("考试名称|单位名称|年级") \'\'\'\'改后句子 End If Dim rm As prt.RenderEmpty For Each region As String() In Regions If ck.Checked= True rm = new prt.RenderEmpty \'定义一个新的空对象 rm.BreakBefore = prt.BreakEnum.Page \'打印前换页 doc.Body.Children.Add(rm) End If If dr Is Nothing Rows = tb.DataTable.Select("[单位名称] = \'" & region(1) & "\'And [考试室] =\'" & region(2) & "\'and [考试名称] =\'" & region(0) & "\'","考试室,考号") Else Rows = tb.DataTable.Select("[单位名称] = \'" & region(1) & "\'And [年级] =\'" & region(2) & "\'and [考试名称] =\'" & region(0) & "\'","考试室,考号") End If For r As Integer = 0 To Rows.Count -1 Dim ra As New prt.RenderArea Dim rt As prt.RenderText ra.Width = 60 \'宽度53毫米 ra.Height = 40 \'高度24毫米 ra.Style.Spacing.All = 0 ra.Style.Borders.All = New prt.Linedef(0, Color.Red) \'设置边框 ra.SplitHorzBehavior = prt.SplitBehaviorEnum.Never \'禁止水平分割 ra.SplitVertBehavior = prt.SplitBehaviorEnum.Never \'禁止垂直分割 Doc.Body.ChildRen.Add(ra) \'将容器加入到报表中 rt = New prt.RenderText rt.Text = Rows(r)("考试名称") & "考试" rt.Style.Font=New Font("黑体", 18, FontStyle.Bold) rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center rt.Y = 9 ra.Children.Add(rt) \'添加到容器中 rt = New prt.RenderText rt.Text = Rows(r)("考试室") rt.Style.Font=New Font("黑体", 8, FontStyle.Bold) rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center rt.Y = 18 ra.Children.Add(rt) \'添加到容器中 rt = New prt.RenderText rt.Text = Rows(r)("学校班级") rt.Style.Font=New Font("黑体", 8, FontStyle.Bold) rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center rt.Y = 23 ra.Children.Add(rt) \'添加到容器中 rt = New prt.RenderText rt.Text = Rows(r)("考号") & " " & Rows(r)("姓名") rt.Style.Font=New Font("黑体", 15, FontStyle.Bold) rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center rt.Y = 28 ra.Children.Add(rt) \'添加到容 Next Next Doc.Preview() \'预览报表 End If If rb2.Checked=True Dim doc As New PrintDoc \'定义一个报表 Doc.PageSetting.PaperKind=9 doc.Stacking = prt.StackingRulesEnum.InlineLeftToRight Doc.PageSetting.leftMargin = 0 Doc.PageSetting.rightMargin = 0 Doc.PageSetting.TopMargin =0 Doc.PageSetting.BottomMargin =0 Dim ck As WinForm.CheckBox =e.Form.Controls("checkbox1") Dim Rows As List(Of DataRow) Dim tb As Table=Tables("初中报名_table5") tb.sort= "考试室,考号" Dim dr As DataRow = tb.DataTable.Find("考试室 is null") Dim regions As List(of String()) If dr Is Nothing Regions = tb.DataTable.GetValues("考试名称|单位名称|考试室","","考试室") \'\'\'\'改后句子 Else Regions = tb.DataTable.GetValues("考试名称|单位名称|年级") \'\'\'\'改后句子 End If Dim rm As prt.RenderEmpty For Each region As String() In Regions If ck.Checked= True rm = new prt.RenderEmpty \'定义一个新的空对象 rm.BreakBefore = prt.BreakEnum.Page \'打印前换页 doc.Body.Children.Add(rm) End If If dr Is Nothing Rows = tb.DataTable.Select("[单位名称] = \'" & region(1) & "\'And [考试室] =\'" & region(2) & "\'and [考试名称] =\'" & region(0) & "\'","考试室,考号") Else Rows = tb.DataTable.Select("[单位名称] = \'" & region(1) & "\'And [年级] =\'" & region(2) & "\'and [考试名称] =\'" & region(0) & "\'","考试室,考号") End If For r As Integer = 0 To Rows.Count -1 Dim ra As New prt.RenderArea Dim rt As prt.RenderText ra.Width = 70 \'宽度53毫米 ra.Height = 29.5 \'高度24毫米 ra.Style.Spacing.All = 0 ra.Style.Borders.All = New prt.Linedef(0, Color.Red) \'设置边框 ra.SplitHorzBehavior = prt.SplitBehaviorEnum.Never \'禁止水平分割 ra.SplitVertBehavior = prt.SplitBehaviorEnum.Never \'禁止垂直分割 Doc.Body.ChildRen.Add(ra) \'将容器加入到报表中 rt = New prt.RenderText rt.Text = Rows(r)("考试名称") & "考试" rt.Style.Font=New Font("黑体", 19, FontStyle.Bold) rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center rt.Y = 10 ra.Children.Add(rt) \'添加到容器中 rt = New prt.RenderText rt.Text = Rows(r)("考号") & " " & Rows(r)("姓名") rt.Style.Font=New Font("黑体", 16, FontStyle.Bold) rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center rt.Y = 19 ra.Children.Add(rt) \'添加到容 Next Next Doc.Preview() \'预览报表 End If 老师,设计了两种情况,rb1.checked 和rb2.checked 都要实现不同考试室分页,现在是rb2.chedked时不能分页呢,错在哪里
|
-- 作者:有点蓝 -- 发布时间:2018/5/15 22:30:00 -- 看不出什么问题,测试可以分页,上传实例测试 |
-- 作者:刘林 -- 发布时间:2018/5/15 22:32:00 -- 就是当选择rb2时,就不能不同考试室分页,选rb1时是可以 |
-- 作者:有点蓝 -- 发布时间:2018/5/15 22:34:00 -- 请上传实例测试 |