You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jaspersoft Studio 6.6.0中JSONQL获取下一个港口locCode的表达式修复请求

修复Jaspersoft Studio JSONQL表达式获取下一个港口名称

你的JSONQL表达式当前匹配的是isCurrentLoc="Y"的对象自身的locCode,所以返回的是当前港口TRYAR。要获取该对象的下一个港口,需要调整表达式定位到当前节点的后续兄弟节点,或者利用callOrder的顺序关系来匹配。

方法一:使用following-sibling轴定位下一个节点

这是最直接的方式,先找到当前港口节点,再取它的第一个后续兄弟节点的locCode:

routingLocs[isCurrentLoc == "Y"]/following-sibling::*[1]/locCode

修改后的JRXML字段定义:

<field name="nextPort" class="java.lang.String">
    <property name="net.sf.jasperreports.jsonql.field.expression">
        <![CDATA[routingLocs[isCurrentLoc == "Y"]/following-sibling::*[1]/locCode]]>
    </property>
    <fieldDescription><![CDATA[nextPort]]></fieldDescription>
</field>

方法二:利用callOrder数值关系匹配

如果港口的callOrder是严格递增的,也可以通过当前节点的callOrder+1来定位下一个港口:

routingLocs[callOrder = (routingLocs[isCurrentLoc == "Y"]/callOrder) + 1]/locCode

两种方法都能正确返回AUABP,根据你的数据源结构选择即可。

内容的提问来源于stack exchange,提问作者Meet Bhatt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 17:10:26