他の式の場合は助けてください
-
12-10-2019 - |
質問
各行のコマンドフィールドのベースで他の人を実行したい、
例えば
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