Foxtable(狐表)用户栏目专家坐堂 → 标签打印


  共有5284人关注过本帖树形打印复制链接

主题:标签打印

帅哥哟,离线,有人找我吗?
嘉华
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:53 积分:601 威望:0 精华:0 注册:2013/4/19 14:59:00
标签打印  发帖心情 Post By:2013/8/15 21:55:00 [只看该作者]

 

 

设置个按钮  点击  ”打印标签“按钮

让标签内容来自表格的“型号”“批次”两个列,我的标签固定模板每页60个标签,打印的标签个数  也来自表格的列的数值,如图100个=等于打印一页+40个标签

自动打印出需要的标签个数,而不是整页打印

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table

按钮代码如何设置

图片点击可在新窗口打开查看图片点击可在新窗口打开查看

[此贴子已经被作者于2013-8-16 11:16:58编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2013/8/15 22:22:00 [只看该作者]

 你的图挂了,请正确上传图片。


 回到顶部
帅哥哟,离线,有人找我吗?
嘉华
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:53 积分:601 威望:0 精华:0 注册:2013/4/19 14:59:00
  发帖心情 Post By:2013/8/16 11:47:00 [只看该作者]

再传图片了  自己顶上去

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/8/16 11:51:00 [只看该作者]

.
图片点击可在新窗口打开查看此主题相关图片如下:上传图片请参考这里.gif
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/8/16 14:10:00 [只看该作者]

蒙一下,首先保证一页能打印60个:基本思路:

  

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目994.table


 回到顶部
帅哥哟,离线,有人找我吗?
嘉华
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:53 积分:601 威望:0 精华:0 注册:2013/4/19 14:59:00
  发帖心情 Post By:2013/8/17 11:45:00 [只看该作者]

经修改:
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目994.table


图片点击可在新窗口打开查看此主题相关图片如下:111.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:222.jpg
图片点击可在新窗口打开查看
Dim doc As New PrintDoc '定义一个报表
doc.Stacking = prt.StackingRulesEnum.InlineLeftToRight '设置排列方式
Doc.PageSetting.TopMargin = 3 '设置上边距
Doc.PageSetting.BottomMargin = 3 '设置下边距
For Each r As Row In Tables("表A").Rows
    For i As Integer = 1 To r("数量")
        Dim rt As New prt.RenderTable() '定义一个表格对象
       
        rt.Width = 31.2 '表格宽度为31.2mm
        rt.Height = 16.5 '高度16.5毫米

        rt.Style.Spacing.All = 2 '和其他对象之间的间隔为2mm
        rt.SplitHorzBehavior = prt.SplitBehaviorEnum.Never '禁止水平分割
        rt.SplitVertBehavior = prt.SplitBehaviorEnum.Never '禁止垂直分割

        rt.Cols(0).Width = 31.2
        rt.Cells(0,0).Text = r("型号")
        rt.Cells(1,0).Text = r("批次")
        doc.Body.Children.Add(rt) '将表格对象加入到报表中
        If i Mod 102 = 0 Then
            Dim rm As new prt.RenderEmpty '定一个空对象
            rm.BreakBefore = prt.BreakEnum.Page '打印前换页
            doc.Body.Children.Add(rm) '加入到报表中
        End If
    Next
    If r("数量") > 0 AndAlso r("数量") Mod 102 <> 0 AndAlso r.Index < Tables("表A").Rows.count - 1  Then 
        Dim rm As new prt.RenderEmpty '定一个空对象
        rm.BreakBefore = prt.BreakEnum.Page '打印前换页
        doc.Body.Children.Add(rm) '加入到报表中
    End If
Next
Doc.Preview() '预览报表


经过狐狸爸爸的指点:经修改测试问题如下:1.变成打印表格的全部行,而我只要打印窗口绑定表的选定行的标签内容和数量2. 打印预览中的页边距始终是默认的,而我的标签纸张是205*292 上下左右边距是4mm , 标签之间左右间距2上下为0  标签大小为 31.2*16.5mm  3.标签的内容字体能否改成“ 型号”为32号字体 “ 批次”为16号字体,文字字体为居中 

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/8/17 11:53:00 [只看该作者]

那不要循环所有行即可
参考帮助里面专业报表相关章节,都可以灵活控制的.

 回到顶部
帅哥哟,离线,有人找我吗?
嘉华
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:53 积分:601 威望:0 精华:0 注册:2013/4/19 14:59:00
  发帖心情 Post By:2013/8/17 16:17:00 [只看该作者]

Dim doc As New PrintDoc '定义一个报表
doc.PageSetting.Width = 205 '纸张宽度为100毫米
doc.PageSetting.Height = 292 '纸张高度为120毫米
Doc.PageSetting.LeftMargin = 4 '设置左边距
Doc.PageSetting.RightMargin = 4 '设置右边距
Doc.PageSetting.TopMargin = 5 '设置上边距
Doc.PageSetting.BottomMargin = 5 '设置下边距


doc.Stacking = prt.StackingRulesEnum.InlineLeftToRight '设置排列方式
For Each r As Row In Tables("表A").Rows
    For i As Integer = 1 To r("数量")
        Dim rt As New prt.RenderTable() '定义一个表格对象
       
        rt.Width = 31.2 '表格宽度为31.2mm
        rt.Height = 16.5 '高度16.5毫米


        rt.SplitHorzBehavior = prt.SplitBehaviorEnum.Never '禁止水平分割
        rt.SplitVertBehavior = prt.SplitBehaviorEnum.Never '禁止垂直分割

        rt.Cols(0).Width = 31.2
        rt.Cells(0,0).Text = r("型号")
        rt.Style.FontSize = 12 '字体大小为16磅


        rt.Cells(1,0).Text = r("批次")
        rt.Style.Spacing.Right = 2 
        rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center '水平居中
        rt.Style.TextAlignVert = prt.AlignVertEnum.Center '垂直居中

        doc.Body.Children.Add(rt) '将表格对象加入到报表中
        If i Mod 102 = 0 Then
            Dim rm As new prt.RenderEmpty '定一个空对象
            rm.BreakBefore = prt.BreakEnum.Page '打印前换页
            doc.Body.Children.Add(rm) '加入到报表中
        End If
    Next
    If r("数量") > 0 AndAlso r("数量") Mod 102 <> 0 AndAlso r.Index < Tables("表A").Rows.count - 1  Then 
        Dim rm As new prt.RenderEmpty '定一个空对象
        rm.BreakBefore = prt.BreakEnum.Page '打印前换页
        doc.Body.Children.Add(rm) '加入到报表中
    End If
Next
Doc.Preview() '预览报表


谢谢大师回复:这两点还是不理解解决不了
1.变成打印表格的全部行,而我只要打印窗口绑定表的选定行的标签文本内容和数量  
2.标签的内容字号能否分别改成两个字号:(改成“ 型号”为32号字体 “ 批次”为16号字体)  
能否将上述代码 修改下?  万般感谢!

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/8/17 16:20:00 [只看该作者]

楼上我不是和你说了吗,不要循环行即可

For Each r As Row In Tables("表A").Rows 和后面的Next 去掉

改为 dim r as row = tables("表A").current

参考帮助里面专业报表相关章节,都可以灵活控制的.

 回到顶部
帅哥哟,离线,有人找我吗?
嘉华
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:53 积分:601 威望:0 精华:0 注册:2013/4/19 14:59:00
  发帖心情 Post By:2013/8/17 18:01:00 [只看该作者]

经过大师们的知道,加上胶水剪刀,也算是对专业报表的汇总学习  感谢大师们和QQ群上的朋友们,附上代码以供借鉴
Dim doc As New PrintDoc '定义一个报表
doc.PageSetting.Width = 205 '纸张宽度为100毫米
doc.PageSetting.Height = 292 '纸张高度为120毫米
Doc.PageSetting.LeftMargin = 4 '设置左边距
Doc.PageSetting.RightMargin = 4 '设置右边距
Doc.PageSetting.TopMargin = 5 '设置上边距
Doc.PageSetting.BottomMargin = 5 '设置下边距


doc.Stacking = prt.StackingRulesEnum.InlineLeftToRight '设置排列方式
Dim r As Row = Tables("表A").current '定义一个表格对象
   For i As Integer = 1 To r("数量")
      Dim rt As New prt.RenderTable() '定义一个表格对象
    
      rt.Width = 32 '表格宽度为31.2mm
      rt.Height = 16.5 '高度16.5毫米
      rt.Style.Spacing.Left = 6'设置左间隔为3毫米
      rt.Style.Spacing.Right = 4 '设置右间隔为3毫米



    
      rt.SplitHorzBehavior = prt.SplitBehaviorEnum.Never '禁止水平分割
      rt.SplitVertBehavior = prt.SplitBehaviorEnum.Never '禁止垂直分割
    
      rt.Cols(0).Width = 31.2
      rt.Cells(0,0).Text = r("型号")
      rt.Style.FontSize = 12 '字体大小为16磅
       
    
      rt.Cells(1,0).Text = r("批次")

      rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center '水平居中
      rt.Style.TextAlignVert = prt.AlignVertEnum.Center '垂直居中
      rt.cells(0,0).Style.Font =New Font("黑体",28,FontStyle.Underline)
        
      rt.cells(1,0).Style.Font =New Font("黑体",12,FontStyle.Bold)

    
    doc.Body.Children.Add(rt) '将表格对象加入到报表中
    If i Mod 102 = 0 Then
        Dim rm As new prt.RenderEmpty '定一个空对象
        rm.BreakBefore = prt.BreakEnum.Page '打印前换页
        doc.Body.Children.Add(rm) '加入到报表中
    End If
Next    
    If r("数量") > 0 AndAlso r("数量") Mod 102 <> 0 AndAlso r.Index < Tables("表A").Rows.count - 1  Then
        Dim rm As new prt.RenderEmpty '定一个空对象
        rm.BreakBefore = prt.BreakEnum.Page '打印前换页
        doc.Body.Children.Add(rm) '加入到报表中
    End If
Doc.Preview() '预览报表

 回到顶部