找回密码
 立即注册

QQ登录

只需一步,快速开始

inroad

中级会员

70

主题

262

帖子

784

积分

中级会员

积分
784
inroad
中级会员   /  发表于:2023-10-10 10:06  /   查看:2417  /  回复:16
1金币
我有个json是这样的
    1. "wei_hai_shi_bie":[
    2. {
    3. "name":"机械伤害",
    4. "ancestors":[
    5. {
    6. "Id":"D1FE114C-2118-5E91-DA49-3A0B54DB0F94",
    7. "HierarchyId":"/31/",
    8. "HierarchyLevel":1,
    9. "ColorContent":"",
    10. "ColorSwitch":false,
    11. "name":"危害识别-南京诚志送电"
    12. }
    13. ],
    14. "id":"fdf53428-6039-b2c3-76d5-3a0b54db5920",
    15. "dictCode":"D1FE114C-2118-5E91-DA49-3A0B54DB0F94",
    16. "nodeCode":"ji_xie_shang_hai",
    17. "colorContent":"",
    18. "colorSwitch":false,
    19. "hierarchyId":"/31/1/",
    20. "TAGSORT":0
    21. },
    22. {
    23. "name":"触电",
    24. "ancestors":[
    25. {
    26. "Id":"D1FE114C-2118-5E91-DA49-3A0B54DB0F94",
    27. "HierarchyId":"/31/",
    28. "HierarchyLevel":1,
    29. "ColorContent":"",
    30. "ColorSwitch":false,
    31. "name":"危害识别-南京诚志送电"
    32. }
    33. ],
    34. "id":"0cf5622a-8563-9137-c706-3a0b54db70e6",
    35. "dictCode":"D1FE114C-2118-5E91-DA49-3A0B54DB0F94",
    36. "nodeCode":"chu_dian",
    37. "colorContent":"",
    38. "colorSwitch":false,
    39. "hierarchyId":"/31/2/",
    40. "TAGSORT":0
    41. }
    42. ]
    复制代码
    我要取出,拿$.['wei_hai_shi_bie']
  • .name。与”机械伤害,触电,电弧灼伤,误送“作比较。如果包含加方框,但是在软件中放入数据,会自动循环$.['wei_hai_shi_bie']
  • .name,导致我脚本拿出来的数据是这样的,我想的是两个一行比如。但是我现在出来的是这样的。代码如下
    1. Function ProcessData(a As String, b As String) As String
    2.         Dim arrA() As String
    3.         arrA = Split(a, ";")

    4.         Dim result As String
    5.         result = ""

    6.         ' 遍历数组B中的每个元素
    7.         Dim i As Integer
    8.         For Each itema As String In arrA
    9.                 If itema = b Then
    10.                         result = result & itema & "■  "
    11.                 Else
    12.                         result = result & itema & "□  "
    13.                 End If
    14.         Next

    15.         ' 去掉最后一个逗号
    16.         result = Left(result, Len(result))

    17.         ' 返回结果
    18.         ProcessData = result
    19. End Function
    复制代码


附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

16 个回复

正序浏览
Felix.LiWyn认证
超级版主   /  发表于:2023-11-1 09:03:10
17#
您好,报表字段获取整个数组的方法使用toArray()即可。

例如id字段获取全部,然后自定义函数如下:

=code.GetFirstItem(ToArray([id]))

函数写法:
  1. Function GetFirstItem(s As System.Collections.ArrayList) As String
  2.         Return String.Join(",", s.ToArray())
  3. End Function
复制代码
即可获取全部
回复 使用道具 举报
Eden.SunWyn认证
超级版主   /  发表于:2023-10-12 12:14:41
16#
inroad 发表于 2023-10-12 10:36
Function change(a As String) As String
        Dim jsonStr As String = a
                ' 去掉 JSON 字符串的特殊字符 ...

ar是脱离程序框架的,没办法像写代码那样引入其他的三方库环境,因此不能使用是第三方库,只能使用,系统环境中的函数资源。
回复 使用道具 举报
inroad
中级会员   /  发表于:2023-10-12 10:36:22
15#
inroad 发表于 2023-10-12 10:31
问问可不可以这样,我把数组取出来,但是是文本,如何用脚本转成数组,转成数组后我自己做循环

Function change(a As String) As String
        Dim jsonStr As String = a
                ' 去掉 JSON 字符串的特殊字符
        Dim options As New JsonSerializerOptions()
        options.PropertyNameCaseInsensitive = True ' 以不区分大小写的方式解析属性名
        Dim objects As List(Of YourObjectType) = JsonSerializer.Deserialize(Of List(Of YourObjectType))(jsonStr, options)
        change = objects(0).name
End Function这个错误在哪里呢,我很纳闷。希望升级下后台脚本可以使用第三方库
回复 使用道具 举报
inroad
中级会员   /  发表于:2023-10-12 10:31:28
14#
Felix.Li 发表于 2023-10-11 18:37
抱歉,这种暂时确实没有办法。
我们表格的机制就是,明细行每次取的话取一条数据。这个不是改脚本能实现的 ...

问问可不可以这样,我把数组取出来,但是是文本,如何用脚本转成数组,转成数组后我自己做循环

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Felix.LiWyn认证
超级版主   /  发表于:2023-10-11 18:37:42
13#
抱歉,这种暂时确实没有办法。
我们表格的机制就是,明细行每次取的话取一条数据。这个不是改脚本能实现的,本身也拿不到全部数据
也就是表格每次只能拿一个数据,但是文本框一次只能拿第一条数据,暂时确实没有办法。
我们给开发提一个需求,看怎么实现吧
回复 使用道具 举报
inroad
中级会员   /  发表于:2023-10-11 14:41:28
12#
Eden.Sun 发表于 2023-10-11 11:26
我们分析了您的文件,并不是您的数据重复显示了三次,是您的数据源中有三条数据,您的函数调用了三次,每次 ...

那怎么样才能显示一次,且显示我想要的那种格式呢?脚本需要重新写是吗?如何修改呢
回复 使用道具 举报
inroad
中级会员   /  发表于:2023-10-11 09:37:23
10#
inroad 发表于 2023-10-11 09:22
您好,我的deom可以看下

$.['wei_hai_shi_bie'].name现在这个里面数据都有,您需要在危害类别中删除其中一个对象。这样就和我帖子上的需求一模一样了
回复 使用道具 举报
inroad
中级会员   /  发表于:2023-10-11 09:22:22
9#
Eden.Sun 发表于 2023-10-10 18:01
方便的话,您提供一下您的报表文件和一份demo数据,我们本地试一下。我这边确实没有复现出来您的这种场景 ...

您好,我的deom可以看下

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Eden.SunWyn认证
超级版主   /  发表于:2023-10-10 18:01:15
8#
inroad 发表于 2023-10-10 16:49
老哥,你的入参就和我不一样吧。你可以看看我的入参,在4#

方便的话,您提供一下您的报表文件和一份demo数据,我们本地试一下。我这边确实没有复现出来您的这种场景。
回复 使用道具 举报
inroad
中级会员   /  发表于:2023-10-10 16:49:24
7#
Eden.Sun 发表于 2023-10-10 15:45
您好,那应该是您的入参有问题了,我使用楼上版主的脚本,用您的入参进行测试,没有出现重复的情况,您 ...

老哥,你的入参就和我不一样吧。你可以看看我的入参,在4#
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部