以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 关于WORD报表关联表明细的排序问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=95705) |
||||
-- 作者:benwong2013 -- 发布时间:2017/2/2 23:15:00 -- 关于WORD报表关联表明细的排序问题 请问Word报表关联表明细中与ABCDE一共5列,其中将A进行排序,但WORD报表中出现的列为BCD,但出现的内容不是依照A列进行排序的,请问应该如何处理? |
||||
-- 作者:有点色 -- 发布时间:2017/2/2 23:55:00 -- 建议用代码直接替换明细表的内容
http://www.foxtable.com/webhelp/scr/2890.htm
|
||||
-- 作者:benwong2013 -- 发布时间:2017/2/3 9:45:00 -- Dim bh As String = Tables("T_Report").Current("报告格式编号") Dim tm As String = ProjectPath & "Attachments\\" & bh & ".doc" \'指定模板文件 Dim fl As String = ProjectPath & "Reports\\" & Tables("T_Report").current("报告编号") & " " & Tables("T_Report").current("样品名称") & ".Doc" \'指定目标文件 Dim wrt As New WordReport(Tables("T_Report"),tm,fl) \'定义一个WordReport Tables("T_Report.T_Item").Sort = "报告项目序号" For i As Integer = 0 To Tables("T_Report.T_Item").Rows.count - 1 Dim r As Row = Tables("T_Report.T_Item").Rows(i) wrt.ReplaceOne("[报告项目序号" & i & "]", r("报告项目序号")) Next wrt.BuildOne(Tables("T_Report").Current) wrt.Show() \'显示报表 修改成为这样还是不行; 报告项目序号就是我所说的列A,但在报表明细中是不体现的
[此贴子已经被作者于2017/2/3 9:45:38编辑过]
|
||||
-- 作者:有点色 -- 发布时间:2017/2/3 10:00:00 -- 代码没有问题,你模板那里要写好[报告项目序号0]、[报告项目序号1]...这些
有问题,做个实例发上来测试。 |
||||
-- 作者:benwong2013 -- 发布时间:2017/2/8 23:49:00 --
实例如附件,需要依照报告序号来排序出具,无论如何好像是依照关联表添加的先后顺序而不是依照排序来的?
|
||||
-- 作者:有点色 -- 发布时间:2017/2/9 9:33:00 --
|
||||
-- 作者:benwong2013 -- 发布时间:2017/2/9 9:41:00 -- 我是需要将报告序号作为隐藏排序,但检测项目那个需要列出,而不是用报告序号取代检测项目,请问应如何处理? |
||||
-- 作者:有点色 -- 发布时间:2017/2/9 9:45:00 -- 代码那里你改成对应的列名,多列,就在模板列设置好,再赋值
wrt.ReplaceOne("[检测项目" & i & "]", r("检测项目")) |
||||
-- 作者:benwong2013 -- 发布时间:2017/2/9 12:44:00 -- 此主题相关图片如下:飞信截图20170209124225.png 可能你还没有理解我的意思,我需要将报表排序修改为数据表的排列方式,请问如何处理?? Dim tm As String = ProjectPath & "Attachments\\报告.doc" \'指定模板文件 Dim fl As String = ProjectPath & "Reports\\报告.Doc" \'指定目标文件 Dim wrt As New WordReport(Tables("表A"),tm,fl) \'定义一个WordReport Tables("表A.表B").Sort = "报告序号" For i As Integer = 1 To 5 If i <= Tables("表A.表B").Rows.count Then Dim r As Row = Tables("表A.表B").Rows(i+1) wrt.ReplaceOne("[报告序号" & i & "]", r("报告序号")) Else wrt.ReplaceOne("[报告序号" & i & "]", "") End If Next wrt.BuildOne(Tables("表A").Current) wrt.Show() \'显示报表 |
||||
-- 作者:有点色 -- 发布时间:2017/2/9 14:18:00 -- 认认真真看6楼例子。已经做好了啊。模板和代码都要改啊 |