Rss & SiteMap

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

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

标题:专业报表

1楼
cd_tdh 发表于:2025/4/30 11:20:00
老师,我表结构如下:

图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20250430111743.png
图片点击可在新窗口打开查看
如果一级标题有3个,生成时就按照顺序为第一章、第二章、第三章,
第一个一级标题对应有2个二级标题,生产为第一节、第二节
代码该怎么修改?
Dim doc As New PrintDoc '定义一个报表
Dim rt As prt.RenderText '定义一个文本对象
Dim s As String '定义字符变量
For Each r As Row In Tables("表A").Rows
    If r("一级标题") <> ""Then
        s = "第一章  " & r("一级标题")
        rt = New prt.RenderText
        rt.Text = s '设置文本对象的内容
        rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center
        rt.Style.Font = New Font("黑体", 16, FontStyle.Bold) '设置字体
        rt.Style.Spacing.top = 5 '设置上间隔为5毫米
'        rt.Style.Spacing.Bottom = 5 '设置下间隔为5毫米
        rt.Style.LineSpacing = 200 '2.0倍行距
        doc.Body.Children.Add(rt) '将文本对象加入到报表
    End If
    If r("二级标题") <> "" Then
        s = "第一节  " & r("二级标题")
        rt = New prt.RenderText
        rt.Text = s '设置文本对象的内容
        rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center
        rt.Style.Font = New Font("黑体", 14, FontStyle.Bold) '设置字体
        rt.Style.Spacing.top = 5 '设置上间隔为5毫米
        rt.Style.Spacing.Bottom = 5 '设置下间隔为5毫米
        rt.Style.LineSpacing = 150 '2.0倍行距
        doc.Body.Children.Add(rt) '将文本对象加入到报表
    End If
    If r("三级标题") <> "" Then
        s = "一、" & r("三级标题")
        rt = New prt.RenderText
        rt.Text = s '设置文本对象的内容
        rt.Style.LineSpacing = 200 '1.5倍行距
        rt.Style.TextIndent = 10 '首行缩进10毫米
        doc.Body.Children.Add(rt) '将文本对象加入到报表
    Else
        s = r("正文")
        rt = New prt.RenderText
        rt.Text = s '设置文本对象的内容
        rt.Style.TextIndent = 7 '首行缩进10毫米
        rt.Style.Font = New Font("仿宋", 12) '设置字体
        rt.Style.LineSpacing = 200 '1.5倍行距
        doc.Body.Children.Add(rt) '将文本对象加入到报表
    End If
Next
doc.Preview() '预览
示例文件:
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table




[此贴子已经被作者于2025/4/30 11:21:44编辑过]
2楼
有点蓝 发表于:2025/4/30 11:34:00
Dim i1 As Integer = 1
Dim i2 As Integer = 1
For Each r As Row In Tables("表A").Rows
    If r.IsNull("一级标题") = False Then
        s = "第" & i1 & "章  " & r("一级标题")
        i1 += 1
        i2 = 1
        rt = New prt.RenderText
        rt.Text = s '设置文本对象的内容
        rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center
        rt.Style.Font = New Font("黑体", 16, FontStyle.Bold) '设置字体
        rt.Style.Spacing.top = 5 '设置上间隔为5毫米
        '        rt.Style.Spacing.Bottom = 5 '设置下间隔为5毫米
        rt.Style.LineSpacing = 200 '2.0倍行距
        doc.Body.Children.Add(rt) '将文本对象加入到报表
        s = "第" & i2 & "节  " & r("二级标题")
        i2 += 1
        rt = New prt.RenderText
        rt.Text = s '设置文本对象的内容
        rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center
        rt.Style.Font = New Font("黑体", 16, FontStyle.Bold) '设置字体
        rt.Style.Spacing.top = 5 '设置上间隔为5毫米
        '        rt.Style.Spacing.Bottom = 5 '设置下间隔为5毫米
        rt.Style.LineSpacing = 200 '2.0倍行距
        doc.Body.Children.Add(rt) '将文本对象加入到报表
    Else
        s = "第" & i2 & "节  " & r("二级标题")
        i2 += 1
        rt = New prt.RenderText
        rt.Text = s '设置文本对象的内容
        rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center
        rt.Style.Font = New Font("黑体", 16, FontStyle.Bold) '设置字体
        rt.Style.Spacing.top = 5 '设置上间隔为5毫米
        '        rt.Style.Spacing.Bottom = 5 '设置下间隔为5毫米
        rt.Style.LineSpacing = 200 '2.0倍行距
        doc.Body.Children.Add(rt) '将文本对象加入到报表
    End If
Next
共2 条记录, 每页显示 10 条, 页签: [1]

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

Powered By Dvbbs Version 8.3.0
Processed in .03125 s, 3 queries.