Foxtable(狐表)用户栏目专家坐堂 → 专业报表问题,


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

主题:专业报表问题,

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


加好友 发短信
等级:幼狐 帖子:188 积分:1947 威望:0 精华:0 注册:2008/9/23 22:10:00
专业报表问题,  发帖心情 Post By:2009/5/26 16:51:00 [显示全部帖子]

 

Dim doc As New Printdoc
Dim
rx As prt.RenderText
Dim
rt As prt.RenderTable
Dim
Rows As List(Of DataRow)
Dim
tbl As Table = Tables("类别")

For
i as Integer = tbl.TopRow To tbl.BottomRow
    rx = New prt.RenderText
    rx.BreakBefore = prt.BreakEnum.Page
'另起一页再打印
    rx.Style.FontSize =
14
    rx.Style.FontBold =
True
    rx.Style.Spacing.Bottom =
5
    rx.Text =
"类别: " & Tables("类别").Rows(i)("类别名称")
    doc.Body.Children.Add(rx)

    rt = New prt.RenderTable
    rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center
    rt.Style.TextAlignVert = prt.AlignVertEnum.Center
    rt.Style.Borders.Bottom = New prt.LineDef(
0.3,Color.LightGray)
    rt.CellStyle.Spacing.All =
1
    rt.Cols.Count =
4
    rt.Cells(
0,0).Text = "产品名称"
    rt.Cells(
0,1).Text = "单价"
    rt.Cells(
0,2).Text = "库存量"
    rt.Cells(
0,3).Text = "订购量"
    rt.Cells(
0,4).Text = "再订购量"
    rt.Cells(
0,5).Text = "中止"
    rt.rows(
0).Style.Borders.Top = New prt.LineDef(1,Color.LightGray)
    rt.rows(
0).Style.Borders.Bottom = New prt.LineDef(1,Color.LightGray)

    Rows =
Tables("类别").Rows(i).DataRow.GetChildRows("产品")
    For
r As integer = 0 To Rows.Count - 1
        rt.Cells(r+
1,0).Text = rows(r)("产品名称")
        rt.Cells(r+
1,1).Text = rows(r)("单价")
        rt.Cells(r+
1,2).Text = rows(r)("库存量")
        rt.Cells(r+
1,3).Text = rows(r)("订购量")
        rt.Cells(r+
1,4).Text = rows(r)("再订购量")
        If
rows(r)("中止") = True Then
            Dim
rm As New prt.RenderImage
            rm.Image = getImage(
"Check.Ico")
            rm.Style.ImageAlign.AlignHorz = prt.ImageAlignHorzEnum.Center
            rm.Style.ImageAlign.StretchHorz =
False
            rm.Style.ImageAlign.StretchVert =
False
            rt.Cells(r+
1,5).RenderObject = rm
        End
If
    Next

    doc.Body.Children.Add(rt)
    rx = New prt.RenderText
    rx.Style.FontBold =
True
    rx.Style.Spacing.Top =
3
    rx.Text =
"产品数目: " & Rows.Count
    rx.Style.TextAlignHorz = prt.AlignHorzEnum.Right
    doc.Body.Children.Add(rx)

Next

doc.Preview

获取关联表数据后,我想按某列排序,应怎么样做啊?另我想某列符合条件的,打印时为空白,行吗?


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


加好友 发短信
等级:幼狐 帖子:188 积分:1947 威望:0 精华:0 注册:2008/9/23 22:10:00
  发帖心情 Post By:2009/5/26 17:06:00 [显示全部帖子]

我主表的“路名”列、“街名”列、“号码”列、“栋”列与子表的“路名”列、“街名”列、“号码”列、“栋”列关联哦


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


加好友 发短信
等级:幼狐 帖子:188 积分:1947 威望:0 精华:0 注册:2008/9/23 22:10:00
  发帖心情 Post By:2009/5/26 17:35:00 [显示全部帖子]

EXECL报表可以设置留空白行,专业报表行吗?怎么样做啊?

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


加好友 发短信
等级:幼狐 帖子:188 积分:1947 威望:0 精华:0 注册:2008/9/23 22:10:00
  发帖心情 Post By:2009/5/26 18:02:00 [显示全部帖子]

是的,应怎么样做?

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


加好友 发短信
等级:幼狐 帖子:188 积分:1947 威望:0 精华:0 注册:2008/9/23 22:10:00
  发帖心情 Post By:2009/5/27 12:20:00 [显示全部帖子]

1楼的示例中,如果想加入5行空白行,或自动满页,怎么修改代码啊?

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


