以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 标签间隔 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=114428) |
-- 作者:刘林 -- 发布时间:2018/2/6 9:48:00 -- 标签间隔 Dim tb As Table=Tables("学生信息") Dim rs As List(of Row) = tb.GetCheckedRows() If rs.Count>=1 For Each r As Row In tb.getcheckedrows() If r("学生姓名") = Nothing Or r("就读方式") = Nothing Or r("班级")= Nothing Or r("相片") = Nothing messagebox.show("您所勾选的记录存在学生姓名或就读方式或班级或相片等必要信息,请填好相关信息再打印") Return End If Next Dim doc As New PrintDoc \'定义一个报表 Dim Rows As List(Of DataRow) doc.Stacking = prt.StackingRulesEnum.InlineLeftToRight Doc.PageSetting.leftMargin = 10 Doc.PageSetting.rightMargin = 0 Doc.PageSetting.TopMargin =10 Doc.PageSetting.BottomMargin =0 For Each r As Row In tb.getcheckedrows() Dim ra As New prt.RenderArea Dim rt As prt.RenderText ra.Width = 90 \'宽度53毫米 ra.Height = 55 \'高度24毫米 ra.Style.Spacing.all = 6 ra.Style.Borders.All = New prt.Linedef(0.1, Color.Red) \'设置边框 ra.SplitHorzBehavior = prt.SplitBehaviorEnum.Never \'禁止水平分割 ra.SplitVertBehavior = prt.SplitBehaviorEnum.Never \'禁止垂直分割 Doc.Body.ChildRen.Add(ra) \'将容器加入到报表中 rt = New prt.RenderText rt.Text = r("学校名称") rt.Style.Font=New Font("黑体", 15, FontStyle.Bold) If r("就读方式")="住校" rt.Style.TextColor=Color.red Else rt.Style.TextColor=Color.blue End If rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center rt.Y = 6 ra.Children.Add(rt) \'添加到容器中 rt = New prt.RenderText rt.Text = "姓名:" & r("学生姓名") rt.Style.Font=New Font("黑体", 13, FontStyle.Bold) If r("就读方式")="住校" rt.Style.TextColor=Color.red Else rt.Style.TextColor=Color.blue End If rt.Y =22 rt.x=35 ra.Children.Add(rt) \'添加到容器中 rt = New prt.RenderText rt.Text = "班级:" &r("班级") rt.Style.Font=New Font("黑体", 13, FontStyle.Bold) If r("就读方式")="住校" rt.Style.TextColor=Color.red Else rt.Style.TextColor=Color.blue End If rt.Y = 31 rt.x= 35 ra.Children.Add(rt) \'添加到容器 rt = New prt.RenderText rt.Text = "备注:" & r("就读方式") rt.Style.Font=New Font("黑体", 13, FontStyle.Bold) If r("就读方式")="住校" rt.Style.TextColor=Color.red Else rt.Style.TextColor=Color.blue End If rt.Y = 40 rt.x=35 ra.Children.Add(rt) \'添加到容 Dim rm As New prt.RenderImage() rm.Image= GetImage(projectPath & "remotefiles" & r("相片")) rm.Width=30 rm.Height=40 rm.Y = 15 ra.Children.Add(rm) \'添加到容 r.Checked = False Doc.Preview() \'预览报表 Else PopMessage("你根本没在表格的最左边方框内勾选要打印的记录哟","友情提示", PopIconEnum.Infomation, 3) End If 老师,请问当 ra.Style.Spacing.all = 6时出现挤占每张图片的大小了,当 ra.Style.Spacing.all = 0时大小是正常的,但没有空隙,不方便裁剪,我想达到有空隙,但不影响每张图片大小,请问怎么办? [此贴子已经被作者于2018/2/6 10:43:45编辑过]
|
-- 作者:刘林 -- 发布时间:2018/2/6 9:51:00 -- 图片间隔2 Dim tb As Table=Tables("学生信息") Dim rs As List(of Row) = tb.GetCheckedRows() If rs.Count>=1 For Each r As Row In tb.getcheckedrows() If r("学生姓名") = Nothing Or r("就读方式") = Nothing Or r("班级")= Nothing Or r("相片") = Nothing messagebox.show("您所勾选的记录存在学生姓名或就读方式或班级或相片等必要信息,请填好相关信息再打印") Return End If Next Dim doc As New PrintDoc \'定义一个报表 Dim Rows As List(Of DataRow) doc.Stacking = prt.StackingRulesEnum.InlineLeftToRight Doc.PageSetting.leftMargin = 10 Doc.PageSetting.rightMargin = 0 Doc.PageSetting.TopMargin =10 Doc.PageSetting.BottomMargin =0 For Each r As Row In tb.getcheckedrows() Dim ra As New prt.RenderArea Dim rt As prt.RenderText ra.Width = 90 \'宽度53毫米 ra.Height = 55 \'高度24毫米 ra.Style.Spacing.all = 6 ra.Style.Borders.All = New prt.Linedef(0.1, Color.Red) \'设置边框 ra.SplitHorzBehavior = prt.SplitBehaviorEnum.Never \'禁止水平分割 ra.SplitVertBehavior = prt.SplitBehaviorEnum.Never \'禁止垂直分割 Doc.Body.ChildRen.Add(ra) \'将容器加入到报表中 rt = New prt.RenderText rt.Text = r("学校名称") rt.Style.Font=New Font("黑体", 15, FontStyle.Bold) If r("就读方式")="住校" rt.Style.TextColor=Color.red Else rt.Style.TextColor=Color.blue End If rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center rt.Y = 6 ra.Children.Add(rt) \'添加到容器中 rt = New prt.RenderText rt.Text = "姓名:" & r("学生姓名") rt.Style.Font=New Font("黑体", 13, FontStyle.Bold) If r("就读方式")="住校" rt.Style.TextColor=Color.red Else rt.Style.TextColor=Color.blue End If rt.Y =22 rt.x=35 ra.Children.Add(rt) \'添加到容器中 rt = New prt.RenderText rt.Text = "班级:" &r("班级") rt.Style.Font=New Font("黑体", 13, FontStyle.Bold) If r("就读方式")="住校" rt.Style.TextColor=Color.red Else rt.Style.TextColor=Color.blue End If rt.Y = 31 rt.x= 35 ra.Children.Add(rt) \'添加到容器 rt = New prt.RenderText rt.Text = "备注:" & r("就读方式") rt.Style.Font=New Font("黑体", 13, FontStyle.Bold) If r("就读方式")="住校" rt.Style.TextColor=Color.red Else rt.Style.TextColor=Color.blue End If rt.Y = 40 rt.x=35 ra.Children.Add(rt) \'添加到容 Dim rm As New prt.RenderImage() rm.Image= GetImage(projectPath & "remotefiles" & r("相片")) rm.Width=30 rm.Height=40 rm.Y = 15 ra.Children.Add(rm) \'添加到容 r.Checked = False Next Doc.Preview() \'预览报表 Else PopMessage("你根本没在表格的最左边方框内勾选要打印的记录哟","友情提示", PopIconEnum.Infomation, 3) End If 这是图片正常,但没有间隔 这是有间隔,但图片大小变了
[此贴子已经被作者于2018/2/6 10:44:08编辑过]
|
-- 作者:有点甜 -- 发布时间:2018/2/6 9:52:00 -- 不要设置all,你可以设置bottom等,参考
http://www.foxtable.com/webhelp/scr/1173.htm
|
-- 作者:刘林 -- 发布时间:2018/2/6 9:57:00 -- 试过,一样的 |
-- 作者:刘林 -- 发布时间:2018/2/6 9:58:00 -- left,right,bottom都试过,都要改变图片大小 |
-- 作者:有点甜 -- 发布时间:2018/2/6 9:59:00 -- 以下是引用刘林在2018/2/6 9:58:00的发言:
left,right,bottom都试过,都要改变图片大小
那你就把ra的高度height调高一些 |
-- 作者:刘林 -- 发布时间:2018/2/6 10:02:00 -- ra.Width = 90 ra.Height = 55 是固定值也就是名片大小 ,但要把每两张间隙要留出来,方便裁剪,实际是做批量印学生证,大小不能变
|
-- 作者:有点甜 -- 发布时间:2018/2/6 10:03:00 -- 调整测试过再说 |
-- 作者:刘林 -- 发布时间:2018/2/6 10:12:00 -- 此主题相关图片如下:qq图片20180206100826.png 这是将 ra.Style.Spacing.left = 3 ra.Style.Spacing.bottom =3的结果,我发现是间隙调了,同时图片也小了这样多,我用先后图片比对了的
|
-- 作者:有点甜 -- 发布时间:2018/2/6 10:14:00 -- 调整好ra的宽高width、height。 |