-
12-10-2019 - |
题
我想在每行的命令字段的基部上运行一个if,
例如
If {CommandField=0} Update counter by 1 return counter
else if {CommandField=1} return 'Reporting'
我尝试了,但是有错误
stringVar layerType;
shared numberVar layNo;
if({Command.ISREPORT}=0) then
layNo:=layNo+1;layerType:=layNo;layerType
else if ({Command.ISREPORT}=1) then
layerType:='Reporting'; layerType
结果应该像
ISREPORT LayerNo
0 1
0 2
0 3
0 4
1 'Reporter'
解决方案
不确定我理解,但是这是正确的:
stringVar layerType;
shared numberVar layNo;
if({Command.ISREPORT}=0) then
( layNo:=layNo+1;
layerType:=ToText(layNo);
layerType;
)
else
( if ({Command.ISREPORT}=1) then
layerType:='Reporting';
layerType
)
...可以简化以下:
shared numberVar layNo;
if({Command.ISREPORT}=0) then
(
layNo:=layNo+1;
ToText(layNo);
)
else
(if ({Command.ISREPORT}=1) then
'Reporting';)
..修复IsReport的价值只能为0或1,然后我们可以进一步简化:
shared numberVar layNo;
if({Command.ISREPORT}=0) then
(
layNo:=layNo+1;
ToText(layNo);
)
else
(
layNo:=0;
'Reporting';
)
更新 - 我更改了最后一个示例,以重置“报告”的计数器。
编辑:更改totext(.. ToText(layNo,0);
(将十进制位置设置为零)
不隶属于 StackOverflow