以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  请老师指点专业报表代码表标题分页打印设置..  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=2373)

--  作者:菜鸟foxtable
--  发布时间:2009/4/9 13:56:00
--  请老师指点专业报表代码表标题分页打印设置..
请问如何让表标题分页后重复出现?类似表头那样?如图图片点击可在新窗口打开查看



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

=======================以下问题虽然解决,但出现一个新问题===================

小计金额
不知道应该怎么写....请老师指点....

另外感觉应该代码可以更精简...麻烦老师精简...

代码如下,

Dim doc As New PrintDoc
Dim rt As Prt.RenderTable
Dim tbl As Table = Tables("领药单")
Dim Rows As List(Of DataRow)
Dim Regions As List(Of String) = tbl.DataTable.GetUniqueValues("","床位")
doc.Pagesetting.LandScape = false
For Each Region As String In Regions
    Dim rs As New prt.RenderText
    Dim dr As DataRow = datatables("住院信息").find("[床位] = \'" & region & "\'")
    rs.Text = "床位:   " & dr("床位") & "   姓名:  " & dr("姓名") & "   住院号 :  " & dr("住院号")
    rs.Style.FontSize = 10
    rs.Style.FontBold = True
    doc.Body.Children.Add(rs)
    rt = New prt.RenderTable
    rt.Style.TextAlignVert = prt.AlignVertEnum.Center
    rt.Style.GridLines.Top = New prt.LineDef(0.4,Color.Black)
    rt.Style.Spacing.Bottom = 5
    rt.CellStyle.Spacing.All = 1
    rt.Style.Font = tbl.Font
    rt.Cols(0).Width = 0
    rt.Cols(1).Width = 0
    rt.Cols(2).Width = 0
    rt.Cols(3).Width = 40
    Rows = tbl.Datatable.Select("[床位] = \'" & Region & "\'")
   
    For c As integer = 0 To tbl.Cols.Count - 1
        rt.Cells(0,c).Text = tbl.Cols(c).Name
        For r As integer = 0 To Rows.Count -1
            rt.Cells(r + 1, c).Text = rows(r)(tbl.Cols(c).Name)
        Next
        rt.Cells(tbl.Rows.Count,8).Text = "小计"
        rt.Cells(tbl.Rows.Count,9).Text = tbl.compute("SUM(金额)","[床位] = \'" & Region & "\'")
    Next
   
    rt.RowGroups(0,1).Header = prt.TableHeaderEnum.All
    rt.Style.Gridlines.Horz = New prt.Linedef(0.3,Color.LightGray)
    doc.Body.Children.Add(rt)
   
Next

doc.preview()

表格如下图:


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


效果如下图:

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

[此贴子已经被作者于2009-4-11 22:25:41编辑过]

--  作者:狐狸爸爸
--  发布时间:2009/4/9 15:03:00
--  
For c As integer = 0 To tbl.Cols.Count - 1
        rt.Cells(0,c).Text = tbl.Cols(c).Name
        For r As integer = 0 To Rows.Count -1
            rt.Cells(r + 1, c).Text = rows(r)(tbl.Cols(c).Name)
        Next
Next
rt.Cells(tbl.Cols.Count,8).Text = "小计"
rt.Cells(tbl.Cols.Count,9).Text = tbl.Compute(.......)





--  作者:菜鸟foxtable
--  发布时间:2009/4/11 17:09:00
--  
谢谢老爹指点,,再问一个问题....

如果表格跨页......换页时,项目/剂量/用法/标题栏会重复出.....但床位,姓名,住院号,一栏却不会出现.....
.

问:床位,姓名,住院号,一栏如何重复出现?
--  作者:菜鸟foxtable
--  发布时间:2009/4/11 20:43:00
--  
图片点击可在新窗口打开查看
--  作者:yangming
--  发布时间:2009/4/11 21:49:00
--  

Doc.PageHeader = rs

将这段替换你下面的代码,试试


doc.Body.Children.Add(rs)


--  作者:菜鸟foxtable
--  发布时间:2009/4/11 21:52:00
--  
图片点击可在新窗口打开查看无效.........
--  作者:yangming
--  发布时间:2009/4/11 22:10:00
--  [求助]求助
我看你的代码,这段文本是做为页眉的,所以我想就不应该跨页就不显示啊
--  作者:菜鸟foxtable
--  发布时间:2009/4/11 22:22:00
--  

页眉另有代码...

这段文本只是分表的表标题.......床号/姓名/住院号/

分表的表头能分页显示....表标题就不行了...我在帮助里也没找到表标题重复显示的示例....图片点击可在新窗口打开查看

[此贴子已经被作者于2009-4-11 22:24:17编辑过]

--  作者:yangming
--  发布时间:2009/4/11 22:31:00
--  

我还是看的是一楼的代码,以为是页眉呢


--  作者:菜鸟foxtable
--  发布时间:2009/4/11 22:35:00
--  
以下是引用yangming在2009-4-11 22:31:00的发言:

我还是看的是一楼的代码,以为是页眉呢

晕...就是一楼的代码啊.....我省略了页眉页脚代码.....