Foxtable(狐表)用户栏目专家坐堂 → 怎么用数据表,循环数据表中的uuid生成目录页呢?


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

主题:怎么用数据表,循环数据表中的uuid生成目录页呢?

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


加好友 发短信
等级:超级版主 帖子:110758 积分:563716 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/28 13:37:00 [显示全部帖子]

for each s as string in datatables().getvalues("类别名称","类别序号")
msgbox(s)
for each dr as datarow in datatables().select("类别名称='" & s & "'","文件序号")
msgbox(dr("文件名称"))
next
next

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


加好友 发短信
等级:超级版主 帖子:110758 积分:563716 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/28 14:47:00 [显示全部帖子]

1、对齐目录层次一致即可:

RenderToc类型专门用于生成报表目录,该类型有一个AddItem方法,语法为:

AddItem(目录名称,目录指向的对象,目录层级)


toc.AddItem(rt.Text , rt, 2)

改为

toc.AddItem(rt.Text , rt, 1)


2、蓝色的是页码,这个没有办法改


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


加好友 发短信
等级:超级版主 帖子:110758 积分:563716 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/28 15:33:00 [显示全部帖子]

那就不要使用additem这种功能,按普通文字使用RenderText逐行添加内容。


比如一行30个字符

'''
Dim a As String = "一、干部基本信息"
Dim b As String = "1-1"
Dim s As String = a & b.PadLeft(30 - a.length,"…")
msgbox(s)

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


加好友 发短信
等级:超级版主 帖子:110758 积分:563716 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/28 16:00:00 [显示全部帖子]

去掉RenderToc的用法

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


加好友 发短信
等级:超级版主 帖子:110758 积分:563716 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/28 17:23:00 [显示全部帖子]

这个主要是数字,符号和中文的字符宽度不一致导致的问题。

或者考虑使用表格填充数据,使用2列,第一列为标题,第二列为编号。中间不要显示省略号

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


加好友 发短信
等级:超级版主 帖子:110758 积分:563716 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/29 11:16:00 [显示全部帖子]

当前代码如下:

''''

Dim cct As Integer = 56 ‘一行显示的字符字节数
Dim doc As New PrintDoc
Dim ss As String
Dim rt As New prt.RenderText
rt.Text = "目录"  & vbcrlf
rt.Style.Font= New Font("方正小标宋简体", 22, FontStyle.Bold)
rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center

doc.Body.Children.Add(rt)
For Each s As String() In DataTables("a").getvalues("文件类别|文件类别名称")
    output.show(CLNum(s(0)) & "、" &  s(1))
    rt = New prt.RenderText
    rt.Text = CLNum(s(0)) & "、" &  s(1)
    rt.Style.Font= New Font("黑体", 16, FontStyle.Bold)
    doc.Body.Children.Add(rt)
    For Each dr As DataRow In DataTables("a").Select("文件类别名称='" & s(1) & "'","文件序号")
        output.show(dr("文件序号")& "." & dr("文件名称")  & "……" & dr("文件编号"))
        rt = New prt.RenderText
        rt.Style.Font= New Font("宋体", 16, FontStyle.Bold)
        rt.Style.LineSpacing=200
        Dim a As String = dr("文件序号")& "." & dr("文件名称")

Dim la As Integer = ukey.LenStrA(a) 
        Dim b As String = dr("文件编号")

Dim lb As Integer = ukey.LenStrA(b) 
        Dim sab As String = a & 
"".PadLeft((cct - la - lb)/2,"…") &  b

        rt.Text =  sab
        doc.Body.Children.Add(rt)
    Next
Next
doc.Preview()


 回到顶部