以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 打印标签如何能根据数量打印 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=142476) |
||||
-- 作者:whtb999 -- 发布时间:2019/10/28 15:36:00 -- 打印标签如何能根据数量打印 老师,我写一个测试程序,怎么根据每行数据里的数量打印标签,比如产品数量是10,就打印10个标签,还有就如何也把条码也可以根据报表绑定的方式显示出来。窗口中我也设置了一个按钮。
|
||||
-- 作者:有点蓝 -- 发布时间:2019/10/28 15:53:00 -- 这种不能使用绑定,写代码遍历打印 Dim doc As New PrintDoc \'定义一个报表 Doc.PageSetting.LeftMargin = 0 \'设置左边距 Doc.PageSetting.RightMargin = 0 \'设置右边距 Doc.PageSetting.TopMargin = 0 \'设置上边距 Doc.PageSetting.BottomMargin = 0 \'设置下边距 Doc.PageSetting.Width = 40 Doc.PageSetting.Height= 40 \'Doc.Stacking = prt.StackingRulesEnum.InlineLeftToRight Dim ra As New prt.RenderArea Dim rx As prt.RenderText \'定义一个文本对象 Dim rm As prt.RenderImage \'定义一个图形队形 Dim Currow As Row Dim tbl As Table = Tables("表A") For i As Integer = 0 To tbl.Rows.Count - 1 CurRow = tbl.rows(i) For j As Integer = 1 To CurRow("数量") Dim rep As New prt.RenderEmpty \'定义一个新的空对象 rep.BreakBefore = prt.BreakEnum.Page \'打印前换页 doc.Body.Children.Add(rep ) \'加入到报表中 rx = new prt.RenderText rx.Text = CurRow("名称") rx.x = 1 rx.y = 1 doc.body.Children.Add(rx) rx = new prt.RenderText rx.Text = CurRow("条码") rx.x = 1 rx.y = 5 doc.body.Children.Add(rx) Next Next Doc.Preview() \'预览报表 |
||||
-- 作者:whtb999 -- 发布时间:2019/10/28 17:05:00 -- 首先,谢谢老师,我现在把条码也加入里面了,但是怎么能实现一张A4打印多列标签呢 Dim doc As New PrintDoc \'定义一个报表 Doc.PageSetting.LeftMargin = 0 \'设置左边距 Doc.PageSetting.RightMargin = 0 \'设置右边距 Doc.PageSetting.TopMargin = 0 \'设置上边距 Doc.PageSetting.BottomMargin = 0 \'设置下边距 Doc.PageSetting.Width = 40 Doc.PageSetting.Height= 40 Dim rg As prt.RenderGraphics Dim Bar As New BarCodeBuilder \'Bar.Symbology = Barpro.Symbology.QRCode Bar.Symbology = Barpro.Symbology.Code39 \'Doc.Stacking = prt.StackingRulesEnum.InlineLeftToRight Dim ra As New prt.RenderArea Dim rx As prt.RenderText \'定义一个文本对象 Dim rm As prt.RenderImage \'定义一个图形队形 Dim Currow As Row Dim tbl As Table = Tables("表A") For i As Integer = 0 To tbl.Rows.Count - 1 CurRow = tbl.rows(i) For j As Integer = 1 To CurRow("数量") Dim rep As New prt.RenderEmpty \'定义一个新的空对象 rep.BreakBefore = prt.BreakEnum.Page \'打印前换页 doc.Body.Children.Add(rep ) \'加入到报表中 rx = new prt.RenderText rx.Text = CurRow("名称") rx.x = 1 rx.y = 1 doc.body.Children.Add(rx) bar.Code = CurRow("条码") rg = new prt.RenderGraphics bar.DrawOnCanvas(rg.Graphics,2,3,1) rg.Style.Spacing.All = 3 Doc.Body.Children.Add(rg) Next Next Doc.Preview() \'预览报表 |
||||
-- 作者:有点蓝 -- 发布时间:2019/10/28 20:03:00 -- Dim doc As New PrintDoc \'定义一个报表 Doc.PageSetting.TopMargin = 5 \'设置上边距 Doc.PageSetting.BottomMargin = 5 \'设置下边距 \'Doc.Stacking = prt.StackingRulesEnum.InlineLeftToRight Dim ra As New prt.RenderArea Dim rx As prt.RenderText \'定义一个文本对象 Dim rm As prt.RenderImage \'定义一个图形队形 Dim Currow As Row Dim tbl As Table = Tables("表A") Dim rep As prt.RenderEmpty Dim idx As Integer = 0 Dim kk As Integer = 0 For i As Integer = 0 To tbl.Rows.Count - 1 CurRow = tbl.rows(i) For j As Integer = 1 To CurRow("数量") Step 4 For k As Integer = 0 To math.min(3,CurRow("数量") - j) If kk > 3 Then kk = 0 idx += 1 End If If idx > 6 Then rep = New prt.RenderEmpty \'定义一个新的空对象 rep.BreakBefore = prt.BreakEnum.Page \'打印前换页 doc.Body.Children.Add(rep ) \'加入到报表中 kk = 0 idx = 0 End If rx = new prt.RenderText rx.SplitVertBehavior = prt.SplitBehaviorEnum.Never rx.Text = CurRow("名称") rx.x = kk * 50 + 5 rx.y = idx * 40 + 5 doc.body.Children.Add(rx) rx = new prt.RenderText rx.Text = CurRow("条码") rx.x = kk * 50 + 5 rx.y = idx * 40 + 15 doc.body.Children.Add(rx) kk += 1 Next Next Next Doc.Preview() \'预览报表
|
||||
-- 作者:whtb999 -- 发布时间:2019/10/29 8:30:00 -- 首先,谢谢老师,您实现的就是我要的效果,但是我加入了条码,就不能把条码显示到对应的每一个标签上来了。您帮我看一下 Dim doc As New PrintDoc \'定义一个报表 Doc.PageSetting.TopMargin = 5 \'设置上边距 Doc.PageSetting.BottomMargin = 5 \'设置下边距 \'Doc.Stacking = prt.StackingRulesEnum.InlineLeftToRight Dim ra As New prt.RenderArea Dim rx As prt.RenderText \'定义一个文本对象 Dim rm As prt.RenderImage \'定义一个图形队形 Dim Currow As Row Dim tbl As Table = Tables("表A") Dim rep As prt.RenderEmpty Dim idx As Integer = 0 Dim kk As Integer = 0 For i As Integer = 0 To tbl.Rows.Count - 1 CurRow = tbl.rows(i) For j As Integer = 1 To CurRow("数量") Step 4 For k As Integer = 0 To math.min(3,CurRow("数量") - j) If kk > 3 Then kk = 0 idx += 1 End If If idx > 6 Then rep = New prt.RenderEmpty \'定义一个新的空对象 rep.BreakBefore = prt.BreakEnum.Page \'打印前换页 doc.Body.Children.Add(rep ) \'加入到报表中 kk = 0 idx = 0 End If rx = new prt.RenderText rx.SplitVertBehavior = prt.SplitBehaviorEnum.Never rx.Text = CurRow("名称") rx.x = kk * 50 + 5 rx.y = idx * 40 + 5 doc.body.Children.Add(rx) Dim rg As prt.RenderGraphics Dim Bar As New BarCodeBuilder \'Bar.Symbology = Barpro.Symbology.QRCode Bar.Symbology = Barpro.Symbology.Code39 bar.Code = CurRow("条码") rg = new prt.RenderGraphics bar.DrawOnCanvas(rg.Graphics,kk*50+5,idx*40+15,1) rg.Style.Spacing.All = 3 \'rx = new prt.RenderText \'rx.Text = CurRow("条码") \'rx.x = kk * 50 + 5 \'rx.y = idx * 40 + 15 doc.body.Children.Add(rg) kk += 1 Next Next Next Doc.Preview() \'预览报表 |
||||
-- 作者:有点蓝 -- 发布时间:2019/10/29 9:15:00 -- rx = new prt.RenderText rx.SplitVertBehavior = prt.SplitBehaviorEnum.Never rx.Text = CurRow("名称") rx.x = kk * 50 + 5 rx.y = idx * 40 + 5 doc.body.Children.Add(rx) Dim rg As prt.RenderGraphics Dim Bar As New BarCodeBuilder \'Bar.Symbology = Barpro.Symbology.QRCode Bar.Symbology = Barpro.Symbology.Code39 bar.Code = CurRow("条码") rg = new prt.RenderGraphics bar.DrawOnCanvas(rg.Graphics,0,0,1) rg.Style.Spacing.All = 3 rg.x = kk * 50 + 5 rg.y = idx * 40 + 15 doc.body.Children.Add(rg) kk += 1
|