以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- josn内容直接代码替换word模版中指定的字符 在 Foxtable.WordReport.Build()出错 并且输出重复数据?? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=189231) |
|
-- 作者:cnsjroom -- 发布时间:2023/11/18 2:01:00 -- josn内容直接代码替换word模版中指定的字符 在 Foxtable.WordReport.Build()出错 并且输出重复数据?? josn内容直接代码替换word模版中指定的字符 在 Foxtable.WordReport.Build()出错 麻烦老师们帮忙看看问题出现在哪? 需要协助的问题: 1、wenben会输出重复值,有没有办法只输出最后一次的完整数据 当前输出为: ①、张三 ②、张三 李四 ③、张三 李四 王五 有没有办法直接输出仅只输出序号为3的值呢? 2、将这个josn值直接写入word中并替换指定字符。 当前代码为: Dim json As String = ja.ToString Dim ja12 As JArray = Jarray.Parse(json) Dim sss As String Dim ssss As String Dim wenben As String For i As Integer = 0 To ja12.Count - 1 sss = "在" & ja12(i)("活动名称").ToString() & "活动中,从" & ja12(i)("开始日期").ToString() & "至" & ja12(i)("结束日期").ToString() & ",对" & ja12(i)("案件id集合").ToString() & "等" & ja12(i)("案件数量").ToString() & "件案事件进行评查评分,组织" & ja12(i)("评查人员").ToString() & "等" & ja12(i)("评查人数").ToString() & "人参与评查活动。" & Chr(13) & Chr(10) ssss &= i + 1 & "、由" & ja12(i)("评分人").ToString() & "对" & ja12(i)("案件名称").ToString() & "案件进行评查打分,其中:审查调查阶段得分" & ja12(i)("审查调查得分").ToString() & "分,审理阶段得分" & ja12(i)("审理得分").ToString() & "分,加分" & ja12(i)("加分").ToString() & "分,加倍扣分" & ja12(i)("加倍扣分").ToString() & "分,总分为:" & ja12(i)("最终得分").ToString() & "分,评为:" & ja12(i)("评查等次").ToString() & "案件。" & Chr(13) & Chr(10) ssss &= "评审及分值明细为:" & Chr(13) & Chr(10) Dim ja121 As JArray = Jarray.Parse(ja12(i)("children").ToString()) For i121 As Integer = 0 To ja121.Count - 1 ssss &= "(" & i121 + 1 & ")、" & ja121(i121)("卷宗名称").ToString() & "卷中" & ja121(i121)("资料名称").ToString().Replace(".pdf", "").Replace(".png", "") & "的材料因" & ja121(i121)("参考规则").ToString() & "(" & ja121(i121)("分值类型").ToString().Replace("分", "") & ja121(i121)("评分").ToString() & "分);" & Chr(13) & Chr(10) Next wenben = sss & ssss Output.Show(wenben) Next Dim time As String = Format(Date.now, "yyyyMMddHHmmss") Dim tm As String = ProjectPath & "Attachments\\评查活动报告模板.doc" \'指定模板文件 Dim fl As String = ProjectPath & "Reports\\" & "评查活动报告模板" & time & ".doc" \'指定目标文件 Dim wrt As New WordReport(tm, fl) \'注意这里无需指定表名 \' wrt.AddDataTable("统计报告", "主数据源", "") wrt.Replace("[统计报告]", wenben) \' wrt.Build() \'生成报表 wrt.Quit() \'退出 --------------------------- 版本:2022.8.18.1 --------------------------- 代码执行出错,错误信息: System.NullReferenceException: 未将对象引用设置到对象的实例。 在 Foxtable.WordReport.Build() 在 UserCode.Test() --------------------------- 确定 --------------------------- |
|
-- 作者:有点蓝 -- 发布时间:2023/11/18 8:55:00 -- 1、 For i As Integer = 0 To ja12.Count - 1 sss ="" ssss ="" sss = "在" & ja12(i)("活动名称").ToString() & …… 2、 WordReport WordReport用于编程生成Word报表。 定义一个WordReport的语法为: Dim wrt As New WordReport(Table, TemplateFile, ReportFile) Table: 要打印的表(Table)或表的名称 |
|
-- 作者:cnsjroom -- 发布时间:2023/11/18 12:46:00 -- 回复:(有点蓝)1、For i As Integer = 0 To ja12.Co... 老师 :直接由json写入到word中 替换[统计报告]中的内容为wenben的值 经测试word中值没有成功切换 Dim time As String = Format(Date.now, "yyyyMMddHHmmss") Dim tm As String = ProjectPath & "Attachments\\评查活动报告模板.doc" \'指定模板文件 Dim fl As String = ProjectPath & "Reports\\" & "评查活动报告模板" & time & ".doc" \'指定目标文件 Dim wrt As New WordReport(tm, fl) \'注意这里无需指定表名 \' wrt.AddDataTable("统计报告", "主数据源", "") wrt.Replace("[统计报告]", wenben) \' wrt.Build() \'生成报表 wrt.Quit() \'退出
|
|
-- 作者:有点蓝 -- 发布时间:2023/11/18 13:47:00 -- 请先认真看看帮助:http://www.foxtable.com/webhelp/topics/2890.htm,重点理解一下下面的说明,看看帮助的代码是怎么使用WordReport的
|
|
-- 作者:cnsjroom -- 发布时间:2023/11/18 13:59:00 -- 回复:(有点蓝)请先认真看看帮助:http://www.foxta... 老师 我这个不需要表 word模版中只有[统计报告] 然后将wenben代表的字符串,直接替换word模版中的[统计报告]。
|
|
-- 作者:有点蓝 -- 发布时间:2023/11/18 14:24:00 -- 函数的语法是固定的,就必须这样用。WordReport参数定义是固定的,帮助这样说就只能这样用。不需要表,这个参数也必须添加,也就是第一个参数必须是一个表格,不需要也要随便添加一个。 闭着眼睛随便把别人的语法改了,肯定不会有任何结果
|
|
-- 作者:cnsjroom -- 发布时间:2023/11/18 15:02:00 -- 回复:(有点蓝)函数的语法是固定的,就必须这样用。... wrt.AddDataTable("统计报告", "主数据源", "select * form {统计报告}") 这样写 也不行还是没有成功替换 是不是替换有字符数的限制??
|
|
-- 作者:有点蓝 -- 发布时间:2023/11/18 15:06:00 -- 和AddDataTable没有半毛钱的关系。 Dim wrt As New WordReport("这里随便加一个表格名称啊!!!!!!!!!",tm, fl)
|