我想在每行的命令字段的基础上运行if else,
例如
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'
答案 0 :(得分:1)
不确定我明白但是这是对的:
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);
(将小数位设置为零)