免费视频|新人指南|投诉删帖|广告合作|地信网APP下载

查看: 1044|回复: 5
收起左侧

请教一下FME中运算函数使用if语句语法正确的写法是什么【已解决】

[复制链接]

19

主题

1310

铜板

6

好友

高级工程师

Rank: 9Rank: 9Rank: 9

积分
799

爱心勋章灌水勋章荣誉会员勋章活跃勋章地信专家组贡献勋章成就学员勋章宣传勋章

发表于 2021-12-29 14:19 | 显示全部楼层 |阅读模式
本帖最后由 m2123476wqm2q4v 于 2021-12-29 17:40 编辑

我现在要运算一个字段的值 代码如下:

If ("@Value(JZDBH)" < "@Value(起点编号)" ) Then
    "@Evaluate(@Value(节点总数) - @Value(起点编号) + 1 + @Value(JZDBH))"
        Else If ("@Value(JZDBH)" = "@Value(起点编号)")  Then
            "@Evaluate(@Value(起点编号) - @Value(起点编号) + 1)"
                Else If ("@Value(JZDBH)" > "@Value(起点编号)") Then
                    "@Evaluate(@Value(JZDBH) - @Value(起点编号) + 1)"

运行就提示:
2021-12-29 14:15:19|  16.6|  0.0|WARN  |923870       invalid bareword "Then"
2021-12-29 14:15:19|  16.6|  0.0|WARN  |923870       in expression "If ("6" < "73" ) Then     "20"         Else...";
2021-12-29 14:15:19|  16.6|  0.0|WARN  |923870       should be "$Then" or "{Then}" or "Then(...)" or ...
Then加上$就又提示:
2021-12-29 14:15:19|  16.6|  0.0|WARN  |923870       missing operator at _@_

2021-12-29 14:15:19|  16.6|  0.0|WARN  |923870       in expression "If ("6" < "73" ) _@_$Then     "20"        ..."
想问一下正确语法是什么

324

主题

56万

铜板

1172

好友

管理员

Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

积分
349368

宣传勋章爱心勋章组织勋章官方团队冰雪节勋章

发表于 2021-12-29 14:23 | 显示全部楼层
欢迎论坛的高手解答,会奖励相应的威望和铜板哦
回复 支持 反对

使用道具 举报

19

主题

1310

铜板

6

好友

高级工程师

Rank: 9Rank: 9Rank: 9

积分
799

爱心勋章灌水勋章荣誉会员勋章活跃勋章地信专家组贡献勋章成就学员勋章宣传勋章

 楼主| 发表于 2021-12-29 17:40 | 显示全部楼层
问题找到了,FME专门提供了一个地方写if语句,举例:我用的是AttributeCreator来新增一个字段,属性值的地方候选项中有个 条件值 在里面填写if语句即可原来的语句我修改了一下如下:
If ("@Value(JZDBH)" >= "@Value(起点编号)")
"@Evaluate(@Value(JZDBH) - @Value(起点编号) + 1)"
Else
"@Evaluate(@Value(节点总数) - @Value(起点编号) + @Value(JZDBH) + 1)"

放到条件值里如图:

2.jpg
1.jpg
回复 支持 反对

使用道具 举报

10

主题

1万

铜板

19

好友

资深会员

Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18

积分
3722
发表于 2022-1-21 12:42 | 显示全部楼层
谢谢分享
回复

使用道具 举报

0

主题

341

铜板

0

好友

技术员

Rank: 3Rank: 3

积分
97
发表于 2022-3-27 22:29 | 显示全部楼层
感谢分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

在线客服
快速回复 返回顶部 返回列表