以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 怎么用数据表,循环数据表中的uuid生成目录页呢? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=176029) |
||||
-- 作者:cnsjroom -- 发布时间:2022/3/28 12:31:00 -- 怎么用数据表,循环数据表中的uuid生成目录页呢? 当前数据表A 有如下数据及字段列值
目录标准一级标题为: 一、干部基本信息 二、廉政情况综述 三、问题线索处置情况 四、党风廉政意见回复情况 五、民主生活会情况说明情况 六、其他廉政档案资料
(按照一级标题,循环数据表A中的uuid,然后依次按照如下格式生成目录页) 文件类别 + 文件类别名称 文件序号 +文件名称+……+文件编号 怎么生成如下目录格式呢? 麻烦老师指导下 !谢谢!
RenderToc类型专门用于生成报表目录,该类型有一个AddItem方法,语法为: AddItem(目录名称,目录指向的对象,目录层级)
Dim doc As New PrintDoc Dim toc As New prt.RenderToc Dim s As String Dim rt As New prt.RenderText toc.BreakAfter = Prt.BreakEnum.Page rt.Text = "目录" rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center s = "新华网绵阳5月16日电" doc.Body.Children.Add(rt) For n As Integer = 1 to 30 rt = New prt.RenderText rt.Text = "第" & n & "章" doc.Body.Children.Add(rt) toc.AddItem(rt.Text, rt, 1) For m As integer = 1 to 10 rt = New prt.RenderText rt.Text = s doc.Body.Children.Add(rt) toc.AddItem("第" & m & "节", rt, 2) Next Next doc.body.Children.Insert(1,toc) doc.Preview() [此贴子已经被作者于2022/3/28 13:26:59编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间: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
|
||||
-- 作者:cnsjroom -- 发布时间:2022/3/28 14:27:00 -- 回复:(有点蓝)for each s as string in datatables... 老师当前代码如下:还要麻烦老师指导下 如何去掉蓝色的数字2页码 用文件编号代替 及标题往左对齐 谢谢 \'\'\'\' doc.body.Children.Insert(1,toc) 代码运行输出效果: 代码运行后生成的专业报表目录效果: 项目文件:
[此贴子已经被作者于2022/3/28 14:27:36编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2022/3/28 14:47:00 -- 1、对齐目录层次一致即可: RenderToc类型专门用于生成报表目录,该类型有一个AddItem方法,语法为:
AddItem(目录名称,目录指向的对象,目录层级) toc.AddItem(rt.Text , rt, 2) 改为 toc.AddItem(rt.Text , rt, 1) 2、蓝色的是页码,这个没有办法改 |
||||
-- 作者:cnsjroom -- 发布时间:2022/3/28 15:20:00 -- 回复:(有点蓝)1、对齐目录层次一致即可:RenderToc... 按老师提示 现在效果如下:【蓝色数字2这个页码部分,不是友好 不想要 有没有办法变通实现呢?】
老师:那我要实现这个效果 我该用什么方法实现呢?word还是Excel模板?主要是那……部分要能够自动填充对齐 [此贴子已经被作者于2022/3/28 15:22:30编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间: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) |
||||
-- 作者:cnsjroom -- 发布时间:2022/3/28 15:57:00 -- 回复:(有点蓝)那就不要使用additem这种功能,按普通... 当前代码修正如下: \'\'\'\' doc.body.Children.Insert(1,toc)
运行结果如下:【对应的目录字样和具体内容字样分成了两页 对应的右端没有对齐 麻烦老师继续指导下 谢谢!】 此主题相关图片如下:33.png |
||||
-- 作者:有点蓝 -- 发布时间:2022/3/28 16:00:00 -- 去掉RenderToc的用法 |
||||
-- 作者:cnsjroom -- 发布时间:2022/3/28 16:34:00 -- 回复:(有点蓝)去掉RenderToc的用法 当前代码如下: \'\'\'\' doc.Body.Children.Add(rt)
预览效果: 老师 行间距设定为200 貌似没有效果 对应的1-1之类的没有直接对齐到右端 有没有办法强制对齐 对应的……自动填充 确保每一行都只有一行数据 谢谢! 此主题相关图片如下:11.png |
||||
-- 作者:有点蓝 -- 发布时间:2022/3/28 17:23:00 -- 这个主要是数字,符号和中文的字符宽度不一致导致的问题。 或者考虑使用表格填充数据,使用2列,第一列为标题,第二列为编号。中间不要显示省略号
|