Foxtable(狐表)用户栏目专家坐堂 → 文章套打


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

主题:文章套打

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


加好友 发短信
等级:一尾狐 帖子:400 积分:3961 威望:0 精华:0 注册:2009/4/28 7:39:00
  发帖心情 Post By:2010/1/10 21:36:00 [只看该作者]

需1张纸(如A4纸)设计2个证书的方法
[此贴子已经被作者于2010-1-10 21:36:26编辑过]

 回到顶部
美女呀,离线,留言给我吧!
yangming
  12楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2010/1/10 23:01:00 [只看该作者]

For Each dr As DataRow In DataTables("成绩表").DataRows '遍历教师安排表所有列,所有行,将数据写入临时表
    Dim rp As New RtfPrinter("D:\狐表文件\奖__状\奖  状.rtf")
    rp.Replace("{班级}", dr("班级") & "班")
    rp.Replace("{姓名}", dr("姓名"))
     rp.PageSetting.Width = 210 '纸张宽度为210毫米
    rp.PageSetting.Height = 130 '纸张高度为130毫米
    rp.PageSetting.LeftMargin = 10 '设置左边距
    rp.PageSetting.RightMargin = 10 '设置右边距
    rp.PageSetting.TopMargin = 10 '设置上边距
    rp.PageSetting.BottomMargin = 10 '设置下边距
    rp.Preview()
Next

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


加好友 发短信
等级:一尾狐 帖子:400 积分:3961 威望:0 精华:0 注册:2009/4/28 7:39:00
  发帖心情 Post By:2010/1/11 9:23:00 [只看该作者]

谢谢杨版!目前文章套打有两个方面需完善:
1、打印预览只能一个证书一个证书预览,若能一次预览所有证书情况最好。
2、1张纸上打印多张证书问题。
若能改进以上两点,FOXTABLE套打功能将强于邮件合并类功能。现在只有看贺老师愿不愿改进了。

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33951 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2010/1/11 10:07:00 [只看该作者]

一次性预览那么多干嘛,如果真需要用流程语句呀。

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


加好友 发短信
等级:一尾狐 帖子:400 积分:3961 威望:0 精华:0 注册:2009/4/28 7:39:00
  发帖心情 Post By:2010/1/11 10:19:00 [只看该作者]

类似“通知”、“成绩通知单”、“录取通知书”、“证书”等批量处理很有必要。

 回到顶部
美女呀,离线,留言给我吧!
yangming
  16楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2010/1/11 12:46:00 [只看该作者]

类似这种东东用专业报表不是更简单?

Dim doc As New PrintDoc '定义一个报表
Dim tbl As Table = Tables("成绩表")
For i as Integer = tbl.TopRow To tbl.BottomRow
    Dim rw As Row = tbl.Rows(i)
    Dim ra As New prt.RenderArea '定义一个容器
    Dim s,s1,s2 As String '定义字符变量
    ra.CanSplitVert = False '禁止容器因为分页而被垂直分割
    Dim rt As prt.RenderText '定义一个文本对象
    s = " ".PadLeft(4)&"高二"& rw("班级")&"班 " &  rw("姓名") & ":" & Chr(13) & Chr(10)
    s = s & "   在半期考试中,你荣获年级前茅,特发此证,以资鼓励."& Chr(13) & Chr(10)
    s = s & " ".PadLeft(40)& "高2010级年级组"& Chr(13) & Chr(10)
    s = s & " ".PadLeft(42)&  "2010年1月9日"
    For ii As Integer = 1 to 2
        Dim rx As New prt.RenderText '定义一个文本对象
        '加入标题
        rx.text = "奖  状"
        rx.Style.FontBold = True '字体加粗
        rx.Style.FontSize = 48 '大体大小为16磅
        rx.Style.TextAlignHorz = prt.AlignHorzEnum.Center '水平居中排列
        rx.Style.Spacing.Bottom = 3 '和下面的对象(表格)距离3毫米
        ra.Children.Add(rx) '加入到容器中
        rt = New prt.RenderText
        rt.Text = s '设置文本对象的内容
        rt.Style.TextIndent = 9 '首行缩进9毫米
        rt.Style.Spacing.Top = 5 '每段间隔5毫米
        rt.Style.LineSpacing = 150 '1.5倍行距
        rt.Style.FontSize = 22
        ra.Children.Add(rt) '加入到容器中
        rt.Style.Spacing.Bottom = 30
    Next
    Doc.Body.ChildRen.Add(ra) '将容器加入到报表中
