以文本方式查看主题

-  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
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目4.rar


实例如附件,需要依照报告序号来排序出具,无论如何好像是依照关联表添加的先后顺序而不是依照排序来的?

--  作者:有点色
--  发布时间:2017/2/9 9:33:00
--  

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目4.zip


 


--  作者: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楼例子。已经做好了啊。模板和代码都要改啊