Foxtable(狐表)用户栏目专家坐堂 → PRT 连续套打,贴上代码,请问如何绑定模板文件呢?


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

主题:PRT 连续套打,贴上代码,请问如何绑定模板文件呢?

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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
PRT 连续套打,贴上代码,请问如何绑定模板文件呢?  发帖心情 Post By:2014/3/4 9:20:00 [只看该作者]

PRT 连续套打,贴上代码,请问如何绑定模板文件呢? 下面的代码如何绑定模板文件呢?
假设模板文件为10.prt  或者10.doc

连续套打
如果要连续套打,必须在打印每一个单据后,能够自动换页,准备套打下一个单据。
因为套打中的对象都是直接指定坐标后加入到到表中的,所以我们只能通过插入RenderEmpty来实现换页。
下面的代码,套打选定行的员工资料卡,请在员工表中选定多行进行测试:
Dim doc As New PrintDoc '定义一个报表
Dim rx As  prt. RenderText '定义一个文本对象
Dim rm As  prt. RenderImage '定义一个图形队形
Dim Currow As Row
Dim tbl As Table = Tables("员工")
For i as Integer = tbl.TopRow To tbl.BottomRow
    CurRow = tbl.rows(i)

    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 = 51
    rx.y = 36
    doc.body.Children.Add(rx)

    rm= New prt.RenderImage
    rm.Height = 38
    rm.Width = 34
    rm.Image = GetImage(CurRow("照片"))
    rm.x= 149.5
    rm.y = 36
    doc.body.Children.Add(rm)
Next
Doc.Preview() '预览报表

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


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

请上例子.

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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
例子,问题要求如图!  发帖心情 Post By:2014/3/4 10:06:00 [只看该作者]

例子,问题要求如图!
问题:RFT预览怎么和我设计时候的格式不一样
        如何实现当复选框选择后进行连续预览及打印
        如何实现不预览而直接打印
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:rtf预览.rar

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

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


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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
这个是论坛查找的代码,可以解决定义模板及数据问题,但是出现模板和设计初的格式不一样,求解  发帖心情 Post By:2014/3/4 10:15:00 [只看该作者]

Dim tbl As Table = Tables("资料")

Dim n As Integer= (tbl.BottomRow-tbl.TopRow)+1 Mod 2

n = n Mod 2

Dim m As Integer

For i As Integer = tbl.TopRow To tbl.BottomRow

    If n=1 AndAlso i=tbl.BottomRow Then

        Dim rp As New RtfPrinter("c:\data\5.rtf")

        rp.Replace("{出生日期}", Format(cdate(Tables("资料")(i,"出生日期")),"yyyyMMdd"))

        rp.Replace("{姓名}",Tables("资料")(i,"姓名") )

        rp.Replace("{民族}",Tables("资料")(i,"民族"))

        rp.Replace("{日期}",Format(cdate(Tables("资料")(i,"开始时间")),"yyyyMMdd") )

        rp.Replace("{单位}",Tables("资料")(i,"单位"))

        rp.Replace("{原籍}",Tables("资料")(i,"现居地"))

        rp.Replace("{工作开始}",Format(cdate(Tables("资料")(i,"工作开始")),"yyyyMMdd") )

        rp.Replace("{工作结束}",Format(cdate(Tables("资料")(i,"工作结束")),"yyyyMMdd") )

        rp.Replace("{工龄}",Tables("资料")(i,"工龄") )

        rp.Replace("{工种}",Tables("资料")(i,"工种"))

        rp.Replace("{时间}",Tables("资料")(i,"时期") )

        rp.Replace("{奖金}",Tables("资料")(i,"奖金"))

        rp.Replace("{累计}",Tables("资料")(i,"累计"))

        rp.Replace("{当年}",Tables("资料")(i,"当年"))

        rp.Replace("{职业}",Tables("资料")(i,"职业"))

        rp.Replace("{资料时间}",Tables("资料")(i,"资料"))

        rp.Replace("{文化程度}",Tables("资料")(i,"文化程度"))

        rp.Preview()        

    Else

        Dim rp As New RtfPrinter("c:\data\5.rtf")

        rp.Replace("{出生日期}", Format(cdate(Tables("资料")(i,"出生日期")),"yyyyMMdd"))

        rp.Replace("{姓名}",Tables("资料")(i,"姓名") )

        rp.Replace("{民族}",Tables("资料")(i,"民族"))

        rp.Replace("{日期}",Format(cdate(Tables("资料")(i,"开始时间")),"yyyyMMdd") )

        rp.Replace("{单位}",Tables("资料")(i,"单位"))

        rp.Replace("{原籍}",Tables("资料")(i,"原籍"))

        rp.Replace("{工作开始}",Format(cdate(Tables("资料")(i,"工作开始")),"yyyyMMdd") )

        rp.Replace("{工作结束}",Format(cdate(Tables("资料")(i,"工作结束")),"yyyyMMdd") )

        rp.Replace("{工龄}",Tables("资料")(i,"工龄") )

        rp.Replace("{工种}",Tables("资料")(i,"工种"))

        rp.Replace("{时间}",Tables("资料")(i,"时期") )

        rp.Replace("{奖金}",Tables("资料")(i,"奖金"))

        rp.Replace("{累计}",Tables("资料")(i,"累计"))

        rp.Replace("{资料时间}",Tables("资料")(i,"资料"))

        rp.Replace("{当年}",Tables("资料")(i,"当年"))

        rp.Replace("{职业}",Tables("资料")(i,"职业"))

        rp.Replace("{文化程度}",Tables("资料")(i,"文化程度"))

        rp.Preview()

    End If

    i=i+1

Next


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


加好友 发短信
等级:童狐 帖子:242 积分:1920 威望:0 精华:0 注册:2012/5/14 22:26:00
  发帖心情 Post By:2014/3/4 10:36:00 [只看该作者]

用窗体,或者专业报表,貌似fx不能实现连续套打。

 回到顶部