以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]专业报表中求如何能打印多个时间的病程记录。  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=13031)

--  作者:pc005637
--  发布时间:2011/9/25 9:30:00
--  [求助]专业报表中求如何能打印多个时间的病程记录。

设计了一个项目,目的用于打印病程记录。<br>

"病案打印"表和"病程记录"表利用"病案号"列单向关联。<br>

在专业报表管理器已经设计了一个报表模板,能分别打印各个月末的病程记录。<br>

想要的效果,如果在子表"病案打印.病程记录"中选定了数条记录的话,能同时打印出来。这样可以节省很多时间。<br>

能否实现?谢谢。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:病案打印.table


--  作者:狐狸爸爸
--  发布时间:2011/9/25 9:43:00
--  
Dim Doc As New PrintDoc
doc.PageSetting.PaperKind = 9 \'设定为A4纸
Doc.PageSetting.RightMargin = 5 \'设置右边距
doc.AutoRotate = False \'禁止自动旋转打印内容
Doc.PrinterName = "IBM Proprinter X24"
doc.Style.FontSize = 14
Doc.Style.F
Dim rx As prt.RenderText
Dim x As Integer = 0 \'定义水平偏移参数
Dim y As Integer = 0 \'定义垂直偏移参数
Dim g As Integer = 0 \'定义不同月末的垂直偏移参数
Dim CurRow As Row = Tables("病案打印").Current
Dim cnt As Integer
For  i As Integer = Tables("病案打印.病程记录").TopPosition To Tables("病案打印.病程记录").BottomPosition
    Dim CurRow6 As Row = Tables("病案打印.病程记录").Rows(i)
    cnt = cnt + 1
    Select Case CurRow6("记录类型")
        Case "三月末","六月末"
            g = 0
        Case  "四月末","七月末"
            g = 88
        Case  "五月末","八月末"
            g = 177
        Case "一月末"
            g = 132
        Case "二月末"
            g = 176
    End Select
    Dim ra As New prt.RenderArea \'定义一个容器
    ra.x = 20 + x
    ra.y = 32 + y * cnt + g
    rx = new prt.RenderText
    rx.Text = CurRow6("记录时间").Date
    rx.Style.Spacing.Bottom = 6
    ra.Children.Add(rx)
   
    rx = new prt.RenderText
    rx.Text = CurRow6("记录正文")
    rx.Style.TextIndent = 10
    rx.Width = 168
    rx.Style.LineSpacing = 220
    rx.Style.WordWrap = True
    rx.Style.Spacing.Bottom = 6
    ra.Children.Add(rx)
    doc.body.Children.Add(ra)
Next
doc.Preview()

--  作者:pc005637
--  发布时间:2011/9/25 11:35:00
--  非常感谢!
非常感谢!