ReportingEngine和在模板中使用First方法获取某条数据循环数组的问题

1、环境

.Net8、Aspose.Words24.12.0

2、需求描述

我们有如下JSON数据:

{
        "testData": [
            {
                "name": "名称2",
                "list": [ 4, 5, 6 ]
            },
            {
                "name": "名称1",
                "list": [ 1, 2, 3 ]
            }
        ]
}

首先判断数组testData中是否有name为 名称1 的数据,有的话再循环这条数据中的 list 数组展示出来,但是通过如下模板并没有将 list 数组数据循环展示出来,而通过 Count 方法可以看到能得到 list 数组的长度:

---
<<if [testData.Any(m=>m.name=="名称1")]>>
名称1
	<<foreach [c in testData.First(m=>m.name=="名称1").list]>><<[c_Text]>>
	<</foreach >>
<</if>>

---

数组长度:<<[testData.First(m=>m.name=="名称1").list.Count()]>>

不知道是模板绑定没有写对还是需要其他设置呢?

@quberscyj 您可以将模板更新为以下内容:

---
<<if [testData.Any(m=>m.name=="名称1")]>>
名称1
<<foreach [in testData.Where(m=>m.name=="名称1")]>>
    <<foreach [in list]>>
        <<[list_Text]>>
    <</foreach>>
<</foreach>>
<</if>>

---

数组长度:<<[testData.First(m=>m.name=="名称1").list.Count()]>>

@quberscyj 或者,您也可以使用以下模板:

---
<<if [testData.Any(m=>m.name=="名称1")]>>
名称1
<<foreach [in testData.First(m=>m.name=="名称1").list]>>
    <<[list_Text]>>
<</foreach>>
<</if>>

---

数组长度:<<[testData.First(m=>m.name=="名称1").list.Count()]>>

好的,谢谢,根据你提供的方案验证后可以实现此需求,谢谢!

1 Like