Next
Doc.Preview() '预览报表


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


加好友 发短信
等级:一尾狐 帖子:400 积分:3961 威望:0 精华:0 注册:2009/4/28 7:39:00
  发帖心情 Post By:2010/1/11 17:18:00 [只看该作者]

谢谢杨版的热心指点!上面代码有点问题------同一页纸打印两个证书相同(实际目的是节约纸,应不同)。

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


加好友 发短信
等级:一尾狐 帖子:400 积分:3961 威望:0 精华:0 注册:2009/4/28 7:39:00
  发帖心情 Post By:2010/1/11 17:24:00 [只看该作者]

由于“通知”、“成绩通知单”、“录取通知书”、“证书”等批量处理大都属于临时性的,一年就几次。感觉还是贺老师改善一下套打功能为好。

 回到顶部
美女呀,离线,留言给我吧!
yangming
  19楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2010/1/11 18:19:00 [只看该作者]

Dim doc As New PrintDoc '定义一个报表
Dim tbl As Table = Tables("成绩表")
Dim n As Integer= (tbl.BottomRow-tbl.TopRow)+1 Mod 2
n = n Mod 2
Dim m As Integer
MessageBox.Show("n:"& n)
For i as Integer = tbl.TopRow To tbl.BottomRow
   
    Dim rw As Row = tbl.Rows(i)
    Dim rw1 As Row = tbl.Rows(i+1)
    Dim ra As New prt.RenderArea '定义一个容器
    Dim s,s1 As String '定义字符变量
    ra.CanSplitVert = False '禁止容器因为分页而被垂直分割
    Dim rt As prt.RenderText '定义一个文本对象
    s = " ".PadLeft(4)&"高二"& rw("班级")&"班 " &  rw("姓名") & ":" & Chr(13) & Chr(10)
    s = s & "   在半期考试中,你荣获年级前茅,特发此证,以资鼓励."& Chr(13) & Chr(10)
    s = s & " ".PadLeft(40)& "高2010级年级组"& Chr(13) & Chr(10)
    s = s & " ".PadLeft(42)&  "2010年1月9日"
    s1 = " ".PadLeft(4)&"高二"& rw1("班级")&"班 " &  rw1("姓名") & ":" & Chr(13) & Chr(10)
    s1 = s1 & "   在半期考试中,你荣获年级前茅,特发此证,以资鼓励."& Chr(13) & Chr(10)
    s1 = s1 & " ".PadLeft(40)& "高2010级年级组"& Chr(13) & Chr(10)
    s1 = s1 & " ".PadLeft(42)&  "2010年1月9日"
    If n=0
        m=2
    Else
        m=1
    End If
    For ii As Integer = 1 to m
        Dim rx As New prt.RenderText '定义一个文本对象
        '加入标题
        rx.text = "奖  状"
        rx.Style.FontBold = True '字体加粗
        rx.Style.FontSize = 48 '大体大小为16磅
        rx.Style.TextAlignHorz = prt.AlignHorzEnum.Center '水平居中排列
        rx.Style.Spacing.Bottom = 3 '和下面的对象(表格)距离3毫米
        ra.Children.Add(rx) '加入到容器中
        rt = New prt.RenderText
        If ii=1 Then
            rt.Text = s '设置文本对象的内容
        Else
            rt.Text = s1 '设置文本对象的内容
        End If
        rt.Style.TextIndent = 9 '首行缩进9毫米
        rt.Style.Spacing.Top = 5 '每段间隔5毫米
        rt.Style.LineSpacing = 150 '1.5倍行距
        rt.Style.FontSize = 22
        ra.Children.Add(rt) '加入到容器中
        rt.Style.Spacing.Bottom = 30
    Next
If m=2
    i=i+1   
        End If
    Doc.Body.ChildRen.Add(ra) '将容器加入到报表中
Next
Doc.Preview() '预览报表

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


加好友 发短信
等级:一尾狐 帖子:400 积分:3961 威望:0 精华:0 注册:2009/4/28 7:39:00
  发帖心情 Post By:2010/1/11 19:10:00 [只看该作者]

谢谢杨姐!学习了。

 回到顶部
总数 27 上一页 1 2 3 下一页