以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  专业报表同一行不同文本分别左右对齐的问题.(已解决)_  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=1457)

--  作者:菜鸟foxtable
--  发布时间:2008/12/20 16:44:00
--  专业报表同一行不同文本分别左右对齐的问题.(已解决)_

图片点击可在新窗口打开查看此主题相关图片如下:001.jpg
图片点击可在新窗口打开查看
标记了红色代码部份...我想两个日期在同一行,但一个左对齐,一个右对齐,怎么改?暂时只会用空格来代替.....

Dim doc As New PrintDoc
Dim rt As Prt.RenderTable
Dim rx,ry As prt.RenderText
Dim Rq As String= Forms("一日清单").Controls("DateTimePicker1").text
Dim tbl As Table = Tables("一日清单")
Dim Rows As List(Of DataRow)
Dim Regions As List(Of String) = tbl.DataTable.GetUniqueValues("","患者ID")
doc.Pagesetting.LandScape = false
For Each Region As String In Regions
    rx = New prt.RenderText
    rx.Style.FontSize = 10
    \'rx.Style.FontBold = True
    rx.Style.Spacing.Bottom = 2
    rx.Text = "患者ID: " & Region
    doc.Body.Children.Add(rx)
    ry = New prt.RenderText
    ry.Style.FontSize = 8
    \'ry.Style.FontBold = True
    ry.Style.Spacing.Bottom = 2
    ry.Text = "清单日期: " & Rq & "                                          打印日期:" & date.today
    doc.Body.Children.Add(ry)
    rt = New prt.RenderTable
    rt.Style.Font = Tables("一日清单").Font
    rt.Style.TextAlignVert = prt.AlignVertEnum.Center
    rt.Style.GridLines.All = New prt.LineDef(0.3,Color.LightGray)
    rt.Style.Spacing.Bottom = 5
    rt.CellStyle.Spacing.All = 1
    rt.Style.Font = tbl.Font
    Rows = tbl.Datatable.Select("[患者ID] = \'" & Region & "\'")
    For c As integer = 0 To tbl.Cols.Count - 1
        rt.Cells(0,c).Text = tbl.Cols(c).Name
        rt.Cols(c).Width = tbl.Cols(c).PrintWidth
        For r As integer = 0 To Rows.Count -1
        rt.Cells(r + 1, c).Text = rows(r)(tbl.Cols(c).Name)
    Next
Next
rt.RowGroups(0,1).Header = prt.TableHeaderEnum.All
doc.Body.Children.Add(rt)
Next
doc.preview()
[此贴子已经被作者于2008-12-22 10:42:03编辑过]

--  作者:gdtgl
--  发布时间:2008/12/20 18:34:00
--  

用表格...设二列,清单日期写在第一列,打印日期写在第二列,然后设置对齐方式.


--  作者:菜鸟foxtable
--  发布时间:2008/12/20 18:38:00
--  
图片点击可在新窗口打开查看又钻牛角尖了....没想到用表格....


另外问个,在每个表格结尾加上一个小计列的合计值,怎么写代码比较好?
[此贴子已经被作者于2008-12-20 18:40:28编辑过]

--  作者:gdtgl
--  发布时间:2008/12/20 18:50:00
--  
看楼主的图,应是属于分组统计,得到结果,然后分别填在需要的位置.(或者在帮助中找找答案) 思路应有不少吧...

或者应要发文件上来了...
--  作者:菜鸟foxtable
--  发布时间:2008/12/20 19:22:00
--  
g = New SubtotalGroup
g.Aggregate = AggregateEnum.Sum
g.GroupOn = "患者ID"
g.TotalOn = "小计"
g.Caption = "{0} 小计"
t.SubtotalGroups.Add(g)

分组统计代码是这样...但用在专业报表里就不会了....图片点击可在新窗口打开查看
--  作者:gdtgl
--  发布时间:2008/12/20 19:42:00
--  

呵,我在foxtable中找个文件来试试.....

[此贴子已经被作者于2008-12-20 19:55:11编辑过]

--  作者:gdtgl
--  发布时间:2008/12/20 21:05:00
--  
是合计每个患者的小计? 如果是,在主表中加一列:患者小计列(这个计算也简单),报表中的引用位置放在 :清单日期/打印日期 这行....

不知这样行不行了?
[此贴子已经被作者于2008-12-20 21:07:54编辑过]

--  作者:菜鸟foxtable
--  发布时间:2008/12/20 21:30:00
--  
Excel报表里有个方便的,不知道能否移植过来...

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

--  作者:gdtgl
--  发布时间:2008/12/20 21:32:00
--  

是5楼的情况(如果是,也不复杂,因为平时录单时就做好了计算) 还是你要做每页统计吗?


--  作者:菜鸟foxtable
--  发布时间:2008/12/20 21:39:00
--  
以下是引用gdtgl在2008-12-20 21:05:00的发言:
是合计每个患者的小计? 如果是,在主表中加一列:患者小计列(这个计算也简单),报表中的引用位置放在 :清单日期/打印日期 这行....

不知这样行不行了?
[此贴子已经被作者于2008-12-20 21:07:54编辑过]

这个好象不行吧.主表本身就有小计列,只是想把不同ID的小计列分别合计....