Foxtable(狐表)用户栏目专家坐堂 → josn内容直接代码替换word模版中指定的字符 在 Foxtable.WordReport.Build()出错 并且输出重复数据??


  共有1826人关注过本帖树形打印复制链接

主题:josn内容直接代码替换word模版中指定的字符 在 Foxtable.WordReport.Build()出错 并且输出重复数据??

帅哥哟,离线,有人找我吗?
cnsjroom
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
josn内容直接代码替换word模版中指定的字符 在 Foxtable.WordReport.Build()出错 并且输出重复数据??  发帖心情 Post By:2023/11/18 2:01:00 [显示全部帖子]

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()
---------------------------
确定   
---------------------------




 回到顶部
帅哥哟,离线,有人找我吗?
cnsjroom
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
回复:(有点蓝)1、For i As Integer = 0 To ja12.Co...  发帖心情 Post By:2023/11/18 12:46:00 [显示全部帖子]

老师 :直接由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() '退出

 回到顶部
帅哥哟,离线,有人找我吗?
cnsjroom
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
回复:(有点蓝)请先认真看看帮助:http://www.foxta...  发帖心情 Post By:2023/11/18 13:59:00 [显示全部帖子]

老师  我这个不需要表
word模版中只有[统计报告]
然后将wenben代表的字符串,直接替换word模版中的[统计报告]。

 回到顶部
帅哥哟,离线,有人找我吗?
cnsjroom
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
回复:(有点蓝)函数的语法是固定的,就必须这样用。...  发帖心情 Post By:2023/11/18 15:02:00 [显示全部帖子]

wrt.AddDataTable("统计报告", "主数据源", "select * form {统计报告}")
这样写 也不行还是没有成功替换
是不是替换有字符数的限制??

 回到顶部