加好友 发短信
等级:幼狐 帖子:188 积分:1947 威望:0 精华:0 注册:2008/9/23 22:10:00
  发帖心情 Post By:2009/5/28 11:05:00 [显示全部帖子]

就是加了也不行,也不出错,不知什么原因,帮我看看是那里不对啦?

Dim doc As New Printdoc
Dim rx As prt.RenderText
Dim rt As prt.RenderTable
Dim Rows As List(Of DataRow)
Dim tbl As Table = Tables("地址")
Doc.PageSetting.LeftMargin = 10 '设置左边距
Doc.PageSetting.RightMargin = 10 '设置右边距
Doc.PageSetting.TopMargin = 20 '设置上边距
Doc.PageSetting.BottomMargin = 20 '设置下边距


For i as Integer = tbl.TopRow To tbl.BottomRow
    rx = New prt.RenderText
    rx.BreakBefore = prt.BreakEnum.Page '另起一页再打印
    rx.Style.FontSize = 12
    rx.Style.FontBold = True
    rx.Style.Spacing.Bottom = 5
   
    rx.Style.TextAlignHorz = prt.AlignHorzEnum.Center
    rx.Text = "核查资料"
    doc.Body.Children.Add(rx)

    rt = New prt.RenderTable
    rt.rows.count = 35
    rt.Style.FontSize = 9
    rt.Style.Padding.Left = 2 '左边距5毫米
    rt.Style.Padding.right = 2 '左边距5毫米
    rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center
    rt.Style.TextAlignVert = prt.AlignVertEnum.Center
    rt.Style.Borders.Bottom = New prt.LineDef(0.3,Color.LightGray)
    rt.CellStyle.Spacing.All = 0.5
    rt.Style.GridLines.All = New prt.Linedef
    rt.Cols.Count = 9
   
    rt.Cells(0,0).Text = "用户编号"
    rt.Cells(0,1).Text = "用户名称"
    rt.Cells(0,2).Text = "路名"
    rt.Cells(0,3).Text = "街名"
    rt.Cells(0,4).Text = "号码"
    rt.Cells(0,5).Text = "栋"
    rt.Cells(0,6).Text = "房号"
    rt.Cells(0,7).Text = "状态"
    rt.Cells(0,8).Text = "施工情况"
    rt.Cells(0,9).Text = "备注"

    rt.rows(0).Style.Borders.Top = New prt.LineDef(2,Color.LightGray)
    rt.rows(0).Style.Borders.Bottom = New prt.LineDef(1,Color.LightGray)

    dim r1 as row = tables("地址").rows(i)
    Rows = dataTables("A").select("地址码 = '" & r1("地址码") & "'" , "生成房号")

    For r As integer = 0 To Rows.Count - 1

            If Rows(r)("状态") <> "有效" Then             
                rt.Cells(r + 1, 7).Style.BackColor = Color.Gray
                rt.Cells(r + 1, 7).Style.FontBold = True
            End If
          
        rt.Cells(r+1,0).Text = rows(r)("用户编号")
        rt.Cells(r+1,1).Text = rows(r)("用户名称")
        rt.Cells(r+1,2).Text = rows(r)("路名")
        rt.Cells(r+1,3).Text = rows(r)("街名")
        rt.Cells(r+1,4).Text = rows(r)("号码")
        rt.Cells(r+1,5).Text = rows(r)("栋")
        rt.Cells(r+1,6).Text = rows(r)("房号")
        rt.Cells(r+1,7).Text = rows(r)("状态")
        rt.Cells(r+1,8).Text = rows(r)("施工情况")

    Next

    doc.Body.Children.Add(rt)
    rx = New prt.RenderText
    rx.Style.FontBold = True
    rx.Style.Spacing.Top = 3
    rx.Text = "合计: " & Rows.Count
    rx.Style.TextAlignHorz = prt.AlignHorzEnum.Right
    doc.Body.Children.Add(rx)
Next
doc.Preview

[此贴子已经被作者于2009-5-28 11:05:59编辑过]

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


加好友 发短信
等级:幼狐 帖子:188 积分:1947 威望:0 精华:0 注册:2008/9/23 22:10:00
  发帖心情 Post By:2009/5/28 11:24:00 [显示全部帖子]

没有,一个空白行也没有打出来。。。


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


加好友 发短信
等级:幼狐 帖子:188 积分:1947 威望:0 精华:0 注册:2008/9/23 22:10:00
  发帖心情 Post By:2009/5/28 11:49:00 [显示全部帖子]

行啦  ,不过空白行的行距在跟数据行不一样啊,设置双倍行距也失效。
[此贴子已经被作者于2009-5-28 12:15:55编辑过]

 回到顶部