以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  word报表换行后不能对齐,replace也不起作用  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=165251)

--  作者:水墨青花
--  发布时间:2021/5/11 21:28:00
--  word报表换行后不能对齐,replace也不起作用
老师:

word报表换行后,不能左侧对齐。使用 replace后,也不起作用。同时上传了word模板
 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:test_202105112126.zip

,请老师帮助解决。谢谢!

这是模板:

[第一列]

 

<Replace([第一列],chr(10),"")>   

 

<Replace([第一列],chr(13),"")>   

 

<Replace([第一列],vbcrlf,chr(13))>

 

<Replace([第一列],vblf,chr(13))> 

 

<Replace([第一列],vbcr,chr(13))> 

 

<Replace([第一列],chr(13),vbcrlf)>


这是打印结果:

第一行

 第二行

 第三行

 第四行

 

第一行第二行第三行第四行         

 

第一行第二行第三行第四行         

 

第一行第二行第三行第四行         

 

第一行第二行第三行第四行         

 

第一行第二行第三行第四行         

 

第一行第二行第三行第四行         



--  作者:有点蓝
--  发布时间:2021/5/11 22:46:00
--  
只能使用代码处理了

Dim tm As String  = ProjectPath & "Attachments\\test.doc" \'指定模板文件
Dim fl As String = ProjectPath & "Reports\\test.doc" \'指定目标文件
Dim wrt As New WordReport(Tables("表A"),tm,fl) \'定义一个WordReport
wrt.Replace("[第一列]",Tables("表A").Current("第一列").replace(chr(10),""))
wrt.BuildOne(Tables("表A").Current)
wrt.Show() \'显示报表

--  作者:水墨青花
--  发布时间:2021/5/12 10:56:00
--  
老师,是否可以使用 ReplaceOne,只对当前行替换

wrt.ReplaceOne("[第一列]",Tables("表A").Current("第一列").replace(chr(10),""))

--  作者:有点蓝
--  发布时间:2021/5/12 10:58:00
--  
可以,这种问题试试不就知道了
--  作者:水墨青花
--  发布时间:2021/5/12 11:04:00
--  
老师,还有一个问题:

实际操作中,不会只打印“表A”的内容,还会有其他几个关联父表(如表B,表C)的内容,每一个用到的父表的列,都需要按照如下方式编写吗?

例如:

wrt.Replace("[第一列]",Tables("表A").Current("第一列").replace(chr(10),""))
wrt.Replace("[第二列]",Tables("表B").Current("第二列").replace(chr(10),""))
wrt.Replace("[第四列]",Tables("表C").Current("第四列").replace(chr(10),""))

--  作者:有点蓝
--  发布时间:2021/5/12 11:05:00
--  
是,涉及到多行文本的都要这样处理