Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共11 条记录, 每页显示 10 条, 页签: [1] [2]
[浏览完整版]

标题:请老师指点专业报表代码表标题分页打印设置..

1楼
菜鸟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编辑过]
2楼
狐狸爸爸 发表于: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(.......)




3楼
菜鸟foxtable 发表于:2009/4/11 17:09:00
谢谢老爹指点,,再问一个问题....

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

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

Doc.PageHeader = rs

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


doc.Body.Children.Add(rs)

6楼
菜鸟foxtable 发表于:2009/4/11 21:52:00
图片点击可在新窗口打开查看无效.........
7楼
yangming 发表于:2009/4/11 22:10:00
我看你的代码,这段文本是做为页眉的,所以我想就不应该跨页就不显示啊
8楼
菜鸟foxtable 发表于:2009/4/11 22:22:00

页眉另有代码...

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

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

[此贴子已经被作者于2009-4-11 22:24:17编辑过]
9楼
yangming 发表于:2009/4/11 22:31:00

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

10楼
菜鸟foxtable 发表于:2009/4/11 22:35:00
以下是引用yangming在2009-4-11 22:31:00的发言:

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

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

共11 条记录, 每页显示 10 条, 页签: [1] [2]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .02734 s, 2 queries.